From 47eb117e9f504280a560eeedb3865db704a3fa7a Mon Sep 17 00:00:00 2001 From: Thomas von Dein Date: Mon, 1 Jul 2024 20:07:01 +0200 Subject: [PATCH] added c-mode config with LSP support, and added flymake to sh-mode --- .gitignore | 6 +----- init.el | 1 + lisp/init-c.el | 20 ++++++++++++++++++++ lisp/init-flymake.el | 4 +++- 4 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 lisp/init-c.el diff --git a/.gitignore b/.gitignore index 4d23c86..5e320c7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,11 +2,7 @@ auto-save-list backups el-get -elpa-27.1 -elpa-28.2 -elpa-29.1 -elpa-29.2 -elpa-29.3 +elpa-*.* .eln-cache elpa projectile-bookmarks.eld diff --git a/init.el b/init.el index d366043..a90b26d 100644 --- a/init.el +++ b/init.el @@ -113,6 +113,7 @@ (require 'init-shellscript) (require 'init-perl) (require 'init-go) +(require 'init-c) (require 'init-lua) (require 'init-sgml) (require 'init-webmode) diff --git a/lisp/init-c.el b/lisp/init-c.el new file mode 100644 index 0000000..5be6015 --- /dev/null +++ b/lisp/init-c.el @@ -0,0 +1,20 @@ +;; *** C + +(use-package c-mode + :ensure nil ;; installed in site-lisp + :defer nil + + :init + (when (fboundp 'lsp-deferred) + (defun lsp-c-install-save-hooks () + (add-hook 'before-save-hook #'lsp-format-buffer t t) + (add-hook 'before-save-hook #'lsp-organize-imports t t)) + + (add-hook 'c-mode-hook #'lsp-deferred) + (add-hook 'c-mode-hook #'lsp-c-install-save-hooks) + + ;; c-mode sets TAB to 'c-indent-line-or-region by default which collides with corfu. + (add-hook 'c-mode-hook (lambda () (define-key c-mode-map (kbd "") #'indent-for-tab-command))))) + +(provide 'init-c) +;;; init-c.el ends here diff --git a/lisp/init-flymake.el b/lisp/init-flymake.el index 90a5117..9607b58 100644 --- a/lisp/init-flymake.el +++ b/lisp/init-flymake.el @@ -7,13 +7,15 @@ :custom (flymake-no-changes-timeout nil) + (flymake-shellcheck-allow-external-files t) :init (defun tvd-flymake-install-hooks() (add-hook 'before-save-hook #'flymake-start)) + (defalias 'check-flymake 'consult-flymake) :bind - ("!" . consult-flymake) + ;;; ("!" . consult-flymake) :config (add-hook 'shell-script-mode-hook #'tvd-flymake-install-hooks))