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))