33 lines
941 B
EmacsLisp
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
|