如何配置lsp 和gopls

lsp部分code是这样的。但是我得到的错误LSP::No LSP for go-mode.

(defun spacelite/init-lsp ()
  (use-package lsp-mode
    :config
    (setq lsp-prefer-flymake nil)
    :commands lsp)
  (use-package lsp-ui :commands lsp-ui-mode)
  (use-package company-lsp :commands company-lsp)
  (add-hook 'go-mode-hook #'lsp)
  (spacelite//lsp-keys-for-mode 'go-mode)
  )

我看很多文章说go-mode支持gopls。所以不需要注册gopls?但是我看了下go-mode的code里面也没有gopls相关的东西。。奇怪。求助下怎么才能补全go。。

你是mac用户么。先看看(executable-find "gopls")能不能找到lsp server

是lsp内置gopls的支持。

对的,vim可以正常使用gopls。commandline执行:(executable-find "gopls") 得到nil

lsp是不是最新?老版本默认beego

应该是吧。昨天才装的。话说是bingo吧?

对,睡迷糊了。:joy:

mac有获取不到path的问题,装上这个应该就好了

好像有这个我瞅瞅

有这个

(use-package exec-path-from-shell :defer t :config
	(when (memq window-system '(mac ns x))
		(exec-path-from-shell-initialize)))

估计你没执行。用了:defer的情况代码不会自动执行,除非有东西触发他加载。试下把:defer改成:demand

OK 我试一下

big thanks 能补全了。话说我移动Println上面之后 出来多东西。。这些窗口能控制吗 显示在浮动的窗口里类似Nvim

我一般不看这些的。太碍眼

(setq lsp-ui-sideline-show-code-actions nil
          lsp-ui-sideline-show-hover nil)

这个hover 应该是lsp的dohover 这个是server 返回的,emacs的lsp是接受后端返回的通过lspui控制?dohover默认触发的?

gopls真的能用吗

还好吧 我vim用gopls1年多了。提了几个pr和issue。还行。我也不怎么依赖,只有第三方包的时候需要用下补全。