Skip to content

Commit 06e1dc0

Browse files
committed
Document configuration options
1 parent 529b8a4 commit 06e1dc0

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

DEVELOPMENT.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ If you're debugging a running server than `IO.inspect` or `dbg()` is a good appr
3131

3232
To debug in tests you can use `IO.inspect(Process.whereis(:user), message, label: "message")` to send your output directly to the group leader of the test process.
3333

34+
## Documenting configuration options
35+
36+
Use this jq program to extract configuration option from VSCode extension [package.json](https://github.com/elixir-lsp/vscode-elixir-ls/blob/master/package.json)
37+
38+
```shell
39+
jq -r '.contributes.configuration.properties | to_entries | map("<dt>\(.key)</dt><dd>\(.value.description)</dd>") | join("\n")' package.json
40+
```
41+
3442
## Documentation website
3543

3644
The documentation website is built using the [Mkdocs](https://www.mkdocs.org) static website generator. The content is written in Markdown format in the directory [docs](./docs) and is configured via the [mkdocs.yml](./mkdocs.yml) file.

README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,46 @@ The completions include:
284284

285285
With Dialyzer integration enabled ElixirLS will build an index of symbols (modules, functions, types and callbacks). The symbols are taken from the current workspace, all dependencies and stdlib (Elixir and erlang). This feature enables quick navigation to symbol definitions.
286286

287+
## ElixirLS configuration settings
288+
289+
Below is a list configuration options supported by ElixirLS language server. Please refer to your editor's documentation on how to configure language servers.
290+
291+
<dl>
292+
<dt>elixirLS.autoBuild</dt><dd>Trigger ElixirLS build when code is saved</dd>
293+
<dt>elixirLS.dialyzerEnabled</dt><dd>Run ElixirLS's rapid Dialyzer when code is saved</dd>
294+
<dt>elixirLS.dialyzerWarnOpts</dt><dd>Dialyzer options to enable or disable warnings. See Dialyzer's documentation for options. Note that the "race_conditions" option is unsupported</dd>
295+
<dt>elixirLS.dialyzerFormat</dt><dd>Formatter to use for Dialyzer warnings</dd>
296+
<dt>elixirLS.envVariables</dt><dd>Environment variables to use for compilation</dd>
297+
<dt>elixirLS.mixEnv</dt><dd>Mix environment to use for compilation</dd>
298+
<dt>elixirLS.mixTarget</dt><dd>Mix target to use for compilation</dd>
299+
<dt>elixirLS.projectDir</dt><dd>Subdirectory containing Mix project if not in the project root</dd>
300+
<dt>elixirLS.fetchDeps</dt><dd>Automatically fetch project dependencies when compiling</dd>
301+
<dt>elixirLS.suggestSpecs</dt><dd>Suggest @spec annotations inline using Dialyzer's inferred success typings (Requires Dialyzer)</dd>
302+
<dt>elixirLS.trace.server</dt><dd>Traces the communication between VS Code and the Elixir language server.</dd>
303+
<dt>elixirLS.signatureAfterComplete</dt><dd>Show signature help after confirming autocomplete</dd>
304+
<dt>elixirLS.enableTestLenses</dt><dd>Show code lenses to run tests in terminal</dd>
305+
<dt>elixirLS.additionalWatchedExtensions</dt><dd>Additional file types capable of triggering a build on change</dd>
306+
<dt>elixirLS.languageServerOverridePath</dt><dd>Absolute path to alternative ElixirLS release that will override packaged release.</dd>
307+
</dl>
308+
309+
## Debugger configuration options
310+
311+
Below is a list of configuration options supported by ElixirLS Debugger. Configuration options can be supplied via debugger launch configuration. Please refer to your editor's documentation on how to configure debugger adapters.
312+
313+
<dl>
314+
<dt>startApps</dt><dd>Run `mix app.start` before launching the debugger. Some tasks (such as Phoenix tests) expect apps to already be running before the test files are required</dd>
315+
<dt>task</dt><dd>Mix task to run with debugger. Defaults to task set under `:default_task` key in mixfile</dd>
316+
<dt>taskArgs</dt><dd>A list of arguments to mix task</dd>
317+
<dt>debugAutoInterpretAllModules</dt><dd>Auto interpret all modules from project build path. Defaults to `true`.</dd>
318+
<dt>env</dt><dd>An object with environment variables to set. Object keys specify environment variables, values should be strings</dd>
319+
<dt>stackTraceMode</dt><dd>Debugger stacktrace mode. Allowed values: `all`, `no_tail`, or `false`.</dd>
320+
<dt>requireFiles</dt><dd>A list of additional files that should be required and interpreted. Useful especially for debugging tests</dd>
321+
<dt>debugInterpretModulesPatterns</dt><dd>A list of globs specifying modules that should be interpreted</dd>
322+
<dt>debugExpressionTimeoutMs</dt><dd>Expression evaluator timeout in milliseconds. Defaults to 10 000</dd>
323+
<dt>projectDir</dt><dd>An absolute path to the directory where `mix.exs` is located. In VSCode `${workspaceRoot}` can be used</dd>
324+
<dt>excludeModules</dt><dd>A list of modules that should not be interpreted</dd>
325+
</dl>
326+
287327
## Troubleshooting
288328

289329
Basic troubleshooting steps:

0 commit comments

Comments
 (0)