我在用ccls,牛人
lsp-mode 的python 还是可以感觉到明显卡顿,特别是使用numpy这个包 有一定几率能把emacs卡死。
我最近也在配置 lsp,碰到个问题,也参考了你这个配置,但是还是没有解决,所以想问一下。
我希望使用 lsp ui + flycheck,目前参考你的 flycheck 配置,flycheck 在我修改配置时,emacs-lisp 的 buffer 中是可以使用的,此时是没有emacs-lisp 的 lsp server。
而我在 Golang 中,可以看到 lsp lang server 正常启动,company 和 ui 也都是正常,但是 flycheck 没有渲染。
部分配置如下:
; flycheck
:hook (after-init . global-flycheck-mode)
; lsp
(setq lsp-prefer-flymake nil)
; lsp ui
(setq lsp-ui-flycheck-enable t)
C-h m
可以看到 minor mode 有 Flycheck
flycheck-verify-setup
可以看到 go 相关的 enable 都是 yes
flycheck-list-error
是空的,但是我可以确定有 error 和 warning
还有一个点是 doom-modeline 在 flycheck 可用时,右下角有图标提示,但是 go mode 里没有这个图标。
内容有可能有点多,还希望能指点一下,我应该如何进行下一步排查?
如果 flycheck 不起作用,doom-modeline 当然不会显示状态。
从你的描述中很难判定是什么问题。在其他语言比如 Python 使用 lsp+flycheck 是否起作用?如果都不行,就是 lsp-ui 配置有问题;如果起作用就是跟golang相关部分有问题。
我居然没试一下其它语言,失误了。。。
不过试了一下,Python 没有问题,看来还是 Golang 的哪配置有问题,谢谢了,我再查一下。。。
不过话说有什么方式能够看到更多的 log 吗?
我试过 --debug-init
好像没看到有用的 log
查看 *lsp-log*,检查
lsp-ui是否 enable:
flycheck-verify-setup RET lsp-ui`
关掉side line,关掉ui doc,关掉symbol highlighting,只用补全,flycheck和eldoc,感觉还可以。lsp-mode默认会开启很多花里胡哨的东西。
(setq lsp-ui-flycheck-enable t
lsp-ui-doc-enable nil
lsp-ui-imenu-enable nil
lsp-ui-sideline-enable nil
lsp-enable-symbol-highlighting nil)
这个配置似乎是不起作用的,得用 (setq lsp-prefer-flymake nil)
。
另外,关掉 ui-doc 可以试试lsp-describe-thing-at-point
。
The following checker is explicitly selected for this buffer:
lsp-ui
- major mode: `go-mode' supported
- may enable: yes
- predicate: t
感觉已经 enable 了,但是没有渲染,而且 flycheck list error 也是空的
lsp-log 里就看到这个,感觉不知道是否相关?
Command "bingo" is present on the path.
Command "go-langserver" is not present on the path.
我用的是 bingo,不知道为什么还会找 go-langserver?
bingo
都不在 $PATH 里,Emacs 找不到啊
Bingo 在啊,是 go-langserver 不在吧?
我先研究一下把 go langserver 的依赖去了
对,打错了,是go-langserver
不在。如果 bingo 在应该就没问题,看看lsp是否启动成功了。
居然是 lang server 的问题,bingo
已经不维护了,试着用了一下官方的 gopls
,flycheck 居然好了
Go 的 lang server 都用第三个了,希望这回进官方库了,能长久
LSP下,eldoc用着用着就不显示了是什么鬼?有人遇到过吗?没error,用得好好的,就突然傻了。
是不是lsp-ui接管doc了
谢谢提示,我待会看看。但我的LSP sideline和doc都是disabled的。
问一下,大家,lsp-find-definition进行跳转后,都是如何回跳的啊?
lsp-ui-peek-jump-backward
如果是evil
用户的话,C-t
回跳