aboutsummaryrefslogtreecommitdiff
path: root/README.md
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)