VS Code 配置 Nim 语言扩展
2024-06-12 - 甲辰年 庚午月 丁未日 - 农历五月初七 阴转多去
安装 Nim language server 插件
Nim language server 官方 github 项目地址:
https://github.com/nim-lang/langserver
用下面的命令安装:
nimble install nimlangserver
安装过程会下载、编译一大堆的依赖
我本机安装的是 Nim ver 2.0.8,它竟然自己编译 Nim 2.0.2 并安装:
Installing nim@2.0.2 Success: nim installed successfully
测试 nimlangserver 安装是否成功
运行命令:
$ nimlangserver -v
1.4.0
上面显示的信息说明 nimlangserver 已经成功安装
VS Code 配置 Nim language server
-
点击 VS Code 左侧图标栏的插件图标(底下那个)
-
找到 nim-lang.org,点击右侧的齿轮状 “Manage" 小图标
-
在弹出菜单中选择 Extension Settings
-
找到设置项 Nim Lsp: Path,输入
nimlangserver.exe
所在目录的绝对路径,如:C:\Users\tuenhai.com.nimble\pkgs2\nimlangserver-1.4.0-20579f6b83a2b3b7b2af7e3e9cef94c27266fe1b\
也可以输入绝对路径,如:
C:\Users\tuenhai.com\.nimble\pkgs2\nimlangserver-1.4.0-20579f6b83a2b3b7b2af7e3e9cef94c27266fe1b\nimlangserver.exe
如果你不是用 nimble 从源码编译安装它,而是复制已经编译好的可执行文件所在的文件夹到另一口台电脑上,那么就要如上指定可执行文件的绝对路径
测试 nimlangserver 是否正常工作
- 在 .nim 文件中,输入
parse
会列出一长串 parse 开头的函数 - 鼠标移到函数名上,会弹出函数信息提示
弹窗错误提示的解决办法
按照本文设置,nimlangserver 能工作,只是它可能不时在右下角弹出类似下面的错误提示:
Request textDocument/documentSymbol failed
Request textDocument/documentHightlight failed
原因,海云青飞 认为可能是 nimlangserver 来不及计算出错误提示的信息
我设置 VS Code 源代码自动保存 afterDelay 1000 毫秒,这时我任意改动 nim 源文件都会很快触发 nimlangserver 重新计算,这让它忙得上气不接下气,实在没有办法,它只能报错求救
解决办法:
-
VS Code 右上角
...
-
Configure Editor
-
搜索
auto save
-
修改设置
- Files: Auto Save: afterDelay
- Files: Auto Save Delay: 15000
这种设置是否有效还有待观察
编译第一个 Nim 程序
创建文本文件如 hello.nim
,内容如下:
echo "sea fly!"
然后按 F6 运行当前文件:
输出:
tuenhai.com@DESKTOP-B3J39SP MSYS ~/nim/code
$ nim c -r "c:\msys64\home\tuenhai.com\nim\code\run\hello.nim"
Hint: used config file 'C:\Users\tuenhai.com\nim64\config\nim.cfg' [Conf]
Hint: used config file 'C:\Users\tuenhai.com\nim64\config\config.nims' [Conf]
........................................................................
CC: hello.nim
Hint: [Link]
Hint: mm: orc; threads: on; opt: none (DEBUG BUILD, `-d:release` generates faster code)
27794 lines; 1.069s; 30.324MiB peakmem; proj: c:\msys64\home\tuenhai.com\nim\code\run\hello.nim;
out: c:\msys64\home\tuenhai.com\nim\code\run\test.exe [SuccessX]
Hint: c:\msys64\home\tuenhai.com\nim\code\run\test.exe [Exec]
sea fly!
其他信息:PMunch/nimlsp 不是官方插件
https://github.com/PMunch/nimlsp 非官方插件
我一开始安装的是 nimlsp 0.4.6,使用时总是不起作用并报错
于是我进入 nimlsp.exe 所在目录,执行命令:
./nimlsp
这时显示:
Content-Length: 161
{"jsonrpc":"2.0","method":"window/showMessage","params":{"type":2,"message":"Current Nim version does not match the one NimLSP is built against 1.6.0 != 2.0.4"}}
重新安装 nimlsp,还是不行
后来我安装 nimlangserver 才成功
2024-09-19 更新
独立思考最难得,赞赏支持是美德!(微信扫描下图)