syscfg/emacs/module/module-eglot.el

33 lines
941 B
EmacsLisp

;;; module-eglot.el --- Eglot support for Emacs
;;;
;;; Commentary: This file provides basic functionality for using Eglot
;;; with Emacs. It's a starting point, not a complete implementation.
;;; Code:
(require 'module-pkg)
(pkg/require 'eglot)
(pkg/require 'go-mode)
(add-hook 'go-mode-hook 'eglot-ensure)
(add-hook 'c-mode-hook 'eglot-ensure)
(defun eglot-format-buffer-before-save ()
(add-hook 'before-save-hook #'eglot-format-buffer -10 t))
(add-hook 'go-mode-hook #'eglot-format-buffer-before-save)
(setq-default eglot-workspace-configuration
'((:gopls .
((staticcheck . t)
(matcher . "CaseSensitive")))))
(defun go-mode-setup-organize-imports ()
(add-hook 'before-save-hook
(lambda ()
(call-interactively 'eglot-code-action-organize-imports))
nil t))
(add-hook 'go-mode-hook #'go-mode-setup-organize-imports)
(provide 'module-eglot)
;;; module-eglot.el ends here