You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ElixirLS is provides two components: a language server driving code intelligence and a debug adapter that allows stepthrough debugging of Elixir projects. Language server adheres to the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/). Debug adapter implements [Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/).
6
+
ElixirLS provides two components: a language server driving code intelligence and a debug adapter that allows step-through debugging of Elixir projects. The language server adheres to the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), and the debug adapter implements the[Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/).
7
7
8
8
## This is the main elixir-ls repo
9
9
10
-
This repo is a communitymaintained fork. The original repository [JakeBecker/elixir-ls](https://github.com/JakeBecker/elixir-ls) has now been deprecated in favor of this one.
10
+
This repo is a community-maintained fork. The original repository [JakeBecker/elixir-ls](https://github.com/JakeBecker/elixir-ls) has now been deprecated in favor of this one.
11
11
12
12
## Features
13
13
@@ -110,7 +110,7 @@ OTP supports the last three versions with security updates:
ElixirLS generally aims to support all supported versions of Elixir on all compatible versions of OTP. However this is not a hard and fast rule and may change in the future.
113
+
ElixirLS generally aims to support all supported versions of Elixir on all compatible versions of OTP. However, this is not a hard and fast rule and may change in the future.
114
114
115
115
### Support matrix
116
116
@@ -139,7 +139,7 @@ It is generally recommended to install Elixir and Erlang via a version manager s
139
139
-[mise](https://mise.jdx.dev/)
140
140
-[vfox](https://vfox.dev/)
141
141
142
-
ElixirLS launch script will attempt to activate found version manager.
142
+
The ElixirLS launch script will attempt to activate the found version manager.
143
143
144
144
#### Windows
145
145
@@ -200,9 +200,9 @@ To debug Phoenix applications using ElixirLS, you can use the following launch c
200
200
}
201
201
```
202
202
203
-
In case of phoenix apps it is generally not advised to interpret all modules. Cowboy and ecto have known performance issues when run in interpreted mode. The example configuration disables autointerpreting and instead makes the DAP interpret only a subset of modules.
203
+
In the case of Phoenix apps, it is generally not advised to interpret all modules. Cowboy and Ecto have known performance issues when run in interpreted mode. The example configuration disables auto-interpreting and instead instructs the DAP to interpret only a subset of modules.
204
204
205
-
Note that `exitAfterTaskReturns` is set to `false`. OtherwiseDAP session will end immediately after starting because mix task `phx.server` returns control to the caller.
205
+
Note that `exitAfterTaskReturns` is set to `false`. Otherwise, the DAP session will end immediately after starting because the `phx.server` mix task returns control to the caller.
206
206
207
207
Please make sure that `startApps` is not set to `true`. To clarify, `startApps` is a configuration option in the ElixirLS debug adapter. It controls whether or not to start the applications in the Mix project before running the task. In the case of Phoenix applications, setting `startApps` to `true` can interfere with the application's normal startup process and cause issues.
208
208
@@ -212,7 +212,7 @@ If you are running tests in the Phoenix application, you may need to set `startA
212
212
213
213
- Phoenix live reload and CodeReloader is not compatible with debug adapter. It will purge and recompile beams running in interpreted mode, unset breakpoints and corrupt the debug session [phoenix_live_reload issue](https://github.com/phoenixframework/phoenix_live_reload/issues/133)
214
214
215
-
- When cowboy and/or ecto modules are interpreted the DAP server leaks enormous amount of heap memory on every request. The reason is unknown. [GH issue](https://github.com/elixir-lsp/elixir-ls/issues/1017)
215
+
- When Cowboy and/or Ecto modules are interpreted, the DAP server leaks an enormous amount of heap memory on every request. The reason is unknown. [GH issue](https://github.com/elixir-lsp/elixir-ls/issues/1017)
216
216
217
217
### NIF modules limitation
218
218
@@ -263,7 +263,7 @@ It's important to note that as of version 1.51 of the Debug Adapter Protocol spe
263
263
264
264
The debugger's expression evaluator has some limitations due to how the Erlang VM works. Specifically, the evaluator is implemented using `:int`, which works at the level of individual BEAM instructions. As a result, it returns multiple versions of variables in Static Single Assignment form, without indicating which one is valid in the current Elixir scope.
265
265
266
-
To work around this, the evaluator uses a heuristic to select the highest versions of variables. However this doesn't always behave correctly in all cases. For example, in the following code snippet:
266
+
To work around this, the evaluator uses a heuristic to select the highest versions of variables. However, this doesn't always behave correctly in all cases. For example, in the following code snippet:
267
267
268
268
```elixir
269
269
a =4
@@ -435,7 +435,7 @@ Basic troubleshooting steps:
435
435
- Run `mix clean` or `mix clean --deps` in ElixirLS with the custom command `mixClean`.
436
436
- Restart your editor (which will restart ElixirLS).
437
437
- After stopping your editor, remove the entire `.elixir_ls` directory, then restart your editor.
438
-
- NOTE: This will cause you to have to re-run the entire dialyzer build.
438
+
- NOTE: This will require you to re-run the entire Dialyzer build.
439
439
440
440
You may need to set `elixirLS.mixEnv`, `elixirLS.mixTarget`, and `elixirLS.projectDir` if your project requires this. By default, ElixirLS compiles code with `MIX_ENV=test` and `MIX_TARGET=host`; it assumes that `mix.exs` is located in the workspace root directory.
441
441
@@ -460,7 +460,7 @@ On Fedora Linux, if you only install the Elixir package you will not have a full
460
460
461
461
## Building and running
462
462
463
-
There are two ways of building the release: `Mix.install`based (recommended) and `.ez` archives (deprecated).
463
+
There are two ways to build the release: `Mix.install`-based (recommended) and `.ez` archives (deprecated).
464
464
465
465
### `Mix.install` based release
466
466
@@ -490,7 +490,7 @@ Note: The setup script must not read from `stdin` or write to `stdout`. On Unix,
490
490
this might be accomplished by adding `>/dev/null` at the end of any line that produces
491
491
output; for a Windows batch script, you will want to add `@echo off` at the top and use `>nul`.
492
492
493
-
If you want to debug your setup script you can write to stderr.
493
+
If you want to debug your setup script, you can write to stderr.
494
494
495
495
### Development
496
496
@@ -520,7 +520,7 @@ ElixirLS language server sends telemetry information to the client via [LSP Tele
520
520
521
521
## Acknowledgements and related projects
522
522
523
-
ElixirLS incorporates code intelligence providers that were originally developed in [Elixir Sense](https://github.com/elixir-lsp/elixir_sense) and still uses this library for lower lever operations. Other prior work includes [Alchemist Server](https://github.com/tonini/alchemist-server/), [Elixir plugin for Atom](https://github.com/msaraiva/atom-elixir), [VSCode Elixir](https://github.com/fr1zle/vscode-elixir). Credit for those projects goes to their respective authors.
523
+
ElixirLS incorporates code intelligence providers that were originally developed in [Elixir Sense](https://github.com/elixir-lsp/elixir_sense) and still uses this library for lower level operations. Other prior work includes [Alchemist Server](https://github.com/tonini/alchemist-server/), [Elixir plugin for Atom](https://github.com/msaraiva/atom-elixir), [VSCode Elixir](https://github.com/fr1zle/vscode-elixir). Credit for those projects goes to their respective authors.
0 commit comments