diff --git a/.gitignore b/.gitignore index 5d4e4a4..d5271e2 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ daemon.pid tramp eln-cache bookmarks +.lsp-session-v1 diff --git a/conf-lisp/go.el b/conf-lisp/go.el index 474f6f8..305e706 100644 --- a/conf-lisp/go.el +++ b/conf-lisp/go.el @@ -10,4 +10,20 @@ ;; (setq indent-tabs-mode 1) :init - (add-hook 'before-save-hook 'gofmt-before-save)) + ;; disabled, I'm now trying lsp-mode, see below: + ;; (add-hook 'before-save-hook 'gofmt-before-save) + ;; :hook (go-mode lsp-deferred) + + (when (fboundp 'lsp-deferred) + (defun lsp-go-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 'go-mode-hook #'lsp-deferred) + (add-hook 'go-mode-hook #'lsp-go-install-save-hooks) + (add-hook 'go-mode-hook #'ivy-mode) + + ;; overwrite dump-jump settions here + (bind-key* (kbd "C-c j") #'lsp-find-definition) + (bind-key* (kbd "C-c b") #'xref-pop-marker-stack) + )) diff --git a/conf-lisp/lsp.el b/conf-lisp/lsp.el new file mode 100644 index 0000000..1581647 --- /dev/null +++ b/conf-lisp/lsp.el @@ -0,0 +1,21 @@ +;; LSP mode +(use-package lsp-mode + :config + (lsp-register-custom-settings + '(("gopls.completeUnimported" t t) + ("gopls.staticcheck" t t))) + + ;; disable infantile nonsense + (setq lsp-headerline-breadcrumb-enable nil) + (setq lsp-modeline-code-actions-enable nil) + + :init + ;; I'm not using any of th lsp commands, but better define a prefix + ;; than being unable to reach it + (setq lsp-keymap-prefix "C-c C-l") + + :commands lsp) + +;; I use ivy +(use-package lsp-ivy + :commands lsp-ivy-global-workspace-symbol) diff --git a/init/14-lsp.el b/init/14-lsp.el new file mode 120000 index 0000000..7793cbb --- /dev/null +++ b/init/14-lsp.el @@ -0,0 +1 @@ +../conf-lisp/lsp.el \ No newline at end of file