欢迎使用 Nox -- 轻量级 LSP 客户端

可以直接从eglot的class继承,不用每次更新都和上游同步代码。

我要暴力把我不要的代码先删除,然后再把我关心的代码的性能提高。

写了一篇中文文档,方便感兴趣的同学查看: https://manateelazycat.github.io/emacs/2020/03/29/nox.html

2 个赞

如果通信量巨大的話(a few hundred KiB),Python延遲會影響體驗的。不大的話,用什麼倒是無所謂。以前發現傳輸幾百KiB的JSON,Emacs處理就是秒級了

1 个赞

已看完介绍,非常符合自己的需求,因为平时用lsp-mode基本除了这些功能其他的,我都禁掉

在Emacs26.3 和Emacs 27.09 试用了下,前者require jsonrpc。 开启nox后,在python下感觉没啥反应。。。 如这种,nox–error: [nox] Sorry, this server doesn’t do :textDocument/typeDefinition。 我是在spacemacs下,不知道有啥影响没有。现在spacemacs下的lsp倒是开箱可用,且速度不错。

我记得之前nox的版本我还可以rename, 今天nox下rename就会报错:jsonrpc-error: “request id=2 failed:”, (jsonrpc-error-code . -32602), (jsonrpc-error-message . “rope.base.exceptions.RefactoringError: Rename refactoring should be performed on resolvable python identifiers.”), (jsonrpc-error-data :traceback [" File “/Users/beyondpie/miniconda/envs/pytorch/lib/python3.7/site-packages/pyls_jsonrpc/endpoint.py”, line 113, in consume self._handle_request(message[‘id’], message[‘method’], message.get(‘params’))…

nox-show-doc 指定用文泉驿微米黑 14号字体。好在我的机器上字体多。

已体验,速度很赞。。。

诊断信息对很多人来说还是很有用的, 但是在用户快速输入的时候完全不需要这些信息.

如果诊断信息能在空闲的时候才更新, 而且只更新当前文件的, 那就完美了, 能节省很多资源消耗.

lsp协议里, 诊断信息好像是异步发送的, 这样就需要lsp server那边配合. 诊断信息应该作为主动请求比较好.

2 个赞

感觉马上就想去试一下。是不是原本支持的所有语言,原则上现在都可以支持的?

刚才在windows下弄了一下,我导入的numpy,刚开始还是有1.2秒延迟,不知道啥回事

墙裂知迟,大神牛逼

nox-show-doc 这个函数是对字体有要求嘛qwq?

建议还是保留 flycheck 的功能。 作为一个经常写 c/c++ 的用户, flycheck 的3个对于 c/c++checker 都不太友好,因为在大多数的项目中都会自定义 include path ,而如果针对特定项目设置 flycheck-cppcheck-include-path 就不太有通用性。于是 lsp 的诊断信息通过 flycheck 显示还是有点用处的

问个跑题的…

你在用 lsp 检查的时候会出现一些不存在的错误吗?(重启 lsp 之后又没有错误了…

我用 lsp-mode + ccls 的时候经常出现 T_T

没有啊,最新版的会用你当前的字体呀,你用啥他就用啥。

ccls的诊断信息是根据磁盘上的文件来提示报错信息的,要先写入一下文件再看一下有没有这个现象。

现在主要慢的地方就是不要在写代码的时候实时给诊断信息和实时的给文档,这2点去掉以后性能会大幅提升。

这个项目的目的就是提升速度和增加编程的手感。

如果你要全功能的话,建议还是用lsp-mode

是的,几乎所有的语言都可以支持。