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

感谢大神,使用了一下写js,感觉比lsp-mode流畅太多,我正想反映这个问题, php-language-server应该换成intelephense,结果回论坛看一下已经加上去了

支持啊!给大神跪啦! 不过有兴趣支持微软的python language server吗?

想借楼问一下,js 和 ts 的 lang server 要怎么安装?

我window系统,是切换到node.exe所在目录运行 npm i javascript-typescript-langserver 就安装好了,linux没装过,node.exe所在目录也加入到emacs path目录

1 个赞

正在和 mspyls 斗法,看看这两天是否可以被我制服。

4 个赞

这个补丁已经添加了微软 mspyls (Python Language Server) 的支持。

使用方式:

  1. 使用命令 nox-print-mspyls-download-url 打印 mspyls 的下载地址
  2. 下载并解压内容到 ~/.emacs.d/nox/mspyls/ 目录下面,保证这个目录下面可以直接找到 Microsoft.Python.LanguageServer 这个文件
  3. 给mspyls索引权限 sudo chmod +x ~/.emacs.d/nox/mspyls
  4. 重启Emacs和Nox, 就可以直接用 mspyls 对Python项目进行语法补全了

注意:

  • mspyls在语法补全之前会索引项目的文件,请不要直接在 HOME 目录下创建单文件进行语法补全测试,如果你的 HOME 目录文件很多,索引甚至会持续10多分钟。 要测试,建议在 HOME 下建立一个 test 的空文件夹,然后再在 test 里面创建单文件来测试。

mspyls 和 pyls 的优缺点:

  1. pyls 不建索引,但是是基于 jedi 搞的,大型的Python库比较慢
  2. mspyls 用C# 实现的,速度快,但是有上面巨型目录索引慢的问题

如果要切换回 pyls , 直接设置 (setq nox-python-server “pyls”) 即可。

7 个赞

搞定 欢迎使用 Nox -- 轻量级 LSP 客户端 - #69,来自 manateelazycat

2 个赞

太强啦!正在考虑把配置转移到Nox试试~

关了snippet好像补全function时不会自动添加括号。这个能设置吗?

可以根据补全的类型结合Emacs内置功能来加括号,但是在很多函数式语言或者脚本语言中,是可以直接传递函数对象的,所以给函数默认加括号可能不具有通用性。

2 个赞

Readme上最好添加实现了的lsp feature和没实现的。

请教大家一个问题:使用Nox补全后端只有company-capf,如果要结合company的其他补全后端和yasnippet功能,是需要自己设置company-backends吗?

用了一下,发现有一个不太顺手的地方,不知道是不是我用得不对?

nox 只有 nox-find-typeDefinition 而没有 nox-jump-typeDefinition

导致我在跳转时需要 nox-find-typeDefinition 此时只有一个 候选项,而且光标停留在 文件名 处, 我需要移动到具体定义,再回车跳转。

是否有直接跳转的方式呢?我看了 readme,Commands and keybindings 貌似也没看到, 或者 nox-find-typeDefinition 只有一个 候选项,可以直接跳转过去?

文档写的有,主要是

xref-find-definitions xref-find-definitions-other-window xref-pop-marker-stack xref-find-references

2 个赞

能不能在补全之后,某个地方自动的显示补全的函数的参数表呢,这样方便对照着输入参数。

我想想,可以玩一下overlay

nox-show-doc可以设在popup buffer里显示么?而且,现在的移动光标不会自动消失?

只有终端会在buffer里显示,posframe移动光标会消失

这种一般是eldoc的活。可以打开eldoc试试。

没用,Eglot就是这种eldoc,导致性能卡一卡的,我把eldoc代码全部都删除了。