Skip to content

Commit 2b1c81d

Browse files
authored
Add erlang compatibility matrix (#906)
* Add Erlang compatibility matrix. * Cleanup markdown. * Add direct link to issue. * Refine compatibility matrix. * Update supported Elixir versions for Erlang 26.0.
1 parent 10ffd29 commit 2b1c81d

File tree

1 file changed

+54
-67
lines changed

1 file changed

+54
-67
lines changed

README.md

Lines changed: 54 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,21 @@ Note: On first run Dialyzer will build a PLT cache which will take a considerabl
2828

2929
## IDE plugins
3030

31-
| IDE | Plugin | Support |
32-
| ------------ | ----------------------------------------------------------------------------- | --------------------------------------------------------------------- |
33-
| Emacs | [eglot](https://github.com/joaotavora/eglot) | |
34-
| Emacs | [lsp-mode](https://github.com/emacs-lsp/lsp-mode) | Supports debugger via [dap-mode](https://github.com/yyoncho/dap-mode) |
35-
| Kakoune | [kak-lsp](https://github.com/kak-lsp/kak-lsp) | [Limitations](https://github.com/kak-lsp/kak-lsp/#limitations) |
36-
| Kate | [built-in LSP Client plugin](https://kate-editor.org/post/2020/2020-01-01-kate-lsp-client-status/) | Does not support debugger |
37-
| Neovim | [coc.nvim](https://github.com/neoclide/coc.nvim) | Does not support debugger |
38-
| Neovim | [nvim-dap](https://github.com/mfussenegger/nvim-dap) | Supports debugger only |
39-
| Neovim | [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) | Does not support debugger |
40-
| Nova | [nova-elixir-ls](https://github.com/raulchedrese/nova-elixir-ls) | |
41-
| Sublime Text | [LSP-elixir](https://github.com/sublimelsp/LSP-elixir) | Does not support debugger |
42-
| Vim/Neovim | [ALE](https://github.com/w0rp/ale) | Does not support debugger or @spec suggestions |
43-
| Vim/Neovim | [elixir-lsp/coc-elixir](https://github.com/elixir-lsp/coc-elixir) | Does not support debugger |
44-
| Vim/Neovim | [vim-lsp](https://github.com/prabirshrestha/vim-lsp) | Does not support debugger |
45-
| VS Code | [elixir-lsp/vscode-elixir-ls](https://github.com/elixir-lsp/vscode-elixir-ls) | Supports all ElixirLS features |
31+
| IDE | Plugin | Support |
32+
| ------------ | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
33+
| Emacs | [eglot](https://github.com/joaotavora/eglot) | |
34+
| Emacs | [lsp-mode](https://github.com/emacs-lsp/lsp-mode) | Supports debugger via [dap-mode](https://github.com/yyoncho/dap-mode) |
35+
| Kakoune | [kak-lsp](https://github.com/kak-lsp/kak-lsp) | [Limitations](https://github.com/kak-lsp/kak-lsp/#limitations) |
36+
| Kate | [built-in LSP Client plugin](https://kate-editor.org/post/2020/2020-01-01-kate-lsp-client-status/) | Does not support debugger |
37+
| Neovim | [coc.nvim](https://github.com/neoclide/coc.nvim) | Does not support debugger |
38+
| Neovim | [nvim-dap](https://github.com/mfussenegger/nvim-dap) | Supports debugger only |
39+
| Neovim | [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) | Does not support debugger |
40+
| Nova | [nova-elixir-ls](https://github.com/raulchedrese/nova-elixir-ls) | |
41+
| Sublime Text | [LSP-elixir](https://github.com/sublimelsp/LSP-elixir) | Does not support debugger |
42+
| Vim/Neovim | [ALE](https://github.com/w0rp/ale) | Does not support debugger or @spec suggestions |
43+
| Vim/Neovim | [elixir-lsp/coc-elixir](https://github.com/elixir-lsp/coc-elixir) | Does not support debugger |
44+
| Vim/Neovim | [vim-lsp](https://github.com/prabirshrestha/vim-lsp) | Does not support debugger |
45+
| VS Code | [elixir-lsp/vscode-elixir-ls](https://github.com/elixir-lsp/vscode-elixir-ls) | Supports all ElixirLS features |
4646

4747
Please feel free to create and publish your own client packages and add them to this list!
4848

@@ -53,53 +53,54 @@ The installation process for ElixirLS depends on your editor.
5353
<details>
5454
<summary>VSCode</summary>
5555

56-
Please install the extension via the following link: https://marketplace.visualstudio.com/items?itemName=JakeBecker.elixir-ls
56+
Please install the extension via the following link: https://marketplace.visualstudio.com/items?itemName=JakeBecker.elixir-ls
57+
5758
</details>
5859

5960
<details>
6061
<summary>Emacs Installation Instructions</summary>
6162

62-
Download the latest release:
63-
https://github.com/elixir-lsp/elixir-ls/releases/latest and unzip it into a
64-
directory (this is the directory referred to as the
65-
`"path-to-elixir-ls/release"` below)
66-
67-
If using `lsp-mode` add this configuration:
68-
69-
```elisp
70-
(use-package lsp-mode
71-
:commands lsp
72-
:ensure t
73-
:diminish lsp-mode
74-
:hook
75-
(elixir-mode . lsp)
76-
:init
77-
(add-to-list 'exec-path "path-to-elixir-ls/release"))
78-
```
63+
Download the latest release:
64+
https://github.com/elixir-lsp/elixir-ls/releases/latest and unzip it into a
65+
directory (this is the directory referred to as the
66+
`"path-to-elixir-ls/release"` below)
67+
68+
If using `lsp-mode` add this configuration:
69+
70+
```elisp
71+
(use-package lsp-mode
72+
:commands lsp
73+
:ensure t
74+
:diminish lsp-mode
75+
:hook
76+
(elixir-mode . lsp)
77+
:init
78+
(add-to-list 'exec-path "path-to-elixir-ls/release"))
79+
```
7980

80-
For eglot use:
81+
For eglot use:
8182

82-
```elisp
83-
(require 'eglot)
83+
```elisp
84+
(require 'eglot)
8485
85-
;; This is optional. It automatically runs `M-x eglot` for you whenever you are in `elixir-mode`
86-
(add-hook 'elixir-mode-hook 'eglot-ensure)
86+
;; This is optional. It automatically runs `M-x eglot` for you whenever you are in `elixir-mode`
87+
(add-hook 'elixir-mode-hook 'eglot-ensure)
8788
88-
;; Make sure to edit the path appropriately, use the .bat script instead for Windows
89-
(add-to-list 'eglot-server-programs '(elixir-mode "path-to-elixir-ls/release/language_server.sh"))
90-
```
89+
;; Make sure to edit the path appropriately, use the .bat script instead for Windows
90+
(add-to-list 'eglot-server-programs '(elixir-mode "path-to-elixir-ls/release/language_server.sh"))
91+
```
9192

9293
</details>
9394

9495
## Supported versions
9596

96-
Elixir:
97-
98-
- 1.12 minimum
99-
100-
Erlang:
101-
102-
- OTP 22 minimum
97+
| OTP Versions | Elixir Versions | Supports ElixirLS | Issue(s) |
98+
| :----------: | :-------------: | :---------------: | :--------------------------------------------------------: |
99+
| 22 | 1.12 - 1.13 | Yes | Erlang docs not working (requires EIP 48) |
100+
| 23 | 1.12 - 1.14 | Yes | None |
101+
| 24 | 1.12 - 1.15 | Yes | None |
102+
| 25 | 1.13.4 - 1.15 | Yes | None |
103+
| 26 | 1.14.5 - 1.15 | No | [#886](https://github.com/elixir-lsp/elixir-ls/issues/886) |
103104

104105
It is generally recommended to install Elixir and Erlang via [ASDF](https://github.com/asdf-vm/asdf) so that you can have different projects using different versions of Elixir without having to change your system-installed version. ElixirLS can detect and use the version of Elixir and Erlang that you have configured in ASDF.
105106

@@ -119,15 +120,10 @@ To debug modules in .exs files (such as tests), they must be specified under req
119120
"name": "mix test",
120121
"request": "launch",
121122
"task": "test",
122-
"taskArgs": [
123-
"--trace"
124-
],
123+
"taskArgs": ["--trace"],
125124
"startApps": true,
126125
"projectDir": "${workspaceRoot}",
127-
"requireFiles": [
128-
"test/**/test_helper.exs",
129-
"test/**/*_test.exs"
130-
]
126+
"requireFiles": ["test/**/test_helper.exs", "test/**/*_test.exs"]
131127
}
132128
```
133129

@@ -142,10 +138,7 @@ Currently, to debug a single test or a single test file, it is necessary to modi
142138
"taskArgs": ["tests/some_test.exs:123"],
143139
"startApps": true,
144140
"projectDir": "${workspaceRoot}",
145-
"requireFiles": [
146-
"test/**/test_helper.exs",
147-
"test/some_test.exs"
148-
]
141+
"requireFiles": ["test/**/test_helper.exs", "test/some_test.exs"]
149142
}
150143
```
151144

@@ -179,14 +172,8 @@ It's important to note that NIF (Native Implemented Function) modules cannot be
179172
"task": "test",
180173
"taskArgs": ["--trace"],
181174
"projectDir": "${workspaceRoot}",
182-
"requireFiles": [
183-
"test/**/test_helper.exs",
184-
"test/**/*_test.exs"
185-
],
186-
"excludeModules": [
187-
":some_nif",
188-
"Some.SlowModule"
189-
]
175+
"requireFiles": ["test/**/test_helper.exs", "test/**/*_test.exs"],
176+
"excludeModules": [":some_nif", "Some.SlowModule"]
190177
}
191178
```
192179

0 commit comments

Comments
 (0)