summary refs log tree commit diff
path: root/emacs
diff options
context:
space:
mode:
authorFranck Cuny <franck.cuny@gmail.com>2020-01-13 09:29:34 -0800
committerFranck Cuny <franck.cuny@gmail.com>2020-01-13 09:29:34 -0800
commite3270cc826cc1d0a64c93b3d317263949ea06902 (patch)
tree734d8bc8027b8db26b74013b0da9577a2dbe191d /emacs
parentemacs/ui: font size (diff)
downloademacs.d-e3270cc826cc1d0a64c93b3d317263949ea06902.tar.gz
emacs/prog: switch to lsp-mode
Previously I was using the package `eglot` to provide LSP functionality.
However, the package uses flymake for it, while my setup in general uses
flycheck. Since lsp-mode supports both, I'm switching to ls-mode.

I'm moving the code for company to the 'prog' module, so that all things
related to general programming is in one location.

Since I'm switching to lsp-mode mode primarily for go, I can also delete
a bunch of extra functionality that is now provided by lsp-mode.
Diffstat (limited to '')
-rw-r--r--emacs.d/custom/fcuny-company.el11
-rw-r--r--emacs.d/custom/fcuny-go.el54
-rw-r--r--emacs.d/custom/fcuny-prog.el40
-rw-r--r--emacs.d/init.el1
4 files changed, 36 insertions, 70 deletions
diff --git a/emacs.d/custom/fcuny-company.el b/emacs.d/custom/fcuny-company.el
deleted file mode 100644
index fab7c99..0000000
--- a/emacs.d/custom/fcuny-company.el
+++ /dev/null
@@ -1,11 +0,0 @@
-(use-package company
-  :ensure t
-  :diminish company-mode
-
-  :custom
-  (company-minimum-prefix-length 2)
-  (company-tooltip-align-annotations t)
-  (company-tooltip-limit 12)
-  (company-idle-delay 1))
-
-(provide 'fcuny-company)
diff --git a/emacs.d/custom/fcuny-go.el b/emacs.d/custom/fcuny-go.el
index ffbc1d5..4484b6e 100644
--- a/emacs.d/custom/fcuny-go.el
+++ b/emacs.d/custom/fcuny-go.el
@@ -20,62 +20,10 @@
 
   :config
   (when (memq window-system '(mac ns))
-    (exec-path-from-shell-copy-env "GOPATH"))
-
-  (defhydra hydra-go-menu (:hint nil)
-    "
-^find       ^     ^goto    ^       ^test^
-^-----------^     ^--------^       ^----^
-_r_: referrers    _d_: definition  _T_: test current test
-_i_: implements   _a_: arguments   _F_: test current file
-_D_: describe     _f_: function    _P_: test current package
-^ ^               _R_: return
-"
-    ("r" go-guru-referrers)
-    ("i" go-guru-implements)
-    ("D" go-guru-describe)
-    ("d" go-guru-definition)
-    ("a" go-goto-arguments)
-    ("f" go-goto-function)
-    ("R" go-goto-return-values)
-    ("T" go-test-current-test)
-    ("F" go-test-current-file)
-    ("P" go-test-current-project)
-    ("q" nil "quit" :color blue))
-
-  (define-key go-mode-map (kbd "C-c g") 'hydra-go-menu/body))
-
-(use-package go-guru
-  :ensure t
-  :after go-mode
-  :commands (go-guru-describe go-guru-freevars go-guru-implements go-guru-peers
-             go-guru-referrers go-guru-definition go-guru-pointsto
-             go-guru-callstack go-guru-whicherrs go-guru-callers go-guru-callees
-             go-guru-expand-region)
-  :config
-  (unless (executable-find "guru")
-    (warn "go-mode: couldn't find guru, refactoring commands won't work"))
-  (add-hook 'go-mode-hook #'go-guru-hl-identifier-mode))
-
-(use-package go-eldoc
-  :ensure t
-  :after go-mode
-  :config
-  (add-hook 'go-mode-hook 'go-eldoc-setup))
-
-(use-package godoctor
-  :ensure t
-  :after go-mode)
+    (exec-path-from-shell-copy-env "GOPATH")))
 
 (use-package gotest
   :ensure t
   :after go-mode)
 
-(use-package company-go
-  :ensure t
-  :after (company)
-  :hook (go-mode . (lambda ()
-                     (setq-local company-backends
-                                 (append (list 'company-go) company-backends)))))
-
 (provide 'fcuny-go)
diff --git a/emacs.d/custom/fcuny-prog.el b/emacs.d/custom/fcuny-prog.el
index ab7cc05..92dd9c7 100644
--- a/emacs.d/custom/fcuny-prog.el
+++ b/emacs.d/custom/fcuny-prog.el
@@ -1,9 +1,39 @@
-(use-package eglot
+(require 'fcuny-vars)
+
+(use-package company
+  :ensure t
+  :diminish company-mode
+
+  :custom
+  (company-minimum-prefix-length 2)
+  (company-tooltip-align-annotations t)
+  (company-tooltip-limit 12)
+  (company-idle-delay 1))
+
+(use-package lsp-mode
+  :ensure t
+  :commands (lsp lsp-deferred)
+  :hook (go-mode . lsp-deferred)
+  :custom
+  (lsp-session-file (expand-file-name "lsp-session-v1" fcuny/path-emacs-var))
+  (lsp-enable-snippet nil)
+  (lsp-prefer-flymake nil))
+
+(use-package lsp-ui
+  :ensure t
+  :commands lsp-ui-mode
+  :custom
+  (lsp-ui-doc-enable t)
+  (lsp-ui-peek-enable t)
+  (lsp-ui-sideline-enable t)
+  (lsp-ui-imenu-enable t)
+  (lsp-ui-flycheck-enable t))
+
+(use-package company-lsp
   :ensure t
+  :after company
+  :commands company-lsp
   :config
-  (define-key eglot-mode-map (kbd "C-c ; g .") 'xref-find-definitions)
-  (define-key eglot-mode-map (kbd "C-c ; g ,") 'pop-tag-mark)
-  (add-to-list 'eglot-server-programs '(go-mode . ("gopls")))
-  (add-hook 'go-mode-hook 'eglot-ensure))
+  (push 'company-lsp company-backends))
 
 (provide 'fcuny-prog)
diff --git a/emacs.d/init.el b/emacs.d/init.el
index 19d895c..0fa1b86 100644
--- a/emacs.d/init.el
+++ b/emacs.d/init.el
@@ -43,7 +43,6 @@
 (require 'fcuny-puppet)
 (require 'fcuny-yaml)
 
-(require 'fcuny-company)
 (require 'fcuny-go)
 (require 'fcuny-lisp)
 (require 'fcuny-make)