aggressive-indent 和 lsp-mode 的冲突问题

最近尝试同时使用 lsp-mode 和 aggressive-indent ,发现这两个插件经常会出冲突。比如 aggressive-indent 强制缩进后 lsp-mode发送给 server 的代码信息对不上 Server 端的 AST 。 导致 lsp-ui 的 flycheck checker 没法正确提示语法错误。对于某些 langserver(RLS) ,连续处理错误的 AST 信息还会导致 server crash,请问有没有两个插件一起用的用户出现这种问题?

用gopls,pyls,bash-ls 都没有遇到你说的问题。

我主要用 RLS 和 typescript-langauge-server。偶尔用用 eclipse-jdt-ls 和 clangd。前面两个老是出问题,后面两个比较少,难道是 server 实现的问题? :joy:

你的gopls在补全package路径的时候会卡死吗?我这必卡。。 比如 import ( “github.com/”开始卡死 ) 出现如下图 mmexport1560440873760

import时有点卡,不确定是server的问题,还是go-mode本身的问题。

之前有童鞋发了snippet优化找包的逻辑:

(defun go-packages-gopkgs()
        "Return a list of all Go packages, using `gopkgs'."
        (sort (process-lines "gopkgs") #'string<))
      (setq go-packages-function #'go-packages-gopkgs)

加上还是有点卡。

可以在哪设置不补全package吗?

有可能,毕竟实现有很大差异,很多行为都不大一致。lsp-mode要兼容也挺难的。

看看company里面是不是可以去掉某些backend

应该就是company-lsp的锅

试了下bingo,没有卡顿问题,但是server会报错甚至crash。应该还是server的实现问题,或者是和client的兼容问题。还是给gopls报个bug吧

我开了一个issue: Issues · emacs-lsp/lsp-mode · GitHub

你可以上去提供更多信息便于尽快修复。

嗯嗯,可以的