Commit e48f1dfacf29

Vincent Demeester <vincent@sbr.pm>
2019-05-27 17:28:08
setup-org / setup-company : fix go completion and enable lsp
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent d88a751
Changed files (2)
lisp/setup-company.el
@@ -25,47 +25,55 @@
              ("C-s" . company-select-previous)
              ("TAB" . company-complete))
   (setq company-backends
-        '((company-css
-           company-clang
-           company-capf
-           company-semantic
-           company-xcode
-           company-cmake
-           company-files
-           company-gtags
-           company-etags
-           company-keywords))))
+        '(company-css
+          company-clang
+          company-capf
+          company-semantic
+          company-xcode
+          company-cmake
+          company-files
+          company-gtags
+          company-etags
+          company-keywords)))
 
 (use-package company-emoji
   :ensure company
   :config
   (add-to-list 'company-backends 'company-emoji))
 
-;; (use-package lsp-mode
-;;   :config
-;;   (with-eval-after-load "flycheck"
-;;     (require 'lsp-flycheck)
-;;     (add-to-list 'flycheck-checkers 'lsp)))
+(use-package lsp-mode
+  :config (require 'lsp-clients)
+  ;; (with-eval-after-load "flycheck"
+  ;;   (require 'lsp-flycheck)
+  ;;   (add-to-list 'flycheck-checkers 'lsp))
+  )
 
-;; (with-eval-after-load "company"
-;;   (use-package company-lsp
-;;     :after lsp-mode
-;;     :config
-;;     (push 'company-lsp company-backends)))
+(with-eval-after-load "company"
+  (use-package company-lsp
+    :after lsp-mode
+    :config
+    (push 'company-lsp company-backends)))
 
-;; (with-eval-after-load "projectile"
-;;   (defun my-set-projectile-root ()
-;;     (when lsp--cur-workspace
-;;       (setq projectile-project-root (lsp--workspace-root lsp--cur-workspace))))
-;;   (add-hook 'lsp-before-open-hook #'my-set-projectile-root))
+(with-eval-after-load "projectile"
+  (defun my-set-projectile-root ()
+    (when lsp--cur-workspace
+      (setq projectile-project-root (lsp--workspace-root lsp--cur-workspace))))
+  (add-hook 'lsp-before-open-hook #'my-set-projectile-root))
 
-;; (use-package lsp-ui
-;;   :after lsp-mode
-;;   :hook ((lsp-mode . lsp-ui-mode) 
-;;          (lsp-ui-mode . lsp-ui-peek-mode))
-;;   :config
-;;   (define-key lsp-ui-mode-map [remap xref-find-definitions] #'lsp-ui-peek-find-definitions)
-;;   (define-key lsp-ui-mode-map [remap xref-find-references] #'lsp-ui-peek-find-references))
+;; lsp-ui: This contains all the higher level UI modules of lsp-mode, like flycheck support and code lenses.
+;; https://github.com/emacs-lsp/lsp-ui
+(use-package lsp-ui
+  :after lsp-mode
+  :hook ((lsp-mode . lsp-ui-mode) 
+         (lsp-ui-mode . lsp-ui-peek-mode))
+  :config
+  (define-key lsp-ui-mode-map [remap xref-find-definitions] #'lsp-ui-peek-find-definitions)
+  (define-key lsp-ui-mode-map [remap xref-find-references] #'lsp-ui-peek-find-references)
+  (setq lsp-ui-sideline-enable nil
+        lsp-ui-doc-enable nil
+        lsp-ui-flycheck-enable t
+        lsp-ui-imenu-enable t
+        lsp-ui-sideline-ignore-duplicate t))
 
 (provide 'setup-company)
 
lisp/setup-go.el
@@ -25,6 +25,10 @@
     ("ir" go-remove-unused-imports)
     ("q" nil "quit" :color blue))
   :config
+  (use-package company-go
+    :config
+    (setq company-go-show-annotation t)
+    (push 'company-go company-backends))
   (setq gofmt-command "goimports")
   (if (not (executable-find "goimports"))
       (warn "go-mode: couldn't find goimports; no code formatting/fixed imports on save")
@@ -66,15 +70,6 @@ _f_: freevars      ^ ^               _s_: callstack    _e_: whicherrs"
   :config
   (add-hook 'go-mode-hook 'go-eldoc-setup))
 
-(use-package company-go
-  :after (go-mode company-mode)
-  :config
-  (setq company-go-show-annotation t)
-  (add-hook 'go-mode-hook
-	    (lambda ()
-	      (set (make-local-variable 'company-backends) '(company-go))
-	      (company-mode))))
-
 (use-package gotest
   :defer 2
   :after go-mode