blob: 48f9d66ceab42d71b2a465749dc9a10601141a87 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# vim-lsp-settings
Auto configurations for Language Server for [vim-lsp](https://github.com/prabirshrestha/vim-lsp)
## Introduction
Language Servers is not easily to install. Visual Studio Code provide easy way to install/update Language Server and Language Server Client. This plugin provide same feature on Vim.
## Installation instruction
For [vim-plug](https://github.com/junegunn/vim-plug) plugin manager:
```viml
Plug 'prabirshrestha/async.vim'
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/asyncomplete-lsp.vim'
Plug 'prabirshrestha/vim-lsp'
Plug 'mattn/vim-lsp-settings'
```
You need to install both [vim-lsp](https://github.com/prabirshrestha/vim-lsp) and its accompanying plugins and vim-lsp-settings.
### Notice
If you use plugin manager that is merging plugins (ex. dein), Please setting stop merging work(ex. dein / merged = 0) or set `g:lsp_settings_servers_dir` option to a different directory from the vim-lsp's default.
_reason_:
Servers are installed in `./servers` directory at the caching area in default.
But when rebuild the cache, any merging plugin manager erases old cached files(include `./servers` and server execute files) before install.
You can change the directory to install servers by set `g:lsp_settings_servers_dir` option in full path.
## Usage
If you install rls already, you can use rls without configurations. But if you not installed rls yet, you can install it by following [this instruction](https://github.com/rust-lang/rls#setup).
If you install clangd already, you can use clangd for C/C++ without configurations. But if you install clang with named clangd-6.0, you can replace executable like below:
```vim
let g:lsp_settings = {
\ 'clangd': {'cmd': ['clangd-6.0']}
\}
```
Overridable keys are:
* cmd (List ex: `['clangd-6.0', '-enable-snippets']`)
* initialization_options (Dictionary)
* whitelist (List)
* blacklist (List)
* config (Dictionary)
* workspace_config (Dictionary)
If you install ruby but not solargraph, you can install solargraph with following command.
```
:LspInstallServer
```
Currently, no way to uninstall/update server. Run this command again, newer version will be installed.
## Supported Languages
| Language | Language Server | Local Install |
|------------|--------------------------------------------------------|:-------------:|
| C/C++ | clangd | Yes |
| C# | omnisharp | Yes |
| Clojure | clojure-lsp | Yes |
| TypeScript | typescript-language-server | Yes |
| JavaScript | typescript-language-server | Yes |
| JavaScript | javascript-typescript-stdio | Yes |
| Python | pyls | Yes |
| Rust | rls | No |
| Go | gopls | Yes |
| Ruby | solargraph | Yes |
| PHP | intelephense | Yes |
| Java | eclipse-jdt-ls | Yes |
| Lua | emmylua-ls | Yes |
| Vim | vim-language-server | Yes |
| Bash | bash-language-server | Yes |
| Terraform | terraform-lsp | Yes |
| Dockerfile | dockerfile-language-server-nodejs | Yes |
| YAML | yaml-language-server | Yes |
| XML | lsp4xml | Yes |
| Fortran | fortls | Yes |
| Scala | Metals | Yes |
| Elm | elm-language-server | Yes |
| JSON | json-languageserver | Yes |
| Swift | sourcekit-lsp | No |
| COBOL | cobol-language-support | Yes |
| Reason | reason-language-server | Yes |
| TeX | texlab | Yes |
| TeX | digestif | No |
| Nim | nimls | No |
| D | dls | No |
| Elixir | elixir-ls | Yes |
| Groovy | groovy-language-server | Yes |
| Dart | analysis-server-dart-snapshot | Yes |
| Erlang | erlang-ls | Yes |
| F# | fsharp-language-server | Yes |
## License
MIT
## Author
Yasuhiro Matsumoto (a.k.a. mattn)
|