SpaceVim
lsp 模块提供了 language-server-protocol 的支持, 默认使用的 lsp 插件为:
注: 以上所有信息依赖于语言服务器所实现的功能,请查阅 Language Servers 列表。
默认未载入,如需载入该模块,可在配置文件加入:
[[layers]]
name = "lsp"
Bash
npm i -g bash-language-server
JavaScript:
npm install -g javascript-typescript-langserver
Python:
pip install --user python-language-server
julia:
安装 LanguageServer
包需要 Julia(0.6 或更高版本).
julia> Pkg.clone("https://github.com/JuliaEditorSupport/LanguageServer.jl")
在 Julia 0.7 新的包管理系统下,可以在 REPL 模式下进行安装,只需要输入 ]
即可切入到包管理模式,
然后执行 add LanguageServer
来安装对应的包。
vue:
npm install vue-language-server -g
css:
npm install -g vscode-css-languageserver-bin
ruby:
gem install solargraph
vim
npm install -g vim-language-server
为指定模块启用语言服务器支持,需要在载入模块时,指定 filetypes
选项:
[[layers]]
name = "lsp"
filetypes = [
"rust",
"javascript"
]
默认语言服务器的执行命令列表如下:
语言 | 命令 |
---|---|
ada |
['ada_language_server'] |
c |
['clangd'] |
cpp |
['clangd'] |
crystal |
['scry'] |
css |
['css-languageserver', '--stdio'] |
dart |
['dart_language_server'] |
elm |
['elm-language-server'] |
go |
['gopls'] |
haskell |
['hie', '--lsp'] |
html |
['html-languageserver', '--stdio'] |
javascript |
['typescript-language-server', '--stdio'] |
javascriptreact |
['typescript-language-server', '--stdio'] |
julia |
['julia', '--startup-file=no', '--history-file=no', '-e', 'using LanguageServer; server = LanguageServer.LanguageServerInstance(STDIN, STDOUT, false); server.runlinter = true; run(server);'] |
objc |
['clangd'] |
objcpp |
['clangd'] |
php |
['php', 'path/to/bin/php-language-server.php'] |
purescript |
['purescript-language-server', '--stdio'] |
python |
['pyls'] |
ruby |
['solargraph', 'stdio'] |
reason |
['ocaml-language-server'] |
rust |
['rustup', 'run', 'nightly', 'rls'] |
sh |
['bash-language-server', 'start'] |
typescript |
['typescript-language-server', '--stdio'] |
typescriptreact |
['typescript-language-server', '--stdio'] |
vim |
['vim-language-server', '--stdio'] |
vue |
['vls'] |
如果需要修改语言服务器的命令,在载入模块时,需要指定 override_cmd
选项:
[[layers]]
name = "lsp"
filetypes = [
"rust",
"javascript"
]
[layers.override_cmd]
rust = ["rustup", "run", "nightly", "rls"]
如果使用的是nvim(>=0.5.0),则需要指定 enabled_clients
选项:
[[layers]]
name = 'lsp'
enabled_clients = ['vimls', 'clangd']
快捷键 | 功能描述 |
---|---|
K / SPC l d |
显示文档 |
SPC l e |
重命名 symbol |
如果 checkers
模块未载入,则以下快捷键将被引入:
快捷键 | 功能描述 |
---|---|
SPC e c |
清除错误列表 |
SPC e n |
跳至下一个语法错误位置 |
SPC e N |
跳至上一个语法错误位置 |
SPC e p |
跳至上一个语法错误位置 |
SPC e l |
列出错误列表窗口 |
SPC e L |
列出错误列表窗口并跳至该窗口 |
由Jekyll强力驱动