~edwargix/emacs.d

76f53e6ad06fe203099ebe423be80f0f35ca8d37 — David Florness 4 years ago 059f134
Allow directories with a go.mod file to be a project

This is needed to use lsp-mode with gopls when inside the GOPATH.
1 files changed, 11 insertions(+), 0 deletions(-)

M lisp/go.el
M lisp/go.el => lisp/go.el +11 -0
@@ 1,3 1,14 @@
(use-package go-mode
  :defer t
  :hook (go-mode . lsp))

(require 'project)

(defun project-find-go-module (dir)
  (when-let ((root (locate-dominating-file dir "go.mod")))
    (cons 'go-module root)))

(cl-defmethod project-root ((project (head go-module)))
  (cdr project))

(add-hook 'project-find-functions #'project-find-go-module)