diff --git a/feed_rss_created.xml b/feed_rss_created.xml index 0a65bb37d9..55a0fd9ae7 100644 --- a/feed_rss_created.xml +++ b/feed_rss_created.xml @@ -1 +1 @@ - LSP Mode - LSP support for EmacsLanguage Server Protocol Support for Emacshttps://emacs-lsp.github.io/lsp-mode/ercdll1337@gmail.comhttps://github.com/emacs-lsp/lsp-mode/en Mon, 09 Oct 2023 05:34:32 -0000 Mon, 09 Oct 2023 05:34:32 -0000 1440 MkDocs RSS plugin - v0.21.0 Diagnostics <h1>Diagnostics</h1><h3><code>lsp-diagnostic-clean-after-change</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>nil</code></p><p>When non-nil, clean the diagnostics on change.</p><p>Note that when t...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/diagnostics/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/diagnostics/ Dired <h1>Dired</h1><h3><code>lsp-dired-mode</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>nil</code></p><p>Non-nil if Lsp-Dired mode is enabled.See the <code>lsp-dired-mode</code> commandfor a description ...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/dired/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/dired/ Headerline <h1>Headerline</h1><h3><code>lsp-headerline-breadcrumb-deprecated-face</code></h3><p><em>Type:</em> <code>face</code></p><p><em>Default:</em> `((t :inherit lsp-headerline-breadcrumb-symbols-face :strike-throug...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/headerline/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/headerline/ Icons <h1>Icons</h1><h3><code>lsp-headerline-breadcrumb-icons-enable</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>t</code></p><p>If non-nil, icons support is enabled for headerline-breadcrumb.</p><p>--...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/icons/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/icons/ Ido <h1>Ido</h1><h3><code>lsp-ido-show-symbol-filename</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>t</code></p><p>Whether to show the project-relative path to a symbol`s point of definition.</p><p>-...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/ido/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/ido/ Iedit <h1>Iedit</h1><p>No custom variables available.</p>https://emacs-lsp.github.io/lsp-mode/page/settings/iedit/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/iedit/ Lens <h1>Lens</h1><h3><code>lsp-lens-debounce-interval</code></h3><p><em>Type:</em> <code>number</code></p><p><em>Default:</em> <code>0.001</code></p><p>Debounce interval for loading lenses.</p><hr><h3><code>lsp-lens-enable</code></h3><p><em>Type:</em> `b...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/lens/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/lens/ Core <h1>Core</h1><h3><code>lsp-after-apply-edits-hook</code></h3><p><em>Type:</em> <code>hook</code></p><p><em>Default:</em> <code>nil</code></p><p>Hooks to run when text edit is applied.It contains the operation source.</p><hr><h1>...</h1>https://emacs-lsp.github.io/lsp-mode/page/settings/mode/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/mode/ Modeline <h1>Modeline</h1><h3><code>lsp-modeline-code-action-fallback-icon</code></h3><p><em>Type:</em> <code>string</code></p><p><em>Default:</em> <code>💡</code></p><p>Define what should display on the modeline when code actions are ...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/modeline/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/modeline/ Semantic Tokens <h1>Semantic tokens</h1><h3><code>lsp-face-semhl-class</code></h3><p><em>Type:</em> <code>face</code></p><p><em>Default:</em> <code>((t (:inherit font-lock-type-face)))</code></p><p>Face used for classes.</p><hr><h3>`lsp-face-...</h3>https://emacs-lsp.github.io/lsp-mode/page/settings/semantic-tokens/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/semantic-tokens/ TTCN3 <h1>TTCN3</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/nokia/ntt">ntt</a>.</p><h2>Installation</h2><p>For more instruct...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-ttcn3/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-ttcn3/ Ruby (TypeProf) <h1>Ruby (TypeProf)</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/ruby/typeprof">typeprof</a>.</p><h2>Installation</h2><p>...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-typeprof/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-typeprof/ JavaScript/TypeScript (sourcegraph) <h1>JavaScript/TypeScript (sourcegraph - UNMAINTAINED)</h1><h2>Server</h2><p>For more information about the LSP server, check [javascript-typescript-stdio](h...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-typescript-javascript/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-typescript-javascript/ JavaScript/TypeScript (theia-ide) <h1>JavaScript/TypeScript (RECOMMENDED)</h1><h2>Server</h2><p>For more information about the LSP server, check [typescript-language-server (formerly theia-id...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-typescript/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-typescript/ V <h1>V</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/vlang/vls/tree/master">vls</a>.</p><h2>Installation</h2><p>For more ...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-v/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-v/ Vala <h1>Vala</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/benwaffle/vala-language-server">vala-language-server</a>.</p><h1>...</h1>https://emacs-lsp.github.io/lsp-mode/page/lsp-vala/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-vala/ Verilog/SystemVerilog (hdl-checker) <h1>Verilog/SystemVerilog</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/suoto/hdl_checker">hdl_checker</a>.</p><h2>Ins...</h2>https://emacs-lsp.github.io/lsp-mode/page/lsp-verilog/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-verilog/ Vue 2 <h1>Vue 2</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/vuejs/vetur/tree/master/server">vue-language-server</a>.</p><h1>...</h1>https://emacs-lsp.github.io/lsp-mode/page/lsp-vetur/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-vetur/ VHDL <h1>VHDL</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="http://www.vhdltool.com">VHDL Tool</a>.</p><h2>Installation</h2><p>For more instruct...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-vhdl/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-vhdl/ Vimscript <h1>Vimscript</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/iamcco/vim-language-server">vim-language-server</a>.</p><h1>...</h1>https://emacs-lsp.github.io/lsp-mode/page/lsp-vimscript/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-vimscript/ \ No newline at end of file + LSP Mode - LSP support for EmacsLanguage Server Protocol Support for Emacshttps://emacs-lsp.github.io/lsp-mode/ercdll1337@gmail.comhttps://github.com/emacs-lsp/lsp-mode/en Mon, 09 Oct 2023 05:34:43 -0000 Mon, 09 Oct 2023 05:34:43 -0000 1440 MkDocs RSS plugin - v0.21.0 XML <h1>XML</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/eclipse/lemminx">lsp4xml</a>.</p><h2>Installation</h2><p>This Server s...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-xml/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-xml/ YAML <h1>YAML</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/redhat-developer/yaml-language-server">yaml</a>.</p><h2>Install...</h2>https://emacs-lsp.github.io/lsp-mode/page/lsp-yaml/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-yaml/ Zig <h1>Zig</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/zigtools/zls">zls</a>.</p><h2>Installation</h2><p>For more instruc...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-zig/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-zig/ Completion <h1>Completion</h1><h3><code>lsp-completion-enable</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>t</code></p><p>Enable <code>completion-at-point</code> integration.</p><hr><h3>`lsp-completion-enable-addi...</h3>https://emacs-lsp.github.io/lsp-mode/page/settings/completion/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/completion/ Diagnostics <h1>Diagnostics</h1><h3><code>lsp-diagnostic-clean-after-change</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>nil</code></p><p>When non-nil, clean the diagnostics on change.</p><p>Note that when t...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/diagnostics/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/diagnostics/ Dired <h1>Dired</h1><h3><code>lsp-dired-mode</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>nil</code></p><p>Non-nil if Lsp-Dired mode is enabled.See the <code>lsp-dired-mode</code> commandfor a description ...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/dired/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/dired/ Headerline <h1>Headerline</h1><h3><code>lsp-headerline-breadcrumb-deprecated-face</code></h3><p><em>Type:</em> <code>face</code></p><p><em>Default:</em> `((t :inherit lsp-headerline-breadcrumb-symbols-face :strike-throug...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/headerline/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/headerline/ Icons <h1>Icons</h1><h3><code>lsp-headerline-breadcrumb-icons-enable</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>t</code></p><p>If non-nil, icons support is enabled for headerline-breadcrumb.</p><p>--...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/icons/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/icons/ Ido <h1>Ido</h1><h3><code>lsp-ido-show-symbol-filename</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>t</code></p><p>Whether to show the project-relative path to a symbol`s point of definition.</p><p>-...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/ido/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/ido/ Iedit <h1>Iedit</h1><p>No custom variables available.</p>https://emacs-lsp.github.io/lsp-mode/page/settings/iedit/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/iedit/ Lens <h1>Lens</h1><h3><code>lsp-lens-debounce-interval</code></h3><p><em>Type:</em> <code>number</code></p><p><em>Default:</em> <code>0.001</code></p><p>Debounce interval for loading lenses.</p><hr><h3><code>lsp-lens-enable</code></h3><p><em>Type:</em> `b...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/lens/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/lens/ Core <h1>Core</h1><h3><code>lsp-after-apply-edits-hook</code></h3><p><em>Type:</em> <code>hook</code></p><p><em>Default:</em> <code>nil</code></p><p>Hooks to run when text edit is applied.It contains the operation source.</p><hr><h1>...</h1>https://emacs-lsp.github.io/lsp-mode/page/settings/mode/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/mode/ Modeline <h1>Modeline</h1><h3><code>lsp-modeline-code-action-fallback-icon</code></h3><p><em>Type:</em> <code>string</code></p><p><em>Default:</em> <code>💡</code></p><p>Define what should display on the modeline when code actions are ...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/modeline/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/modeline/ Semantic Tokens <h1>Semantic tokens</h1><h3><code>lsp-face-semhl-class</code></h3><p><em>Type:</em> <code>face</code></p><p><em>Default:</em> <code>((t (:inherit font-lock-type-face)))</code></p><p>Face used for classes.</p><hr><h3>`lsp-face-...</h3>https://emacs-lsp.github.io/lsp-mode/page/settings/semantic-tokens/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/semantic-tokens/ Ruby (Steep) <h1>Ruby (Steep)</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/soutaro/steep">steep</a>.</p><h2>Installation</h2><p>`gem i...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-steep/ Mon, 09 Oct 2023 05:34:49 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-steep/ Svelte <h1>Svelte</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/sveltejs/language-tools">svelteserver</a>.</p><h2>Installatio...</h2>https://emacs-lsp.github.io/lsp-mode/page/lsp-svelte/ Mon, 09 Oct 2023 05:34:49 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-svelte/ Verilog/SystemVerilog (svlangserver) <h1>Verilog/SystemVerilog</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/imc-trading/svlangserver">svlangserver</a>....</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-svlangserver/ Mon, 09 Oct 2023 05:34:49 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-svlangserver/ Lsp syntax tree <h1>ruby-syntax-tree</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/ruby-syntax-tree/syntax_tree">stree</a>.</p><h2>Ins...</h2>https://emacs-lsp.github.io/lsp-mode/page/lsp-syntax_tree/ Mon, 09 Oct 2023 05:34:49 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-syntax_tree/ Terraform (terraform-ls) <h1>Terraform LSP</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/hashicorp/terraform-ls">terraform-ls</a>.</p><h2>Insta...</h2>https://emacs-lsp.github.io/lsp-mode/page/lsp-terraform-ls/ Mon, 09 Oct 2023 05:34:49 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-terraform-ls/ Terraform (terraform-lsp) <h1>Terraform</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/juliosueiras/terraform-lsp">terraform-lsp</a>.</p><h2>Inst...</h2>https://emacs-lsp.github.io/lsp-mode/page/lsp-terraform/ Mon, 09 Oct 2023 05:34:49 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-terraform/ \ No newline at end of file diff --git a/feed_rss_updated.xml b/feed_rss_updated.xml index 5efb8aec56..048f22dea4 100644 --- a/feed_rss_updated.xml +++ b/feed_rss_updated.xml @@ -1 +1 @@ - LSP Mode - LSP support for EmacsLanguage Server Protocol Support for Emacshttps://emacs-lsp.github.io/lsp-mode/ercdll1337@gmail.comhttps://github.com/emacs-lsp/lsp-mode/en Mon, 09 Oct 2023 05:34:32 -0000 Mon, 09 Oct 2023 05:34:32 -0000 1440 MkDocs RSS plugin - v0.21.0 Diagnostics <h1>Diagnostics</h1><h3><code>lsp-diagnostic-clean-after-change</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>nil</code></p><p>When non-nil, clean the diagnostics on change.</p><p>Note that when t...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/diagnostics/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/diagnostics/ Dired <h1>Dired</h1><h3><code>lsp-dired-mode</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>nil</code></p><p>Non-nil if Lsp-Dired mode is enabled.See the <code>lsp-dired-mode</code> commandfor a description ...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/dired/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/dired/ Headerline <h1>Headerline</h1><h3><code>lsp-headerline-breadcrumb-deprecated-face</code></h3><p><em>Type:</em> <code>face</code></p><p><em>Default:</em> `((t :inherit lsp-headerline-breadcrumb-symbols-face :strike-throug...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/headerline/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/headerline/ Icons <h1>Icons</h1><h3><code>lsp-headerline-breadcrumb-icons-enable</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>t</code></p><p>If non-nil, icons support is enabled for headerline-breadcrumb.</p><p>--...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/icons/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/icons/ Ido <h1>Ido</h1><h3><code>lsp-ido-show-symbol-filename</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>t</code></p><p>Whether to show the project-relative path to a symbol`s point of definition.</p><p>-...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/ido/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/ido/ Iedit <h1>Iedit</h1><p>No custom variables available.</p>https://emacs-lsp.github.io/lsp-mode/page/settings/iedit/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/iedit/ Lens <h1>Lens</h1><h3><code>lsp-lens-debounce-interval</code></h3><p><em>Type:</em> <code>number</code></p><p><em>Default:</em> <code>0.001</code></p><p>Debounce interval for loading lenses.</p><hr><h3><code>lsp-lens-enable</code></h3><p><em>Type:</em> `b...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/lens/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/lens/ Core <h1>Core</h1><h3><code>lsp-after-apply-edits-hook</code></h3><p><em>Type:</em> <code>hook</code></p><p><em>Default:</em> <code>nil</code></p><p>Hooks to run when text edit is applied.It contains the operation source.</p><hr><h1>...</h1>https://emacs-lsp.github.io/lsp-mode/page/settings/mode/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/mode/ Modeline <h1>Modeline</h1><h3><code>lsp-modeline-code-action-fallback-icon</code></h3><p><em>Type:</em> <code>string</code></p><p><em>Default:</em> <code>💡</code></p><p>Define what should display on the modeline when code actions are ...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/modeline/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/modeline/ Semantic Tokens <h1>Semantic tokens</h1><h3><code>lsp-face-semhl-class</code></h3><p><em>Type:</em> <code>face</code></p><p><em>Default:</em> <code>((t (:inherit font-lock-type-face)))</code></p><p>Face used for classes.</p><hr><h3>`lsp-face-...</h3>https://emacs-lsp.github.io/lsp-mode/page/settings/semantic-tokens/ Mon, 09 Oct 2023 05:34:39 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/semantic-tokens/ TTCN3 <h1>TTCN3</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/nokia/ntt">ntt</a>.</p><h2>Installation</h2><p>For more instruct...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-ttcn3/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-ttcn3/ Ruby (TypeProf) <h1>Ruby (TypeProf)</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/ruby/typeprof">typeprof</a>.</p><h2>Installation</h2><p>...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-typeprof/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-typeprof/ JavaScript/TypeScript (sourcegraph) <h1>JavaScript/TypeScript (sourcegraph - UNMAINTAINED)</h1><h2>Server</h2><p>For more information about the LSP server, check [javascript-typescript-stdio](h...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-typescript-javascript/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-typescript-javascript/ JavaScript/TypeScript (theia-ide) <h1>JavaScript/TypeScript (RECOMMENDED)</h1><h2>Server</h2><p>For more information about the LSP server, check [typescript-language-server (formerly theia-id...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-typescript/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-typescript/ V <h1>V</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/vlang/vls/tree/master">vls</a>.</p><h2>Installation</h2><p>For more ...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-v/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-v/ Vala <h1>Vala</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/benwaffle/vala-language-server">vala-language-server</a>.</p><h1>...</h1>https://emacs-lsp.github.io/lsp-mode/page/lsp-vala/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-vala/ Verilog/SystemVerilog (hdl-checker) <h1>Verilog/SystemVerilog</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/suoto/hdl_checker">hdl_checker</a>.</p><h2>Ins...</h2>https://emacs-lsp.github.io/lsp-mode/page/lsp-verilog/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-verilog/ Vue 2 <h1>Vue 2</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/vuejs/vetur/tree/master/server">vue-language-server</a>.</p><h1>...</h1>https://emacs-lsp.github.io/lsp-mode/page/lsp-vetur/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-vetur/ VHDL <h1>VHDL</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="http://www.vhdltool.com">VHDL Tool</a>.</p><h2>Installation</h2><p>For more instruct...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-vhdl/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-vhdl/ Vimscript <h1>Vimscript</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/iamcco/vim-language-server">vim-language-server</a>.</p><h1>...</h1>https://emacs-lsp.github.io/lsp-mode/page/lsp-vimscript/ Mon, 09 Oct 2023 05:34:38 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-vimscript/ \ No newline at end of file + LSP Mode - LSP support for EmacsLanguage Server Protocol Support for Emacshttps://emacs-lsp.github.io/lsp-mode/ercdll1337@gmail.comhttps://github.com/emacs-lsp/lsp-mode/en Mon, 09 Oct 2023 05:34:43 -0000 Mon, 09 Oct 2023 05:34:43 -0000 1440 MkDocs RSS plugin - v0.21.0 XML <h1>XML</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/eclipse/lemminx">lsp4xml</a>.</p><h2>Installation</h2><p>This Server s...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-xml/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-xml/ YAML <h1>YAML</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/redhat-developer/yaml-language-server">yaml</a>.</p><h2>Install...</h2>https://emacs-lsp.github.io/lsp-mode/page/lsp-yaml/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-yaml/ Zig <h1>Zig</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/zigtools/zls">zls</a>.</p><h2>Installation</h2><p>For more instruc...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-zig/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-zig/ Completion <h1>Completion</h1><h3><code>lsp-completion-enable</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>t</code></p><p>Enable <code>completion-at-point</code> integration.</p><hr><h3>`lsp-completion-enable-addi...</h3>https://emacs-lsp.github.io/lsp-mode/page/settings/completion/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/completion/ Diagnostics <h1>Diagnostics</h1><h3><code>lsp-diagnostic-clean-after-change</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>nil</code></p><p>When non-nil, clean the diagnostics on change.</p><p>Note that when t...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/diagnostics/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/diagnostics/ Dired <h1>Dired</h1><h3><code>lsp-dired-mode</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>nil</code></p><p>Non-nil if Lsp-Dired mode is enabled.See the <code>lsp-dired-mode</code> commandfor a description ...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/dired/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/dired/ Headerline <h1>Headerline</h1><h3><code>lsp-headerline-breadcrumb-deprecated-face</code></h3><p><em>Type:</em> <code>face</code></p><p><em>Default:</em> `((t :inherit lsp-headerline-breadcrumb-symbols-face :strike-throug...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/headerline/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/headerline/ Icons <h1>Icons</h1><h3><code>lsp-headerline-breadcrumb-icons-enable</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>t</code></p><p>If non-nil, icons support is enabled for headerline-breadcrumb.</p><p>--...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/icons/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/icons/ Ido <h1>Ido</h1><h3><code>lsp-ido-show-symbol-filename</code></h3><p><em>Type:</em> <code>boolean</code></p><p><em>Default:</em> <code>t</code></p><p>Whether to show the project-relative path to a symbol`s point of definition.</p><p>-...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/ido/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/ido/ Iedit <h1>Iedit</h1><p>No custom variables available.</p>https://emacs-lsp.github.io/lsp-mode/page/settings/iedit/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/iedit/ Lens <h1>Lens</h1><h3><code>lsp-lens-debounce-interval</code></h3><p><em>Type:</em> <code>number</code></p><p><em>Default:</em> <code>0.001</code></p><p>Debounce interval for loading lenses.</p><hr><h3><code>lsp-lens-enable</code></h3><p><em>Type:</em> `b...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/lens/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/lens/ Core <h1>Core</h1><h3><code>lsp-after-apply-edits-hook</code></h3><p><em>Type:</em> <code>hook</code></p><p><em>Default:</em> <code>nil</code></p><p>Hooks to run when text edit is applied.It contains the operation source.</p><hr><h1>...</h1>https://emacs-lsp.github.io/lsp-mode/page/settings/mode/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/mode/ Modeline <h1>Modeline</h1><h3><code>lsp-modeline-code-action-fallback-icon</code></h3><p><em>Type:</em> <code>string</code></p><p><em>Default:</em> <code>💡</code></p><p>Define what should display on the modeline when code actions are ...</p>https://emacs-lsp.github.io/lsp-mode/page/settings/modeline/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/modeline/ Semantic Tokens <h1>Semantic tokens</h1><h3><code>lsp-face-semhl-class</code></h3><p><em>Type:</em> <code>face</code></p><p><em>Default:</em> <code>((t (:inherit font-lock-type-face)))</code></p><p>Face used for classes.</p><hr><h3>`lsp-face-...</h3>https://emacs-lsp.github.io/lsp-mode/page/settings/semantic-tokens/ Mon, 09 Oct 2023 05:34:50 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/settings/semantic-tokens/ Ruby (Steep) <h1>Ruby (Steep)</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/soutaro/steep">steep</a>.</p><h2>Installation</h2><p>`gem i...</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-steep/ Mon, 09 Oct 2023 05:34:49 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-steep/ Svelte <h1>Svelte</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/sveltejs/language-tools">svelteserver</a>.</p><h2>Installatio...</h2>https://emacs-lsp.github.io/lsp-mode/page/lsp-svelte/ Mon, 09 Oct 2023 05:34:49 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-svelte/ Verilog/SystemVerilog (svlangserver) <h1>Verilog/SystemVerilog</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/imc-trading/svlangserver">svlangserver</a>....</p>https://emacs-lsp.github.io/lsp-mode/page/lsp-svlangserver/ Mon, 09 Oct 2023 05:34:49 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-svlangserver/ Lsp syntax tree <h1>ruby-syntax-tree</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/ruby-syntax-tree/syntax_tree">stree</a>.</p><h2>Ins...</h2>https://emacs-lsp.github.io/lsp-mode/page/lsp-syntax_tree/ Mon, 09 Oct 2023 05:34:49 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-syntax_tree/ Terraform (terraform-ls) <h1>Terraform LSP</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/hashicorp/terraform-ls">terraform-ls</a>.</p><h2>Insta...</h2>https://emacs-lsp.github.io/lsp-mode/page/lsp-terraform-ls/ Mon, 09 Oct 2023 05:34:49 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-terraform-ls/ Terraform (terraform-lsp) <h1>Terraform</h1><h2>Server</h2><p>For more information about the LSP server, check <a href="https://github.com/juliosueiras/terraform-lsp">terraform-lsp</a>.</p><h2>Inst...</h2>https://emacs-lsp.github.io/lsp-mode/page/lsp-terraform/ Mon, 09 Oct 2023 05:34:49 -0000LSP Mode - LSP support for Emacshttps://emacs-lsp.github.io/lsp-mode/page/lsp-terraform/ \ No newline at end of file diff --git a/page/lsp-cmake/index.html b/page/lsp-cmake/index.html index 99e3e9daef..9bbf228b42 100644 --- a/page/lsp-cmake/index.html +++ b/page/lsp-cmake/index.html @@ -1343,6 +1343,19 @@ Available configurations + + @@ -3265,6 +3278,19 @@ Available configurations + + @@ -3330,6 +3356,11 @@

InstallationFor more instructions on how to install manually, check here.

Debugger: Not relevant#

Available configurations#

+

lsp-cmake-server-command#

+

Type: string

+

Default: cmake-language-server

+

The binary (or full path to binary) which executes the server.

+
diff --git a/search/search_index.json b/search/search_index.json index 38ec1b6ab2..6fcca77914 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Language Server Protocol Support for Emacs # homepage \u2022 installation \u2022 languages \u2022 settings \u2022 tutorials \u2022 troubleshooting \u2022 screenshots \u2022 FAQ Why? # Community Driven Fully featured - supports all features in Language Server Protocol v3.14. Fast - see performance section . Flexible - choose between full-blown IDE with flashy UI or minimal distraction free. Easy to configure - works out of the box and automatically upgrades if additional packages are present. Overview # Client for Language Server Protocol (v3.14). lsp-mode aims to provide IDE-like experience by providing optional integration with the most popular Emacs packages like company , flycheck and projectile . Non-blocking asynchronous calls Real-time Diagnostics/linting via flycheck (recommended) or flymake when Emacs > 26 (requires flymake>=1.0.5) Code completion - company-capf / completion-at-point (note that company-lsp is no longer supported). Hovers - using lsp-ui Code actions - via lsp-execute-code-action , modeline (recommended) or lsp-ui sideline. Code outline - using builtin imenu or helm-imenu Code navigation - using builtin xref , lsp-treemacs tree views or lsp-ui peek functions. Code lens Symbol highlights Formatting Project errors on modeline Debugger - dap-mode Breadcrumb on headerline Helm integration - helm-lsp Ivy integration - lsp-ivy Consult integration - consult-lsp Treemacs integration - lsp-treemacs Semantic tokens as defined by LSP 3.16 (compatible language servers include recent development builds of clangd and rust-analyzer) which-key integration for better discovery iedit dired ido Presentations/demos # System Crafters channel Emacs IDE Videos skybert 's emacsconf presentation (Java) thatwist 's ScalaUA Conference presentation (Scala) See also # lsp-docker - provide docker image with preconfigured language servers with corresponding emacs configuration. company-box - company frontend with icons. dap-mode - Debugger integration for lsp-mode . eglot - An alternative minimal LSP implementation. which-key - Emacs package that displays available keybindings in popup projectile - Project Interaction Library for Emacs emacs-tree-sitter - Faster, fine-grained code highlighting via tree-sitter . gccemacs - modified Emacs capable of compiling and running Emacs Lisp as native code. Contributions # Contributions are very much welcome! NOTE Documentation for clients is generated from doc comments in the clients themselves (see lsp-doc.el ) and some metadata (see lsp-clients.json ) so please submit corrections accordingly. Support the project # The emacs-lsp organization has more than 20,000 lines of code , to keep all of this working, we need to implement new features and help the community on a lot of issues. You can help us keep going and improving it by supporting the project Members # Here it is a list of the current lsp-mode members and what they are primary working on/responsible for. totbwf F# brotzeit Rust dsyzling Scala kurnevsky Scala | Rust seagle0128 Go | Python MS sebastiansturm lsp-mode core | C++ vibhavp lsp-mode core yyoncho lsp-mode core | Java ericdallo Dart/Flutter | Clojure danielmartin C++ | Swift kiennq completions | pwsh nbfalcon lsp-mode core | iedit psibi Terraform | Nix razzmatazz C# | F#","title":"Overview"},{"location":"#language-server-protocol-support-for-emacs","text":"homepage \u2022 installation \u2022 languages \u2022 settings \u2022 tutorials \u2022 troubleshooting \u2022 screenshots \u2022 FAQ","title":"Language Server Protocol Support for Emacs"},{"location":"#why","text":"Community Driven Fully featured - supports all features in Language Server Protocol v3.14. Fast - see performance section . Flexible - choose between full-blown IDE with flashy UI or minimal distraction free. Easy to configure - works out of the box and automatically upgrades if additional packages are present.","title":"Why?"},{"location":"#overview","text":"Client for Language Server Protocol (v3.14). lsp-mode aims to provide IDE-like experience by providing optional integration with the most popular Emacs packages like company , flycheck and projectile . Non-blocking asynchronous calls Real-time Diagnostics/linting via flycheck (recommended) or flymake when Emacs > 26 (requires flymake>=1.0.5) Code completion - company-capf / completion-at-point (note that company-lsp is no longer supported). Hovers - using lsp-ui Code actions - via lsp-execute-code-action , modeline (recommended) or lsp-ui sideline. Code outline - using builtin imenu or helm-imenu Code navigation - using builtin xref , lsp-treemacs tree views or lsp-ui peek functions. Code lens Symbol highlights Formatting Project errors on modeline Debugger - dap-mode Breadcrumb on headerline Helm integration - helm-lsp Ivy integration - lsp-ivy Consult integration - consult-lsp Treemacs integration - lsp-treemacs Semantic tokens as defined by LSP 3.16 (compatible language servers include recent development builds of clangd and rust-analyzer) which-key integration for better discovery iedit dired ido","title":"Overview"},{"location":"#presentationsdemos","text":"System Crafters channel Emacs IDE Videos skybert 's emacsconf presentation (Java) thatwist 's ScalaUA Conference presentation (Scala)","title":"Presentations/demos"},{"location":"#see-also","text":"lsp-docker - provide docker image with preconfigured language servers with corresponding emacs configuration. company-box - company frontend with icons. dap-mode - Debugger integration for lsp-mode . eglot - An alternative minimal LSP implementation. which-key - Emacs package that displays available keybindings in popup projectile - Project Interaction Library for Emacs emacs-tree-sitter - Faster, fine-grained code highlighting via tree-sitter . gccemacs - modified Emacs capable of compiling and running Emacs Lisp as native code.","title":"See also"},{"location":"#contributions","text":"Contributions are very much welcome! NOTE Documentation for clients is generated from doc comments in the clients themselves (see lsp-doc.el ) and some metadata (see lsp-clients.json ) so please submit corrections accordingly.","title":"Contributions"},{"location":"#support-the-project","text":"The emacs-lsp organization has more than 20,000 lines of code , to keep all of this working, we need to implement new features and help the community on a lot of issues. You can help us keep going and improving it by supporting the project","title":"Support the project"},{"location":"#members","text":"Here it is a list of the current lsp-mode members and what they are primary working on/responsible for. totbwf F# brotzeit Rust dsyzling Scala kurnevsky Scala | Rust seagle0128 Go | Python MS sebastiansturm lsp-mode core | C++ vibhavp lsp-mode core yyoncho lsp-mode core | Java ericdallo Dart/Flutter | Clojure danielmartin C++ | Swift kiennq completions | pwsh nbfalcon lsp-mode core | iedit psibi Terraform | Nix razzmatazz C# | F#","title":"Members"},{"location":"blog/2020/7.0-release/","text":"7.0 Release # I am pleased to announce lsp-mode 7.0! Here are the most important features/news in 7.0 release lsp-mode/the team/the ecosystem # lsp-mode team and the activity in the repo has vastly increased. lsp-mode is no longer one man project but it is a product of Emacs LSP team and emacs community. This has allowed us to implement some very time consuming changes/refactoring(more about them bellow) which an year ago were unthinkable due to the lack manpower. emacs-lsp repo has become a nice place to start contributing to open source or learn elisp and now there are 244 contributors in the main repo. Even more some of the current maintainers had zero elisp knowledge before doing their first lsp-mode contributions. We started moving out some of the server specific packages(e. g. lsp-dart maintained by ericdallo and lsp-metals maintained by kurnevsky , lsp-python-ms by seagle0128 , etc) in order to provide focused support by a an expert in the language at hand. Considering where we were few months ago the level of integrated experience provided by those packages has increased and often it is comparable with backed by paid full time developers editors like VScode . Here it is a gif illustrating that: lsp-dart . LSP in its nature should be language agnostic but in order to be comparable with VScode lsp-mode should support language server extensions as well which is much more work than the work on protocol itself and requires a constant monitoring of the server repo since there is no contract and the server team might change the contract whenever they want. On the bright side lsp-mode has attracted several server side developers or lsp-mode team members(e. g. mpanarin ) has become server side contributors and often we are ahead of changes or we directly address issues in the server when they arise. We are still looking for maintainer(s) for JS/TS suite( typescript-language-server , eslint , angular ) though. Major features # 3.16 spec support # We provided full support for 3.14 features one year after the version has been released. Now, we have support for all major features of 3.16 protocol even before it has been released (except for result streaming which apparently hasn't been implemented by any language server). New website # It is created ericdallo - here it is the website . Check it out and eventually provide feedback. Semantic highlights # This is part of 3.16 spec. It is implemented by sebastiansturm and it can be enabled by setting lsp-enable-semantic-highlighting . We have dropped the Theia protocol support for semantic highlighting since it is not going to make to the official spec. ATM it is supported by Rust Analyzer , Clangd (from master branch) and lua language server. org-mode integration(preview) # org-mode mode is the Emacs flagman and this integration brings up the literate programming to a new level. The integration is pretty raw but usable - you basically can run lsp-mode language intelligence over org-mode source block directly in the org-mode document. We have achieved that by creating virtual buffer abstraction which allows us to fake the server that the client has actually opened the real file. Check gif and the docs . I think that the ability to implement such features is why Emacs is editor in a league of its own . And implementing such features is one of the signs that we are slowly moving from the phase catching up into getting ahead (or maybe I am overly optimistic). Language Server Protocol bindings, upcoming changes # We generated json schema from the protocol and from that schema we generated dash destructoring, getters, setters, validators, constructors, indication for optional/required fields, etc. which allow us to perform compile time validation of the protocol usage. This was huge change because we had to walk through almost all methods and replace explicit access to the elisp data structure with protocol usage. At the same time, emacs-lsp organization has more than 20k lines of code. This was coordinated effort and a lot of individuals contributed to that. The benefits are that we now can switch the underlying data structure from hashmap to plists which will yield better performance and also that the overall quality of the codebase has increased. Example Before: ( defun lsp--position-to-point ( params ) \"Convert Position object in PARAMS to a point.\" ( lsp--line-character-to-point ( gethash \"line\" params ) ( gethash \"character\" params ))) After: ( lsp-defun lsp--position-to-point (( &Position :line :character )) \"Convert `Position' object in PARAMS to a point.\" ( lsp--line-character-to-point line character )) In this example :line and :character are validated as fields of Position structure. Also, we do some handy conversions, if the field is optional it will end up with ? like :foo? . To reduce boiler plate code we convert camelCase to :camel-case when we are destructoring it. Performance optimizations(flycheck, code completion) # We have rewritten the flycheck integration - the new integration provides the same UE as the old one but it is much more effective in reporting the errors to flycheck and lsp checker is much closer to the traditional flycheck checkers which are initiated/controlled from Emacs . Completion integration code is now much simpler/faster thanks to kiennq . What's next # Upcoming breaking changes Dropping Emacs 25 support. This will allow us utilize Emacs multi-threading to improve lsp-mode responsibility Switching from hashtables to plists - once this change goes in users must recompile all lsp-mode extensions. Drop company-lsp support(not ported to use lsp-protocol.el ) Implementing lsp-mode configuration wizard to improve beginners experience - check this issue for more details. The overall goal is let user pick settings for all features that are opinionated (e. g. lsp-ui ) and improve the discoverability of lsp-mode features/extensions/settings. We will try to switch to monthly/weakly release cycles and to different person for writing the announcements. We might eventually encourage melpa-stable usage.","title":"7.0 Release"},{"location":"blog/2020/7.0-release/#70-release","text":"I am pleased to announce lsp-mode 7.0! Here are the most important features/news in 7.0 release","title":"7.0 Release"},{"location":"blog/2020/7.0-release/#lsp-modethe-teamthe-ecosystem","text":"lsp-mode team and the activity in the repo has vastly increased. lsp-mode is no longer one man project but it is a product of Emacs LSP team and emacs community. This has allowed us to implement some very time consuming changes/refactoring(more about them bellow) which an year ago were unthinkable due to the lack manpower. emacs-lsp repo has become a nice place to start contributing to open source or learn elisp and now there are 244 contributors in the main repo. Even more some of the current maintainers had zero elisp knowledge before doing their first lsp-mode contributions. We started moving out some of the server specific packages(e. g. lsp-dart maintained by ericdallo and lsp-metals maintained by kurnevsky , lsp-python-ms by seagle0128 , etc) in order to provide focused support by a an expert in the language at hand. Considering where we were few months ago the level of integrated experience provided by those packages has increased and often it is comparable with backed by paid full time developers editors like VScode . Here it is a gif illustrating that: lsp-dart . LSP in its nature should be language agnostic but in order to be comparable with VScode lsp-mode should support language server extensions as well which is much more work than the work on protocol itself and requires a constant monitoring of the server repo since there is no contract and the server team might change the contract whenever they want. On the bright side lsp-mode has attracted several server side developers or lsp-mode team members(e. g. mpanarin ) has become server side contributors and often we are ahead of changes or we directly address issues in the server when they arise. We are still looking for maintainer(s) for JS/TS suite( typescript-language-server , eslint , angular ) though.","title":"lsp-mode/the team/the ecosystem"},{"location":"blog/2020/7.0-release/#major-features","text":"","title":"Major features"},{"location":"blog/2020/7.0-release/#316-spec-support","text":"We provided full support for 3.14 features one year after the version has been released. Now, we have support for all major features of 3.16 protocol even before it has been released (except for result streaming which apparently hasn't been implemented by any language server).","title":"3.16 spec support"},{"location":"blog/2020/7.0-release/#new-website","text":"It is created ericdallo - here it is the website . Check it out and eventually provide feedback.","title":"New website"},{"location":"blog/2020/7.0-release/#semantic-highlights","text":"This is part of 3.16 spec. It is implemented by sebastiansturm and it can be enabled by setting lsp-enable-semantic-highlighting . We have dropped the Theia protocol support for semantic highlighting since it is not going to make to the official spec. ATM it is supported by Rust Analyzer , Clangd (from master branch) and lua language server.","title":"Semantic highlights"},{"location":"blog/2020/7.0-release/#org-mode-integrationpreview","text":"org-mode mode is the Emacs flagman and this integration brings up the literate programming to a new level. The integration is pretty raw but usable - you basically can run lsp-mode language intelligence over org-mode source block directly in the org-mode document. We have achieved that by creating virtual buffer abstraction which allows us to fake the server that the client has actually opened the real file. Check gif and the docs . I think that the ability to implement such features is why Emacs is editor in a league of its own . And implementing such features is one of the signs that we are slowly moving from the phase catching up into getting ahead (or maybe I am overly optimistic).","title":"org-mode integration(preview)"},{"location":"blog/2020/7.0-release/#language-server-protocol-bindings-upcoming-changes","text":"We generated json schema from the protocol and from that schema we generated dash destructoring, getters, setters, validators, constructors, indication for optional/required fields, etc. which allow us to perform compile time validation of the protocol usage. This was huge change because we had to walk through almost all methods and replace explicit access to the elisp data structure with protocol usage. At the same time, emacs-lsp organization has more than 20k lines of code. This was coordinated effort and a lot of individuals contributed to that. The benefits are that we now can switch the underlying data structure from hashmap to plists which will yield better performance and also that the overall quality of the codebase has increased. Example Before: ( defun lsp--position-to-point ( params ) \"Convert Position object in PARAMS to a point.\" ( lsp--line-character-to-point ( gethash \"line\" params ) ( gethash \"character\" params ))) After: ( lsp-defun lsp--position-to-point (( &Position :line :character )) \"Convert `Position' object in PARAMS to a point.\" ( lsp--line-character-to-point line character )) In this example :line and :character are validated as fields of Position structure. Also, we do some handy conversions, if the field is optional it will end up with ? like :foo? . To reduce boiler plate code we convert camelCase to :camel-case when we are destructoring it.","title":"Language Server Protocol bindings, upcoming changes"},{"location":"blog/2020/7.0-release/#performance-optimizationsflycheck-code-completion","text":"We have rewritten the flycheck integration - the new integration provides the same UE as the old one but it is much more effective in reporting the errors to flycheck and lsp checker is much closer to the traditional flycheck checkers which are initiated/controlled from Emacs . Completion integration code is now much simpler/faster thanks to kiennq .","title":"Performance optimizations(flycheck, code completion)"},{"location":"blog/2020/7.0-release/#whats-next","text":"Upcoming breaking changes Dropping Emacs 25 support. This will allow us utilize Emacs multi-threading to improve lsp-mode responsibility Switching from hashtables to plists - once this change goes in users must recompile all lsp-mode extensions. Drop company-lsp support(not ported to use lsp-protocol.el ) Implementing lsp-mode configuration wizard to improve beginners experience - check this issue for more details. The overall goal is let user pick settings for all features that are opinionated (e. g. lsp-ui ) and improve the discoverability of lsp-mode features/extensions/settings. We will try to switch to monthly/weakly release cycles and to different person for writing the announcements. We might eventually encourage melpa-stable usage.","title":"What's next"},{"location":"manual-language-docs/lsp-gopls/","text":"Go (gopls) # lsp-mode provides Go language support via the gopls language server. See upstream for gopls installation instructions. Configuration # By default, some gopls analyzers are enabled and others are disabled. To override, use: (setq lsp-go-analyses '((shadow . t) (simplifycompositelit . :json-false))) Troubleshooting # Working with nested go.mod files # If you encounter an error like one of these: errors loading workspace: You are working in a nested module. Please open it as a separate workspace folder This file is in %s, which is a nested module in the %s module. gopls currently requires one module per workspace folder. Please open %s as a separate workspace folder Then the problem is most likely because lsp-mode has not started gopls with the correct root directory. By default lsp-mode will pick the root of your whole Git repository (or whatever else Projectile turns up) for all language servers started inside the repo. However, if you have nested go.mod files, you need to have lsp-mode start separate instances of gopls for each nested go.mod , and use the appropriate one for each file. You can make this work by manually invoking M-x lsp-workspace-folders-add and adding each nested go.mod directory as a workspace folder. Then reloading LSP with M-x lsp in an affected file (or restarting Emacs) will cause the file to be re-associated with a gopls process running under the correct project workspace. See #3473 for a bit more discussion of this particular issue.","title":"Go (gopls)"},{"location":"manual-language-docs/lsp-gopls/#go-gopls","text":"lsp-mode provides Go language support via the gopls language server. See upstream for gopls installation instructions.","title":"Go (gopls)"},{"location":"manual-language-docs/lsp-gopls/#configuration","text":"By default, some gopls analyzers are enabled and others are disabled. To override, use: (setq lsp-go-analyses '((shadow . t) (simplifycompositelit . :json-false)))","title":"Configuration"},{"location":"manual-language-docs/lsp-gopls/#troubleshooting","text":"","title":"Troubleshooting"},{"location":"manual-language-docs/lsp-gopls/#working-with-nested-gomod-files","text":"If you encounter an error like one of these: errors loading workspace: You are working in a nested module. Please open it as a separate workspace folder This file is in %s, which is a nested module in the %s module. gopls currently requires one module per workspace folder. Please open %s as a separate workspace folder Then the problem is most likely because lsp-mode has not started gopls with the correct root directory. By default lsp-mode will pick the root of your whole Git repository (or whatever else Projectile turns up) for all language servers started inside the repo. However, if you have nested go.mod files, you need to have lsp-mode start separate instances of gopls for each nested go.mod , and use the appropriate one for each file. You can make this work by manually invoking M-x lsp-workspace-folders-add and adding each nested go.mod directory as a workspace folder. Then reloading LSP with M-x lsp in an affected file (or restarting Emacs) will cause the file to be re-associated with a gopls process running under the correct project workspace. See #3473 for a bit more discussion of this particular issue.","title":"Working with nested go.mod files"},{"location":"manual-language-docs/lsp-json-ls/","text":"Completions # json-ls (vscode-json-language-server) provides completions for well known files and files which manually specify their JSON Schema using the $schema property. In order for json-ls to provide completions, you need to enable snippet support. To do that, make sure you have installed yasnippet and that you have enabled the yasnippet minor mode.","title":"Completions"},{"location":"manual-language-docs/lsp-json-ls/#completions","text":"json-ls (vscode-json-language-server) provides completions for well known files and files which manually specify their JSON Schema using the $schema property. In order for json-ls to provide completions, you need to enable snippet support. To do that, make sure you have installed yasnippet and that you have enabled the yasnippet minor mode.","title":"Completions"},{"location":"manual-language-docs/lsp-latex/","text":"lsp-latex.el: texlab LSP-client # See lsp-latex.el homepage .","title":"lsp-latex.el: texlab LSP-client"},{"location":"manual-language-docs/lsp-latex/#lsp-latexel-texlab-lsp-client","text":"See lsp-latex.el homepage .","title":"lsp-latex.el: texlab LSP-client"},{"location":"manual-language-docs/lsp-org/","text":"Literate programming using LSP and org-mode(alpha) # lsp-mode provides experimental support for running the language servers inside of org-mode source blocks. lsp-mode is achieving this by obtaining the information about the source block from the source block header(language + :tangle ) then translating the point to the LSP positions back and forth so the language server thinks that Emacs has opened the original file. In order that to work the files has to be present on the disk as well because the server expects to find them. Here it is a sample source block: #+BEGIN_SRC python :tangle \"python.py\" print \"Hello!\" #+END_SRC Demo # Commands # lsp-org start lsp-mode in source buffer. Must be executed with cursor being source block. lsp-virtual-buffer-disconnect turn off lsp-mode . What works # lsp-mode core features (finding references, going to definitions, completion, lenses, highlighting, etc) company-mode flycheck lsp-treemacs-symbols lsp-treemacs-errors-list Known limitations # Incremental updates are performed by sending the whole buffer each time(they simulate full updates). Deleting content that spans across the source block and the content of the org document is not handled. Opening and editing the actual file from the disk might cause undefined behaviour because the server expects file to be open only once. What does not work # dap-mode lsp-ui flymake (?) What's next # Finishing the virtual buffers API . lsp-ui support dap-mode support markdown-mode integration","title":"Literate programming using LSP and org-mode(alpha)"},{"location":"manual-language-docs/lsp-org/#literate-programming-using-lsp-and-org-modealpha","text":"lsp-mode provides experimental support for running the language servers inside of org-mode source blocks. lsp-mode is achieving this by obtaining the information about the source block from the source block header(language + :tangle ) then translating the point to the LSP positions back and forth so the language server thinks that Emacs has opened the original file. In order that to work the files has to be present on the disk as well because the server expects to find them. Here it is a sample source block: #+BEGIN_SRC python :tangle \"python.py\" print \"Hello!\" #+END_SRC","title":"Literate programming using LSP and org-mode(alpha)"},{"location":"manual-language-docs/lsp-org/#demo","text":"","title":"Demo"},{"location":"manual-language-docs/lsp-org/#commands","text":"lsp-org start lsp-mode in source buffer. Must be executed with cursor being source block. lsp-virtual-buffer-disconnect turn off lsp-mode .","title":"Commands"},{"location":"manual-language-docs/lsp-org/#what-works","text":"lsp-mode core features (finding references, going to definitions, completion, lenses, highlighting, etc) company-mode flycheck lsp-treemacs-symbols lsp-treemacs-errors-list","title":"What works"},{"location":"manual-language-docs/lsp-org/#known-limitations","text":"Incremental updates are performed by sending the whole buffer each time(they simulate full updates). Deleting content that spans across the source block and the content of the org document is not handled. Opening and editing the actual file from the disk might cause undefined behaviour because the server expects file to be open only once.","title":"Known limitations"},{"location":"manual-language-docs/lsp-org/#what-does-not-work","text":"dap-mode lsp-ui flymake (?)","title":"What does not work"},{"location":"manual-language-docs/lsp-org/#whats-next","text":"Finishing the virtual buffers API . lsp-ui support dap-mode support markdown-mode integration","title":"What's next"},{"location":"manual-language-docs/lsp-rust-analyzer/","text":"Server note # NOTE: If you are using rustic-mode , you have to change rustic-lsp-server instead of lsp-rust-server , since it also supports eglot as a lightweight alternative to lsp-mode. lsp-rust-server Choose LSP server (default is rust-analyzer) lsp-rust-switch-server Switch priorities of lsp servers rust-analyzer # Commands # lsp-rust-analyzer-syntax-tree # Display syntax tree for current buffer lsp-rust-analyzer-status # Display status information for rust-analyzer lsp-rust-analyzer-join-lines # Join selected lines into one, smartly fixing up whitespace and trailing commas before: after: inlay-hints # lsp-inlay-hints-mode enables displaying of inlay hints Additionally, lsp-inlay-hint-enable must be set to t in order for inlay hints to render. NOTE: the inlay hints interact badly with the lsp-ui sideline, because it doesn't seem to consider the overlays in its width calculation, which often leads to lines wrapping around. Macro expansion # lsp-rust-analyzer-expand-macro expand macro call at point recursively Use your own function for displaying macro expansion by customizing lsp-rust-analyzer-macro-expansion-method Formatted and highlighted result with the default function of rustic. auto-import # Get a list of possible auto import candidates with lsp-execute-code-action Snippet insertion/refactor # To support refactorings that require snippet insertion(eg. generating derive clause etc), make sure that you have enabled yasnippet and yas-minor-mode . If you are using use-package , you can do something like this: ( use-package yasnippet :ensure t :hook (( lsp-mode . yas-minor-mode ))) Open Cargo.toml # lsp-rust-analyzer-open-cargo-toml opens the Cargo.toml closest to the current file. Calling it with a universal argument will open the Cargo.toml in another window. Corresponds to the rust-analyzer LSP extension Open external documentation # lsp-rust-analyzer-open-external-docs opens external documentation related to the current position in a browser. Corresponds to the rust-analyzer LSP extension Find and execute tests related to current position # lsp-rust-analyzer-related-tests find all tests related to the current position, asks for user completion and executes the selected test in a compilation buffer. Corresponds to the rust-analyzer LSP extension In the example below, first you see that: + On the left, the function check_infer is defined, on the right another file is opened with many test functions, some of which call check_infer . With the cursor on check_infer , call lsp-rust-analyzer-related-tests and select infer_pattern_match_slice with fuzzy matching. The test is executed on the right with compilation major mode Move the cursor to fn ellipsize and attempt to find related tests to no avail. Confirm that the function is indeed untested by using swiper and finding one place in the file, where the function is called Caveats # Rust Analyzer does not support disabling snippets - https://github.com/rust-analyzer/rust-analyzer/issues/2518 extract signature # This unmerged PR contains an example method that allows modifying the signature that is displayed by eldoc. TRAMP Example # The following is an example configuration for using lsp-mode with a remote rust-analyzer server: (with-eval-after-load \"lsp-rust\" (lsp-register-client (make-lsp-client :new-connection (lsp-tramp-connection \"rust-analyzer\") :remote? t :major-modes '(rust-mode rustic-mode) :initialization-options 'lsp-rust-analyzer--make-init-options :notification-handlers (ht<-alist lsp-rust-notification-handlers) :action-handlers (ht (\"rust-analyzer.runSingle\" #'lsp-rust--analyzer-run-single)) :library-folders-fn (lambda (_workspace) lsp-rust-analyzer-library-directories) :ignore-messages nil :server-id 'rust-analyzer-remote)))","title":"Lsp rust analyzer"},{"location":"manual-language-docs/lsp-rust-analyzer/#server-note","text":"NOTE: If you are using rustic-mode , you have to change rustic-lsp-server instead of lsp-rust-server , since it also supports eglot as a lightweight alternative to lsp-mode. lsp-rust-server Choose LSP server (default is rust-analyzer) lsp-rust-switch-server Switch priorities of lsp servers","title":"Server note"},{"location":"manual-language-docs/lsp-rust-analyzer/#rust-analyzer","text":"","title":"rust-analyzer"},{"location":"manual-language-docs/lsp-rust-analyzer/#commands","text":"","title":"Commands"},{"location":"manual-language-docs/lsp-rust-analyzer/#lsp-rust-analyzer-syntax-tree","text":"Display syntax tree for current buffer","title":"lsp-rust-analyzer-syntax-tree"},{"location":"manual-language-docs/lsp-rust-analyzer/#lsp-rust-analyzer-status","text":"Display status information for rust-analyzer","title":"lsp-rust-analyzer-status"},{"location":"manual-language-docs/lsp-rust-analyzer/#lsp-rust-analyzer-join-lines","text":"Join selected lines into one, smartly fixing up whitespace and trailing commas before: after:","title":"lsp-rust-analyzer-join-lines"},{"location":"manual-language-docs/lsp-rust-analyzer/#inlay-hints","text":"lsp-inlay-hints-mode enables displaying of inlay hints Additionally, lsp-inlay-hint-enable must be set to t in order for inlay hints to render. NOTE: the inlay hints interact badly with the lsp-ui sideline, because it doesn't seem to consider the overlays in its width calculation, which often leads to lines wrapping around.","title":"inlay-hints"},{"location":"manual-language-docs/lsp-rust-analyzer/#macro-expansion","text":"lsp-rust-analyzer-expand-macro expand macro call at point recursively Use your own function for displaying macro expansion by customizing lsp-rust-analyzer-macro-expansion-method Formatted and highlighted result with the default function of rustic.","title":"Macro expansion"},{"location":"manual-language-docs/lsp-rust-analyzer/#auto-import","text":"Get a list of possible auto import candidates with lsp-execute-code-action","title":"auto-import"},{"location":"manual-language-docs/lsp-rust-analyzer/#snippet-insertionrefactor","text":"To support refactorings that require snippet insertion(eg. generating derive clause etc), make sure that you have enabled yasnippet and yas-minor-mode . If you are using use-package , you can do something like this: ( use-package yasnippet :ensure t :hook (( lsp-mode . yas-minor-mode )))","title":"Snippet insertion/refactor"},{"location":"manual-language-docs/lsp-rust-analyzer/#open-cargotoml","text":"lsp-rust-analyzer-open-cargo-toml opens the Cargo.toml closest to the current file. Calling it with a universal argument will open the Cargo.toml in another window. Corresponds to the rust-analyzer LSP extension","title":"Open Cargo.toml"},{"location":"manual-language-docs/lsp-rust-analyzer/#open-external-documentation","text":"lsp-rust-analyzer-open-external-docs opens external documentation related to the current position in a browser. Corresponds to the rust-analyzer LSP extension","title":"Open external documentation"},{"location":"manual-language-docs/lsp-rust-analyzer/#find-and-execute-tests-related-to-current-position","text":"lsp-rust-analyzer-related-tests find all tests related to the current position, asks for user completion and executes the selected test in a compilation buffer. Corresponds to the rust-analyzer LSP extension In the example below, first you see that: + On the left, the function check_infer is defined, on the right another file is opened with many test functions, some of which call check_infer . With the cursor on check_infer , call lsp-rust-analyzer-related-tests and select infer_pattern_match_slice with fuzzy matching. The test is executed on the right with compilation major mode Move the cursor to fn ellipsize and attempt to find related tests to no avail. Confirm that the function is indeed untested by using swiper and finding one place in the file, where the function is called","title":"Find and execute tests related to current position"},{"location":"manual-language-docs/lsp-rust-analyzer/#caveats","text":"Rust Analyzer does not support disabling snippets - https://github.com/rust-analyzer/rust-analyzer/issues/2518","title":"Caveats"},{"location":"manual-language-docs/lsp-rust-analyzer/#extract-signature","text":"This unmerged PR contains an example method that allows modifying the signature that is displayed by eldoc.","title":"extract signature"},{"location":"manual-language-docs/lsp-rust-analyzer/#tramp-example","text":"The following is an example configuration for using lsp-mode with a remote rust-analyzer server: (with-eval-after-load \"lsp-rust\" (lsp-register-client (make-lsp-client :new-connection (lsp-tramp-connection \"rust-analyzer\") :remote? t :major-modes '(rust-mode rustic-mode) :initialization-options 'lsp-rust-analyzer--make-init-options :notification-handlers (ht<-alist lsp-rust-notification-handlers) :action-handlers (ht (\"rust-analyzer.runSingle\" #'lsp-rust--analyzer-run-single)) :library-folders-fn (lambda (_workspace) lsp-rust-analyzer-library-directories) :ignore-messages nil :server-id 'rust-analyzer-remote)))","title":"TRAMP Example"},{"location":"manual-language-docs/lsp-rust-rls/","text":"RLS # Customization # This is an incomplete list of the available options lsp-rust-rls-server-command change command to start RLS lsp-rust-show-hover-context turn off hover tooltips rustfmt # Code formatting with rustfmt can be configured with: lsp-rust-rustfmt-path change default path for rustfmt executable To enable automatic code format on save, add this to your init.el ( rust-mode is assumed to be installed): (add-hook 'before-save-hook (lambda () (when (eq 'rust-mode major-mode) (lsp-format-buffer))))","title":"Lsp rust rls"},{"location":"manual-language-docs/lsp-rust-rls/#rls","text":"","title":"RLS"},{"location":"manual-language-docs/lsp-rust-rls/#customization","text":"This is an incomplete list of the available options lsp-rust-rls-server-command change command to start RLS lsp-rust-show-hover-context turn off hover tooltips","title":"Customization"},{"location":"manual-language-docs/lsp-rust-rls/#rustfmt","text":"Code formatting with rustfmt can be configured with: lsp-rust-rustfmt-path change default path for rustfmt executable To enable automatic code format on save, add this to your init.el ( rust-mode is assumed to be installed): (add-hook 'before-save-hook (lambda () (when (eq 'rust-mode major-mode) (lsp-format-buffer))))","title":"rustfmt"},{"location":"manual-language-docs/lsp-sqls/","text":"Sample configuration: # ( add-hook 'sql-mode-hook 'lsp ) ( setq lsp-sqls-workspace-config-path nil ) ( setq lsp-sqls-connections ' ((( driver . \"mysql\" ) ( dataSourceName . \"yyoncho:local@tcp(localhost:3306)/foo\" )) (( driver . \"mssql\" ) ( dataSourceName . \"Server=localhost;Database=sammy;User Id=yyoncho;Password=hunter2;\" )) (( driver . \"postgresql\" ) ( dataSourceName . \"host=127.0.0.1 port=5432 user=yyoncho password=local dbname=sammy sslmode=disable\" )))) Alternatively, you can leave lsp-sqls-workspace-config-path to the default \"workspace\" value, and put a json file in /.sqls/config.json containing { \"sqls\": { \"connections\": [ { \"driver\": \"mysql\", \"dataSourceName\": \"yyoncho:local@tcp(localhost:3306)/foo\" }, \u2026etc\u2026 ] } } Now lsp should start in sql-mode buffers, and you can pick a server connection with M-x lsp-execute-code-action and \"Switch Connections\" (or directly with M-x lsp-sql-switch-connection ). You can change database with M-x lsp-execute-code-action and \"Switch Database\" (or M-x lsp-sql-switch-database ).","title":"Sample configuration:"},{"location":"manual-language-docs/lsp-sqls/#sample-configuration","text":"( add-hook 'sql-mode-hook 'lsp ) ( setq lsp-sqls-workspace-config-path nil ) ( setq lsp-sqls-connections ' ((( driver . \"mysql\" ) ( dataSourceName . \"yyoncho:local@tcp(localhost:3306)/foo\" )) (( driver . \"mssql\" ) ( dataSourceName . \"Server=localhost;Database=sammy;User Id=yyoncho;Password=hunter2;\" )) (( driver . \"postgresql\" ) ( dataSourceName . \"host=127.0.0.1 port=5432 user=yyoncho password=local dbname=sammy sslmode=disable\" )))) Alternatively, you can leave lsp-sqls-workspace-config-path to the default \"workspace\" value, and put a json file in /.sqls/config.json containing { \"sqls\": { \"connections\": [ { \"driver\": \"mysql\", \"dataSourceName\": \"yyoncho:local@tcp(localhost:3306)/foo\" }, \u2026etc\u2026 ] } } Now lsp should start in sql-mode buffers, and you can pick a server connection with M-x lsp-execute-code-action and \"Switch Connections\" (or directly with M-x lsp-sql-switch-connection ). You can change database with M-x lsp-execute-code-action and \"Switch Database\" (or M-x lsp-sql-switch-database ).","title":"Sample configuration:"},{"location":"manual-language-docs/lsp-terraform-ls/","text":"Server note # This page documents the official language server for Terraform by Hashicorp. Note that currently lsp-mode supports two terraform language servers. This FAQ entry shows how to choose a specific one. If you would want to go with the official Hashicorp's language server, set this: ( setq lsp-disabled-clients ' ( tfls )) terraform-ls # Commands # lsp-terraform-ls-validate # Runs terraform validate on project root. All the violations are published back in the buffer. lsp-terraform-ls-init # Runs terraform init using terraform available from $PATH . You have to make sure that that proper credentials are there. Note that this is a synchronous action and will timeout after a certain amount of time. lsp-terraform-ls-version # This feature is only available on terraform-ls version >= 0.29.0. Provides information about the terraform binary version for the current workspace. This is how it will look like in the minibuffer: Required: 1.1.9, Current: 1.0.5 Note that if you have changed the version in your $PATH meanwhile, you would have to restart the lsp session using lsp-workspace-restart for it to pick up the newer version. Code Lens # This is an experimental feature which can be enabled via the option lsp-terraform-ls-enable-show-reference : ( setq lsp-terraform-ls-enable-show-reference t ) This gif demonstrates how this feature is used: Semantic token support # Make sure to enable these two variables to ensure that you have semantic token support for terraform mode: ( setq lsp-semantic-tokens-enable t ) ( setq lsp-semantic-tokens-honor-refresh-requests t ) This is how the code looks without semantic tokens support: And with semantic token support you get more contextual information via different faces: Link to Documentation # Link to documentation from module sources for registry modules is available. Make sure you have this enabled: ( setq lsp-enable-links t ) Note that the default value of lsp-enable-links is t . So enabling it isn't strictly required, but you would require this feature for it to properly work. This gif demonstrates on how to use it: There are two ways to open the link: Key binding: Alt + Enter Clicking the middle button of your mouse Prefill required fields # This is an experimental feature which can be enabled via the option lsp-terraform-ls-prefill-required-fields : ( setq lsp-terraform-ls-prefill-required-fields t ) This gif demonstrates how this feature is used: Treeview controls # For this feature to work, make sure that you have lsp-treemacs installed. Providers widget # This widget can be invoked by lsp-terraform-ls-providers . Module calls widget # This widget can be invoked by lsp-terraform-ls-module-calls . If the modules data is empty, you might need to do terraform init for the project. The widget has a minor mode named lsp-terraform-modules-mode . Following keybinding are available within the mode: g : Refresh modules view","title":"Lsp terraform ls"},{"location":"manual-language-docs/lsp-terraform-ls/#server-note","text":"This page documents the official language server for Terraform by Hashicorp. Note that currently lsp-mode supports two terraform language servers. This FAQ entry shows how to choose a specific one. If you would want to go with the official Hashicorp's language server, set this: ( setq lsp-disabled-clients ' ( tfls ))","title":"Server note"},{"location":"manual-language-docs/lsp-terraform-ls/#terraform-ls","text":"","title":"terraform-ls"},{"location":"manual-language-docs/lsp-terraform-ls/#commands","text":"","title":"Commands"},{"location":"manual-language-docs/lsp-terraform-ls/#lsp-terraform-ls-validate","text":"Runs terraform validate on project root. All the violations are published back in the buffer.","title":"lsp-terraform-ls-validate"},{"location":"manual-language-docs/lsp-terraform-ls/#lsp-terraform-ls-init","text":"Runs terraform init using terraform available from $PATH . You have to make sure that that proper credentials are there. Note that this is a synchronous action and will timeout after a certain amount of time.","title":"lsp-terraform-ls-init"},{"location":"manual-language-docs/lsp-terraform-ls/#lsp-terraform-ls-version","text":"This feature is only available on terraform-ls version >= 0.29.0. Provides information about the terraform binary version for the current workspace. This is how it will look like in the minibuffer: Required: 1.1.9, Current: 1.0.5 Note that if you have changed the version in your $PATH meanwhile, you would have to restart the lsp session using lsp-workspace-restart for it to pick up the newer version.","title":"lsp-terraform-ls-version"},{"location":"manual-language-docs/lsp-terraform-ls/#code-lens","text":"This is an experimental feature which can be enabled via the option lsp-terraform-ls-enable-show-reference : ( setq lsp-terraform-ls-enable-show-reference t ) This gif demonstrates how this feature is used:","title":"Code Lens"},{"location":"manual-language-docs/lsp-terraform-ls/#semantic-token-support","text":"Make sure to enable these two variables to ensure that you have semantic token support for terraform mode: ( setq lsp-semantic-tokens-enable t ) ( setq lsp-semantic-tokens-honor-refresh-requests t ) This is how the code looks without semantic tokens support: And with semantic token support you get more contextual information via different faces:","title":"Semantic token support"},{"location":"manual-language-docs/lsp-terraform-ls/#link-to-documentation","text":"Link to documentation from module sources for registry modules is available. Make sure you have this enabled: ( setq lsp-enable-links t ) Note that the default value of lsp-enable-links is t . So enabling it isn't strictly required, but you would require this feature for it to properly work. This gif demonstrates on how to use it: There are two ways to open the link: Key binding: Alt + Enter Clicking the middle button of your mouse","title":"Link to Documentation"},{"location":"manual-language-docs/lsp-terraform-ls/#prefill-required-fields","text":"This is an experimental feature which can be enabled via the option lsp-terraform-ls-prefill-required-fields : ( setq lsp-terraform-ls-prefill-required-fields t ) This gif demonstrates how this feature is used:","title":"Prefill required fields"},{"location":"manual-language-docs/lsp-terraform-ls/#treeview-controls","text":"For this feature to work, make sure that you have lsp-treemacs installed.","title":"Treeview controls"},{"location":"manual-language-docs/lsp-terraform-ls/#providers-widget","text":"This widget can be invoked by lsp-terraform-ls-providers .","title":"Providers widget"},{"location":"manual-language-docs/lsp-terraform-ls/#module-calls-widget","text":"This widget can be invoked by lsp-terraform-ls-module-calls . If the modules data is empty, you might need to do terraform init for the project. The widget has a minor mode named lsp-terraform-modules-mode . Following keybinding are available within the mode: g : Refresh modules view","title":"Module calls widget"},{"location":"page/CHANGELOG/","text":"Changelog # Unreleased 8.0.1 # Add architecture triples for erlang-language-platform file downloads, to support macos on ARM and X86. Add semantic token support for erlang-language-platform in lsp-erlang client. Update erlang-language-platform download file names to match new upstream names. Add erlang-language-platform support in lsp-erlang client. Add credo-language-server Add support for clojure-ts-mode in clojure-lsp client terraform-ls now supports prefill required fields and the ability to validate on save. Ignore .terraform and .terragrunt-cache directories lsp-bash now supports bash-ts-mode lsp-ruby-syntax-tree , lsp-solargraph , lsp-sorbet , lsp-steep , and lsp-typeprof now support ruby-ts-mode Drop support for emacs 26.1 and 26.2 Added support for textDocument/linkedEditingRange via lsp-iedit-linked-ranges and lsp-evil-multiedit-ranges (see #3166 ) Add GraphQL Language Server for autocomplete graphql query Added lsp-auto-touch-files . When it is non-nil it will auto-create the file on the disk before sending textDocument/didOpen . Add lsp-log-io-allowlist-methods for debugging purposes. Enable `lsp-lens-enable` by default. Add TOML support. Add Nginx support. Disable noisy features from lsp-ui : lsp-ui-sideline-show-code-actions and lsp-ui-doc-show-with-cursor . Fix org mode support. #3258 Add remark-language-server Deprecate unified-languge-server in favor of remark-language-server Made it possible to disable lsp-response-timeout entirely. Fix csharp-ls startup on emacs@master (and emacs@emacs-28 on macOS) due to a switch posix spawn and not setting proper sigmask on child processes. Fix incorrect lsp-fsharp defcustom types. Add lsp-fsharp-generate-binlog . Update installation mechanism for fsautocomplete (lsp-fsharp) to use dotnet tool install -g . Fix fsautocomplete (lsp-fsharp) startup on emacs@master (and emacs@emacs-28 on macOS) due to a switch posix_spawn and not setting proper sigmask on child processes. Add TypeProf support. Add Ansible support. Disable lsp-steep-use-bundler by default. Add idris2-lsp Add emmet-ls Support all initializationOptions in typescript-language-server Update rust-analyzer's inlay hint protocol support. Add support for \\~typescript-language-server\\~\u2019s inlay hints. Add support for workspace/willRenameFiles and workspace/didRenameFiles . Improve project root import to read specific keys instead of any events. Support labelDetails of LSP Specification 3.17 Add Gleam support Drop deprecated rust-analyzer variable lsp-rust-analyzer-import-merge-behaviour Added run and debug code lenses to lsp-kotlin Add setting UPDATE EXPECT =1 when running `expect!` tests lsp-rust Add lsp-use-workspace-root-for-server-default-directory . Add marksman support. lsp-find-references to include declaration by default (configurable with lsp-references-exclude-definition ) Add syntax tree support for Ruby code. lsp-organize-imports no longer prompts for an action, even if lsp-auto-execute-action is nil. Add mint-lang support. Add lsp-sorbet-as-add-on variable to allow running the Sorbet server as an add-on alongside Solargraph or others Add dot-language-server ( a.k.a. Graphviz) support. Add PLS support (additional sever for Perl). Fix lsp-avy-lens when avy-style is 'de-bruijn or 'words #3554 Fix lsp-avy-lens when lsp-lens-place-position position is end-of-line Add lsp-clojure-trace-enable variable. Add some support for rust-analyzer semantic token modifiers. Highlights mutable and reference variables. Update version for lsp-xml to 0.21.0, adding custom variables for new formatting options. Changes variable lsp-xml-validation-schema to be an alist rather than a boolean. Adds lsp-xml-preferences-quote-style as a replacement for obsolete lsp-xml-format-quotes . Add nil support (additional server for Nix) Add Volar 1.0 support, refactor vue-language-server initializationOptions , and remove multi server that is no longer needed. Ensure that incomplete completions only trigger when retriggering from the same completion session #3028 lsp-kotlin now supports kotlin-ts-mode lsp-elixir now supports elixir-ts-mode and heex-ts-mode Update Magik Add lsp-clients-typescript-prefer-use-project-ts-server custom variable to try to use the project's tsserver.js instead of the one installed by lsp-mode. Add ruff-lsp support (additional server for Python). Update documentation of Vue3 install server Add GLSL support. Move inlay hint support in core from lsp-rust and lsp-javascript . Use lsp-inlay-hint-enable instead of lsp-rust-analyzer-server-display-inlay-hints and lsp-javascript-server-display-inlay-hints Add ShaderLab support. Remove custom variable lsp-inlay-hint-enum-format since LSP Specification 3.17 only has type and parameter hint kinds. Add Semgrep support Add AWK language server support. Add support for scala-ts-mode . Drop support for emacs 26.3 Add [ https://github.com/rubocop/rubocop ][RuboCop built-in language server]] for linting and formatting Ruby code. Add Move language server support. Add mdx support using mdx-language-server Release 8.0.0 # Add lsp-clients-angular-node-get-prefix-command to get the Angular server from another location which is still has /lib/node_modules in it. Set lsp-clients-angular-language-server-command after the first connection to speed up subsequent connections. Add lsp-sql-execute-paragraph to execute the current paragraph (like sql-send-paragraph ). Breaking change: bindings for commands under s (like lsp-workspace-shutdown ) were moved under w for better compatibility with Spacemacs removed lsp-print-performance Add support for insert/replace when performing completion. When using company pressing C-u RET will perform the alternative action (the default is replace, but can be changed). Add lsp-after-apply-edits-hook that run after every workspace edit is applied. Safe renamed lsp-diagnose to lsp-doctor . Add lsp-modeline-code-actions-segments for a better customization. Add Lua Language Server , Lua-LSP and improve EmmyLua. Add configuration settings for elixir-ls. Add Nix support. Add Racket support. Provided automatic installers for `lsp-clojure` (`clojure-lsp`). Provided automatic installers for clangd. Added lsp-modeline-workspace-status-mode and option to disable it via lsp-modeline-workspace-status-enable . Automatically download XML language server Lemminx Add Vala support. Add Sorbet Language Server for typechecking Ruby code. Add Elixir test lenses support. Enable headerline breadcrumb by default Add Steep Language Server for typechecking Ruby code. Rename semantic highlighting -> semantic tokens. Add Phpactor Language server Add lsp-headerline-breadcrumb-icons-enable to disable breadcrumb icons. Add ActionScript support. Add iedit integration ( documentHighlights ) Add an interactive lsp-clangd-find-other-file method that uses the clangd extension to return the corresponding header/cpp file from cpp/header file respectively. Add support for Deno language server . Add lsp-dired-mode - integration between dired and lsp-mode Add Grammarly support. Add D support. Add Zig support. Add an interactive lsp-rust-analyzer-reload-workspace function that reloads the Rust-Analyzer workspace from Cargo.toml Rename lsp-rust-analyzer-cargo-load-out-dirs-from-check to lsp-rust-analyzer-cargo-run-build-scripts to align with upstream. Allow customization of lsp-file-watch-ignored-directories and lsp-file-watch-ignored-files at the root of an lsp workspace. Add client for markdown language server (called unified-language-server ) Add client for SystemVerilog language server (called https://github.com/imc-trading/svlangserver ) Add client for python-lsp-server, pylsp ( https://github.com/python-lsp/python-lsp-server ) Deprecate the Palantir Python language server, pyls. Add 2 rust-analyzer LSP extension function lsp-rust-analyzer-related-tests and lsp-rust-analyzer-open-cargo-toml Work around bug in NPM versions 7.0.0 through 7.4.1 that prevented lsp-install-server from working for NPM-based language servers. Add lsp-lens-place-position with option to place code lens at end of line as default. Add LanguageTool support. Add Beancount support. Add Nix language server support. Update the ESLint server to 2.1.23 Add lsp-eslint-warn-on-ignored-files and lsp-eslint-rules-customizations options to the ESLint client Change interface for configuring ESLint code actions - see documentation of lsp-eslint-code-action-disable-rule-comment and lsp-eslint-code-action-show-documentation for details Add interactive lsp-rust-analyzer-move-item-up and lsp-rust-analyzer-move-item-down functions to move Rust items / statements Fix memory leak when handling server response. #3062 Improve support for SemanticTokens adding support for delta and range semantic tokens. Allow override specific semantic tokens faces per client. Mention new lsp-mode integration package consult-lsp . Reorganized lsp-mode code moving features and clients to separated files. #2067 Add support for signatureHelp using posframe . #1999 Add iedit integration. #2478 Release 7.0.1 # Introduced lsp-diagnostics-mode . Safe renamed lsp-flycheck-default-level -> lsp-diagnostics-flycheck-default-level Safe renamed lsp-diagnostic-package -> lsp-diagnostics-provider Dropped support for company-lsp , the suggested provider is company-capf . Moved completion features to lsp-completion.el Safe renamed lsp-prefer-capf -> lsp-completion-provider Safe renamed lsp-enable-completion-at-point -> lsp-completion-enable Release 7.0 # Support for new language server - Shttps://github.com/lighttiger2505/sqls (thanks to @v2okimochi) Provided automatic installers for elp/css/bash/purescript(thanks to @kiennq) Configurable Rust Analyzer inlay face via lsp-rust-analyzer-inlay-face . Add lsp-headerline-breadcrumb-mode which shows a breadcrumb with the document symbols on headerline when enabled. Add lsp-modeline-code-actions-mode which shows code actions on modeline when enabled. Support for Theia-based semantic highlighting has been removed in favor of the semanticTokens protocol specified by LSP 3.16. To enable it, set lsp-enable-semantic-highlighting to t . lsp-metals moved into a separate repo https://github.com/emacs-lsp/lsp-metals Breaking change: use alist instead of hast-tables for lsp-gopls-env and lsp-yaml-schemas . Add lsp-gopls-codelens defcustom to configure codelenses used for golang. Added lsp-diagnose to help users verify their performance related settings Created new website https://emacs-lsp.github.io/lsp-mode/ (thanks to @ericdallo) Implemented special handling of Clangd echo area. Added setting to disable additional text edits ( lsp-completion-enable-additional-text-edit ). Added setting to disable text detail ( lsplsp-completion-show-detail ). Add serenata language server support (thanks to @Sasanidas) Various capf improments - better handling of partial results, support for try-completions, improved responsibility, optimized filtering/sorting, etc. Remove Elixir JakeBecker support (no longer supported) Support semantic tokens protocol (thanks to @sebastiansturm) Improved flycheck integration for better performance. Implemented client side bindings for the protocol. Fixup Ignore timeouts from willSaveWaitUntil Implemented org-mode support (see https://github.com/emacs-lsp/lsp-mode/blob/master/docs/page/lsp-org.md ) Removed support for Theia semantic highlighting protocol Performed several fixes to make sure lsp-mode is working fine with Emacs 28 native compilation. Add modeline code actions support (thanks to @ericdallo). Enabled by default, use lsp-modeline-code-actions-enable to disable it. Migrated to github actions from travis. Add breadcrumb on headerline (thanks to @ericdallo). Disabled by default, can be enabled via lsp-headerline-breadcrumb-enable Migrated lsp-mode to use plists(thanks to @yyoncho, @kiennq and @ericdallo). lsp-diagnostics-modeline: perf improvement (thanks to @kiennq) Release 6.3 # Implemented company-capf integration. company-lsp is no longer supported. Dropped support for dart language server in favour of dart SDK(breaking) Added verilog support for LSP using hdl-checker Implemented call hierarchy support (available in lsp-treemacs ) Implemented support for ESLint language server. ocmalmerlin-lsp moved to ocaml-lsp-server(breaking) Added New VHDL language server https://github.com/kraigher/rust_hdl#configuration Add Nim language server integration Implement automatic downloading facilities and implemented auto-download for typescript-language-server , javascript-typescript-stdio and json-language-server . Implement metals decoration protocol Send metals/didFocusTextDocument notification on buffer change Add default keybindings and which-key integration Add support for Dhall language server Implemented debug adapter protocol support for metals Add CMake language server integration Add rust-analyzer runnables support Implemented rust-analyzer inlay hints Support pyenv for pyls Add clang-tidy specific Flycheck error explainer for the lsp checker Improve lsp-mode completion performance by suppressing non completion related features when completion is active. lsp-json: Enable formatter provider Accommodate the new :end-column and :end-column from flycheck Implement status bar for diagnostics lsp-diagnostics-modeline-mode Auto install of the html-language-server Flycheck support for diagnostic tags (3.15 spec). Adding support for GDScript language server used view mode for metals doctor buffer add texlab as tex LSP server Started new set of integration tests without using ecukes Support \"only\" param when requesting code actions Add Perl-LanguageServer support add support robot-framework language server. Implement deferred semantic highlighting Change default transport for erlang ls to stdio dart language server moved into separate repo https://github.com/emacs-lsp/lsp-dart Activate flow language server if there is flow tag in file or .flowconfig in project Add purescript-language-server (#1596) Process the $/progress messages from LSP 3.15 Display the first line of MarkupContent in eldoc (#1607) Perform willSaveWaitUntil synchronously and with shorter timeout Display images when rendering markdown(useful for latex language servers). Increase lsp-idle-delay to 0.5 Support bash language server glob pattern option (#1594) Use pagebreaks for lsp-describe-thing-at-point lsp-mode: Eliminate quadratic-time index-building for imenu. (#1616) Release 6.2 # Support dynamic rename registration Add basic support for style semantic highlighting Added Haxe language server integration Add C#-support via Roslyn. Add emmy lua support Enable plugins in typescript language server. 1079 Provide support for Ada Language server Implement right click support in lsp-mode buffers. Added built-in support for Rust Analyzer . Added support for HDL Checker server to lsp-vhdl Added support for Terraform language server. Added support for R language server (#1182) Added support for passing environment variables to language servers (#1184) Speedup lsp-mode's JSONRPC processing (\\~2 times) Add cancel-token to lsp-request-async Implement unified way to handle recurring lsp features Added support for powershell language server. Implemented inlay hints for Rust Analyzer (thanks to brotzeit ). Implemented automatic installation for C# language server. Reimplemented textDocument/signatureHelp - now the signature is displayed in lv buffer. Cancel sync requests when presssing C-g during the request. Use c-basic-offset when in cc-mode . Add support for Crystal via scry (#1218). Implement textDocument/documentColor support. Release 6.1 # Support for new languages/language servers: # Kotlin Language Server (Thanks to Jon Carr) gopls Language Server for Go XML Language Server (lsp4xml) Hack (using HHVM ) Intelephense for PHP clojure-lsp for Clojure/ClojureScipt (Thanks to Dario Benedek Fazekas) elmLS for Elm (Thanks to Daniel-V) FsAutoComplete for F# (Thanks to Reed Mullanix) Added Erlang support via erlang ls Added Dockerfile support via dockerfile-language-server-nodejs New logging options # lsp-mode now logs to buffer *lsp-log* , instead of *Messages* . This can be controlled with the variable lsp-log-max (Thanks to Thomas Fini Hansen). If lsp-print-performance is non-nil, lsp-mode will log a corresponding performance trace to *lsp-log* for every message to and from the server. The variable lsp-print-io , when non-nil will cause lsp-mode to log all messages to and from the server to a unique *lsp-io* buffer for every project root. These logs can be saved to a file and viewed using the LSP Inspector . LSP Methods # Add support for textDocument/prepareRename . If supported by the language server, all renaming operations will be tested for validity. Add support for file watches . Add support for CodeAction literals . Add API level support for folding ranges . Folding support for origami.el support is implemented by package lsp-origami . Support document links . This can be controlled using the variable lsp-enable-links . Support resource operations (edits sent from the language server can now create/modify/remove files and directories). Add support for workspace/configuration . Add new function lsp-disconnect . Added lsp-find-definition-mouse and bound to C- Added lsp-extend-selection as a frontend of new LSP method textDocument/extendSelection Other changes # Add project logo (thanks to Jon Carr). Created an integration test suite for lsp-mode (See directory features ). If available, using the native JSON API introduced in Emacs 27.1. Tramp implementation now uses TRAMP process instead of TCP sockets (Thanks to Karsten Patzwaldt). LSP autoconfiguration adds company-lsp to the list of company backends instead of overriding it. Add lsp-mode-map . Add menu bar entries for lsp-mode . Perform before save operations ( textDocument/willSaveWaitUntil ) asynchronously. imenu support is now handled asynchronously (Thanks to Dario Gjorgjevski). Added option :none for lsp-prefer-flymake , which disabled both Flymake and Flycheck support. Changed flymake to report the errors immediately after they arrive instead of waiting flymake to call lsp-mode . Add debounce when server does not support incremental updates. Add hook lsp-after-uninitialized-hook , which stores the list of functions called after a language server has been uninitialized. Add variable lsp-symbol-highlighting-skip-current , which lets the user skip the current symbol when a given symbol is being highlighted. Add variable lsp-enabled-clients , which lets users set which defined clients are allowed to be used. Support multiple signatures while displaying eldoc text. Add variable lsp-signature-render-all , which when non-nil forces lsp-mode to only show the current active signature. Expose configuration settings for various language servers. Language servers can now be disabled with the variable lsp-disabled-clients . Improved applying changes speed. Fixed xref support for emacs 27+ Implemented automatic installation for F# language server. Added Emacs 26.x to CI Fixed handling of stderr when running over TRAMP . Implemented support for running the language server in Docker container over local files. Release 6.0 # lsp-mode now have single entry point lsp for all language and based on the major mode starts the corresponding language servers. Added flymake integration. lsp automatically enables and configures company-lsp , lsp-ui , yasnippet , or flymake if they are present so no additional configuration is needed except installing the packages. That behavior could be disabled by setting lsp-auto-configure to nil . lsp-mode ships with several predefined servers located in lsp-clients.el which does not require additional package. For the more complex Language Servers like Eclipse JDT , ccls , cquery and haskell we still require separate package due to relatively high code base. lsp-mode handles automatically server failures by asking the user whether he/she wants to restart the server. introduced new command lsp-describe-session which replaces the existing one lsp-capabilities . The command lists the folders that are part of the workspace and the servers that are associated with the corresponding folder. lsp-mode displays information about the running server and it's status in the modeline. lsp-define-stdio-client and lsp-define-tcp-client are replaced with lsp-register-client lsp rely on projectile or project.el now only for suggesting project root. Once you open new file in a project and start lsp it will provide several options(import project, blacklist project, select other directory root). Once you select a root it will be persisted and used for the next sessions. support for multiple language servers per single file and workspace. changed lsp-mode settings to more sensible defaults. Removed all synchronous calls from the server startup. Improved multi-folder support. added backends for: Bash, C++, CSS, Dart, Elixir, Fortran, Go, Groovy, HTML, Javascript/Typescript, Javascript/Typescript, Ocaml, PHP, Python, Ruby, Rust, Vue, Flow","title":"Changelog"},{"location":"page/CHANGELOG/#changelog","text":"","title":"Changelog"},{"location":"page/CHANGELOG/#unreleased-801","text":"Add architecture triples for erlang-language-platform file downloads, to support macos on ARM and X86. Add semantic token support for erlang-language-platform in lsp-erlang client. Update erlang-language-platform download file names to match new upstream names. Add erlang-language-platform support in lsp-erlang client. Add credo-language-server Add support for clojure-ts-mode in clojure-lsp client terraform-ls now supports prefill required fields and the ability to validate on save. Ignore .terraform and .terragrunt-cache directories lsp-bash now supports bash-ts-mode lsp-ruby-syntax-tree , lsp-solargraph , lsp-sorbet , lsp-steep , and lsp-typeprof now support ruby-ts-mode Drop support for emacs 26.1 and 26.2 Added support for textDocument/linkedEditingRange via lsp-iedit-linked-ranges and lsp-evil-multiedit-ranges (see #3166 ) Add GraphQL Language Server for autocomplete graphql query Added lsp-auto-touch-files . When it is non-nil it will auto-create the file on the disk before sending textDocument/didOpen . Add lsp-log-io-allowlist-methods for debugging purposes. Enable `lsp-lens-enable` by default. Add TOML support. Add Nginx support. Disable noisy features from lsp-ui : lsp-ui-sideline-show-code-actions and lsp-ui-doc-show-with-cursor . Fix org mode support. #3258 Add remark-language-server Deprecate unified-languge-server in favor of remark-language-server Made it possible to disable lsp-response-timeout entirely. Fix csharp-ls startup on emacs@master (and emacs@emacs-28 on macOS) due to a switch posix spawn and not setting proper sigmask on child processes. Fix incorrect lsp-fsharp defcustom types. Add lsp-fsharp-generate-binlog . Update installation mechanism for fsautocomplete (lsp-fsharp) to use dotnet tool install -g . Fix fsautocomplete (lsp-fsharp) startup on emacs@master (and emacs@emacs-28 on macOS) due to a switch posix_spawn and not setting proper sigmask on child processes. Add TypeProf support. Add Ansible support. Disable lsp-steep-use-bundler by default. Add idris2-lsp Add emmet-ls Support all initializationOptions in typescript-language-server Update rust-analyzer's inlay hint protocol support. Add support for \\~typescript-language-server\\~\u2019s inlay hints. Add support for workspace/willRenameFiles and workspace/didRenameFiles . Improve project root import to read specific keys instead of any events. Support labelDetails of LSP Specification 3.17 Add Gleam support Drop deprecated rust-analyzer variable lsp-rust-analyzer-import-merge-behaviour Added run and debug code lenses to lsp-kotlin Add setting UPDATE EXPECT =1 when running `expect!` tests lsp-rust Add lsp-use-workspace-root-for-server-default-directory . Add marksman support. lsp-find-references to include declaration by default (configurable with lsp-references-exclude-definition ) Add syntax tree support for Ruby code. lsp-organize-imports no longer prompts for an action, even if lsp-auto-execute-action is nil. Add mint-lang support. Add lsp-sorbet-as-add-on variable to allow running the Sorbet server as an add-on alongside Solargraph or others Add dot-language-server ( a.k.a. Graphviz) support. Add PLS support (additional sever for Perl). Fix lsp-avy-lens when avy-style is 'de-bruijn or 'words #3554 Fix lsp-avy-lens when lsp-lens-place-position position is end-of-line Add lsp-clojure-trace-enable variable. Add some support for rust-analyzer semantic token modifiers. Highlights mutable and reference variables. Update version for lsp-xml to 0.21.0, adding custom variables for new formatting options. Changes variable lsp-xml-validation-schema to be an alist rather than a boolean. Adds lsp-xml-preferences-quote-style as a replacement for obsolete lsp-xml-format-quotes . Add nil support (additional server for Nix) Add Volar 1.0 support, refactor vue-language-server initializationOptions , and remove multi server that is no longer needed. Ensure that incomplete completions only trigger when retriggering from the same completion session #3028 lsp-kotlin now supports kotlin-ts-mode lsp-elixir now supports elixir-ts-mode and heex-ts-mode Update Magik Add lsp-clients-typescript-prefer-use-project-ts-server custom variable to try to use the project's tsserver.js instead of the one installed by lsp-mode. Add ruff-lsp support (additional server for Python). Update documentation of Vue3 install server Add GLSL support. Move inlay hint support in core from lsp-rust and lsp-javascript . Use lsp-inlay-hint-enable instead of lsp-rust-analyzer-server-display-inlay-hints and lsp-javascript-server-display-inlay-hints Add ShaderLab support. Remove custom variable lsp-inlay-hint-enum-format since LSP Specification 3.17 only has type and parameter hint kinds. Add Semgrep support Add AWK language server support. Add support for scala-ts-mode . Drop support for emacs 26.3 Add [ https://github.com/rubocop/rubocop ][RuboCop built-in language server]] for linting and formatting Ruby code. Add Move language server support. Add mdx support using mdx-language-server","title":"Unreleased 8.0.1"},{"location":"page/CHANGELOG/#release-800","text":"Add lsp-clients-angular-node-get-prefix-command to get the Angular server from another location which is still has /lib/node_modules in it. Set lsp-clients-angular-language-server-command after the first connection to speed up subsequent connections. Add lsp-sql-execute-paragraph to execute the current paragraph (like sql-send-paragraph ). Breaking change: bindings for commands under s (like lsp-workspace-shutdown ) were moved under w for better compatibility with Spacemacs removed lsp-print-performance Add support for insert/replace when performing completion. When using company pressing C-u RET will perform the alternative action (the default is replace, but can be changed). Add lsp-after-apply-edits-hook that run after every workspace edit is applied. Safe renamed lsp-diagnose to lsp-doctor . Add lsp-modeline-code-actions-segments for a better customization. Add Lua Language Server , Lua-LSP and improve EmmyLua. Add configuration settings for elixir-ls. Add Nix support. Add Racket support. Provided automatic installers for `lsp-clojure` (`clojure-lsp`). Provided automatic installers for clangd. Added lsp-modeline-workspace-status-mode and option to disable it via lsp-modeline-workspace-status-enable . Automatically download XML language server Lemminx Add Vala support. Add Sorbet Language Server for typechecking Ruby code. Add Elixir test lenses support. Enable headerline breadcrumb by default Add Steep Language Server for typechecking Ruby code. Rename semantic highlighting -> semantic tokens. Add Phpactor Language server Add lsp-headerline-breadcrumb-icons-enable to disable breadcrumb icons. Add ActionScript support. Add iedit integration ( documentHighlights ) Add an interactive lsp-clangd-find-other-file method that uses the clangd extension to return the corresponding header/cpp file from cpp/header file respectively. Add support for Deno language server . Add lsp-dired-mode - integration between dired and lsp-mode Add Grammarly support. Add D support. Add Zig support. Add an interactive lsp-rust-analyzer-reload-workspace function that reloads the Rust-Analyzer workspace from Cargo.toml Rename lsp-rust-analyzer-cargo-load-out-dirs-from-check to lsp-rust-analyzer-cargo-run-build-scripts to align with upstream. Allow customization of lsp-file-watch-ignored-directories and lsp-file-watch-ignored-files at the root of an lsp workspace. Add client for markdown language server (called unified-language-server ) Add client for SystemVerilog language server (called https://github.com/imc-trading/svlangserver ) Add client for python-lsp-server, pylsp ( https://github.com/python-lsp/python-lsp-server ) Deprecate the Palantir Python language server, pyls. Add 2 rust-analyzer LSP extension function lsp-rust-analyzer-related-tests and lsp-rust-analyzer-open-cargo-toml Work around bug in NPM versions 7.0.0 through 7.4.1 that prevented lsp-install-server from working for NPM-based language servers. Add lsp-lens-place-position with option to place code lens at end of line as default. Add LanguageTool support. Add Beancount support. Add Nix language server support. Update the ESLint server to 2.1.23 Add lsp-eslint-warn-on-ignored-files and lsp-eslint-rules-customizations options to the ESLint client Change interface for configuring ESLint code actions - see documentation of lsp-eslint-code-action-disable-rule-comment and lsp-eslint-code-action-show-documentation for details Add interactive lsp-rust-analyzer-move-item-up and lsp-rust-analyzer-move-item-down functions to move Rust items / statements Fix memory leak when handling server response. #3062 Improve support for SemanticTokens adding support for delta and range semantic tokens. Allow override specific semantic tokens faces per client. Mention new lsp-mode integration package consult-lsp . Reorganized lsp-mode code moving features and clients to separated files. #2067 Add support for signatureHelp using posframe . #1999 Add iedit integration. #2478","title":"Release 8.0.0"},{"location":"page/CHANGELOG/#release-701","text":"Introduced lsp-diagnostics-mode . Safe renamed lsp-flycheck-default-level -> lsp-diagnostics-flycheck-default-level Safe renamed lsp-diagnostic-package -> lsp-diagnostics-provider Dropped support for company-lsp , the suggested provider is company-capf . Moved completion features to lsp-completion.el Safe renamed lsp-prefer-capf -> lsp-completion-provider Safe renamed lsp-enable-completion-at-point -> lsp-completion-enable","title":"Release 7.0.1"},{"location":"page/CHANGELOG/#release-70","text":"Support for new language server - Shttps://github.com/lighttiger2505/sqls (thanks to @v2okimochi) Provided automatic installers for elp/css/bash/purescript(thanks to @kiennq) Configurable Rust Analyzer inlay face via lsp-rust-analyzer-inlay-face . Add lsp-headerline-breadcrumb-mode which shows a breadcrumb with the document symbols on headerline when enabled. Add lsp-modeline-code-actions-mode which shows code actions on modeline when enabled. Support for Theia-based semantic highlighting has been removed in favor of the semanticTokens protocol specified by LSP 3.16. To enable it, set lsp-enable-semantic-highlighting to t . lsp-metals moved into a separate repo https://github.com/emacs-lsp/lsp-metals Breaking change: use alist instead of hast-tables for lsp-gopls-env and lsp-yaml-schemas . Add lsp-gopls-codelens defcustom to configure codelenses used for golang. Added lsp-diagnose to help users verify their performance related settings Created new website https://emacs-lsp.github.io/lsp-mode/ (thanks to @ericdallo) Implemented special handling of Clangd echo area. Added setting to disable additional text edits ( lsp-completion-enable-additional-text-edit ). Added setting to disable text detail ( lsplsp-completion-show-detail ). Add serenata language server support (thanks to @Sasanidas) Various capf improments - better handling of partial results, support for try-completions, improved responsibility, optimized filtering/sorting, etc. Remove Elixir JakeBecker support (no longer supported) Support semantic tokens protocol (thanks to @sebastiansturm) Improved flycheck integration for better performance. Implemented client side bindings for the protocol. Fixup Ignore timeouts from willSaveWaitUntil Implemented org-mode support (see https://github.com/emacs-lsp/lsp-mode/blob/master/docs/page/lsp-org.md ) Removed support for Theia semantic highlighting protocol Performed several fixes to make sure lsp-mode is working fine with Emacs 28 native compilation. Add modeline code actions support (thanks to @ericdallo). Enabled by default, use lsp-modeline-code-actions-enable to disable it. Migrated to github actions from travis. Add breadcrumb on headerline (thanks to @ericdallo). Disabled by default, can be enabled via lsp-headerline-breadcrumb-enable Migrated lsp-mode to use plists(thanks to @yyoncho, @kiennq and @ericdallo). lsp-diagnostics-modeline: perf improvement (thanks to @kiennq)","title":"Release 7.0"},{"location":"page/CHANGELOG/#release-63","text":"Implemented company-capf integration. company-lsp is no longer supported. Dropped support for dart language server in favour of dart SDK(breaking) Added verilog support for LSP using hdl-checker Implemented call hierarchy support (available in lsp-treemacs ) Implemented support for ESLint language server. ocmalmerlin-lsp moved to ocaml-lsp-server(breaking) Added New VHDL language server https://github.com/kraigher/rust_hdl#configuration Add Nim language server integration Implement automatic downloading facilities and implemented auto-download for typescript-language-server , javascript-typescript-stdio and json-language-server . Implement metals decoration protocol Send metals/didFocusTextDocument notification on buffer change Add default keybindings and which-key integration Add support for Dhall language server Implemented debug adapter protocol support for metals Add CMake language server integration Add rust-analyzer runnables support Implemented rust-analyzer inlay hints Support pyenv for pyls Add clang-tidy specific Flycheck error explainer for the lsp checker Improve lsp-mode completion performance by suppressing non completion related features when completion is active. lsp-json: Enable formatter provider Accommodate the new :end-column and :end-column from flycheck Implement status bar for diagnostics lsp-diagnostics-modeline-mode Auto install of the html-language-server Flycheck support for diagnostic tags (3.15 spec). Adding support for GDScript language server used view mode for metals doctor buffer add texlab as tex LSP server Started new set of integration tests without using ecukes Support \"only\" param when requesting code actions Add Perl-LanguageServer support add support robot-framework language server. Implement deferred semantic highlighting Change default transport for erlang ls to stdio dart language server moved into separate repo https://github.com/emacs-lsp/lsp-dart Activate flow language server if there is flow tag in file or .flowconfig in project Add purescript-language-server (#1596) Process the $/progress messages from LSP 3.15 Display the first line of MarkupContent in eldoc (#1607) Perform willSaveWaitUntil synchronously and with shorter timeout Display images when rendering markdown(useful for latex language servers). Increase lsp-idle-delay to 0.5 Support bash language server glob pattern option (#1594) Use pagebreaks for lsp-describe-thing-at-point lsp-mode: Eliminate quadratic-time index-building for imenu. (#1616)","title":"Release 6.3"},{"location":"page/CHANGELOG/#release-62","text":"Support dynamic rename registration Add basic support for style semantic highlighting Added Haxe language server integration Add C#-support via Roslyn. Add emmy lua support Enable plugins in typescript language server. 1079 Provide support for Ada Language server Implement right click support in lsp-mode buffers. Added built-in support for Rust Analyzer . Added support for HDL Checker server to lsp-vhdl Added support for Terraform language server. Added support for R language server (#1182) Added support for passing environment variables to language servers (#1184) Speedup lsp-mode's JSONRPC processing (\\~2 times) Add cancel-token to lsp-request-async Implement unified way to handle recurring lsp features Added support for powershell language server. Implemented inlay hints for Rust Analyzer (thanks to brotzeit ). Implemented automatic installation for C# language server. Reimplemented textDocument/signatureHelp - now the signature is displayed in lv buffer. Cancel sync requests when presssing C-g during the request. Use c-basic-offset when in cc-mode . Add support for Crystal via scry (#1218). Implement textDocument/documentColor support.","title":"Release 6.2"},{"location":"page/CHANGELOG/#release-61","text":"","title":"Release 6.1"},{"location":"page/CHANGELOG/#support-for-new-languageslanguage-servers","text":"Kotlin Language Server (Thanks to Jon Carr) gopls Language Server for Go XML Language Server (lsp4xml) Hack (using HHVM ) Intelephense for PHP clojure-lsp for Clojure/ClojureScipt (Thanks to Dario Benedek Fazekas) elmLS for Elm (Thanks to Daniel-V) FsAutoComplete for F# (Thanks to Reed Mullanix) Added Erlang support via erlang ls Added Dockerfile support via dockerfile-language-server-nodejs","title":"Support for new languages/language servers:"},{"location":"page/CHANGELOG/#new-logging-options","text":"lsp-mode now logs to buffer *lsp-log* , instead of *Messages* . This can be controlled with the variable lsp-log-max (Thanks to Thomas Fini Hansen). If lsp-print-performance is non-nil, lsp-mode will log a corresponding performance trace to *lsp-log* for every message to and from the server. The variable lsp-print-io , when non-nil will cause lsp-mode to log all messages to and from the server to a unique *lsp-io* buffer for every project root. These logs can be saved to a file and viewed using the LSP Inspector .","title":"New logging options"},{"location":"page/CHANGELOG/#lsp-methods","text":"Add support for textDocument/prepareRename . If supported by the language server, all renaming operations will be tested for validity. Add support for file watches . Add support for CodeAction literals . Add API level support for folding ranges . Folding support for origami.el support is implemented by package lsp-origami . Support document links . This can be controlled using the variable lsp-enable-links . Support resource operations (edits sent from the language server can now create/modify/remove files and directories). Add support for workspace/configuration . Add new function lsp-disconnect . Added lsp-find-definition-mouse and bound to C- Added lsp-extend-selection as a frontend of new LSP method textDocument/extendSelection","title":"LSP Methods"},{"location":"page/CHANGELOG/#other-changes","text":"Add project logo (thanks to Jon Carr). Created an integration test suite for lsp-mode (See directory features ). If available, using the native JSON API introduced in Emacs 27.1. Tramp implementation now uses TRAMP process instead of TCP sockets (Thanks to Karsten Patzwaldt). LSP autoconfiguration adds company-lsp to the list of company backends instead of overriding it. Add lsp-mode-map . Add menu bar entries for lsp-mode . Perform before save operations ( textDocument/willSaveWaitUntil ) asynchronously. imenu support is now handled asynchronously (Thanks to Dario Gjorgjevski). Added option :none for lsp-prefer-flymake , which disabled both Flymake and Flycheck support. Changed flymake to report the errors immediately after they arrive instead of waiting flymake to call lsp-mode . Add debounce when server does not support incremental updates. Add hook lsp-after-uninitialized-hook , which stores the list of functions called after a language server has been uninitialized. Add variable lsp-symbol-highlighting-skip-current , which lets the user skip the current symbol when a given symbol is being highlighted. Add variable lsp-enabled-clients , which lets users set which defined clients are allowed to be used. Support multiple signatures while displaying eldoc text. Add variable lsp-signature-render-all , which when non-nil forces lsp-mode to only show the current active signature. Expose configuration settings for various language servers. Language servers can now be disabled with the variable lsp-disabled-clients . Improved applying changes speed. Fixed xref support for emacs 27+ Implemented automatic installation for F# language server. Added Emacs 26.x to CI Fixed handling of stderr when running over TRAMP . Implemented support for running the language server in Docker container over local files.","title":"Other changes"},{"location":"page/CHANGELOG/#release-60","text":"lsp-mode now have single entry point lsp for all language and based on the major mode starts the corresponding language servers. Added flymake integration. lsp automatically enables and configures company-lsp , lsp-ui , yasnippet , or flymake if they are present so no additional configuration is needed except installing the packages. That behavior could be disabled by setting lsp-auto-configure to nil . lsp-mode ships with several predefined servers located in lsp-clients.el which does not require additional package. For the more complex Language Servers like Eclipse JDT , ccls , cquery and haskell we still require separate package due to relatively high code base. lsp-mode handles automatically server failures by asking the user whether he/she wants to restart the server. introduced new command lsp-describe-session which replaces the existing one lsp-capabilities . The command lists the folders that are part of the workspace and the servers that are associated with the corresponding folder. lsp-mode displays information about the running server and it's status in the modeline. lsp-define-stdio-client and lsp-define-tcp-client are replaced with lsp-register-client lsp rely on projectile or project.el now only for suggesting project root. Once you open new file in a project and start lsp it will provide several options(import project, blacklist project, select other directory root). Once you select a root it will be persisted and used for the next sessions. support for multiple language servers per single file and workspace. changed lsp-mode settings to more sensible defaults. Removed all synchronous calls from the server startup. Improved multi-folder support. added backends for: Bash, C++, CSS, Dart, Elixir, Fortran, Go, Groovy, HTML, Javascript/Typescript, Javascript/Typescript, Ocaml, PHP, Python, Ruby, Rust, Vue, Flow","title":"Release 6.0"},{"location":"page/adding-new-language/","text":"Adding support for languages # Registering server # Here it is the minimal configuration that is needed for new language server registration. Refer to the documentation of lsp-mode.el for the additional settings supported on registration time. lsp-language-id-configuration must be updated to contain the corresponding mode -> language id - in this case (python-mode . \"python\") ( defvar lsp-language-id-configuration ' ( ... ( python-mode . \"python\" ) ... )) ;; if you are adding the support for your language server in separate repo use ;; (add-to-list 'lsp-language-id-configuration '(python-mode . \"python\")) ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection \"pyls\" ) :activation-fn ( lsp-activate-on \"python\" ) :server-id 'pyls )) lsp-mode is using lsp-language-id-configuration to determine what is the buffer language. When the major-mode is not sufficient to determine the language (e.g. web-mode is used for javascript , html , and css ) you can put regex. Note: In the above example, when a new client is created using make-lsp-client , a new connection to the language server is created using lsp-stdio-connection . Please carefully check its documentation, as the function checks for various things (e.g. testing for the executable in PATH) and handles respective errors. Often while adding a server, the LSP client author might do these checks themselves, but without handling the errors correctly. This leads to features like lsp-install-server breaking for other users; e.g. see this issue . This is a common mistake that keeps reoccurring. Here's an example of how to set up a custom language server in your init.el file: ;; Use shopify-cli / theme-check-language-server for Shopify's liquid syntax ( with-eval-after-load 'lsp-mode ( add-to-list 'lsp-language-id-configuration ' ( shopify-mode . \"shopify\" )) ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection \"theme-check-language-server\" ) :activation-fn ( lsp-activate-on \"shopify\" ) :server-id 'theme-check ))) Note: This example assumes that you've already set up a major mode of your own either by deriving it from web-mode or perhaps by writing it yourself. If the language server supports environment variables to control additional behavior, you can register that by using the :environment-fn function, like the Bash language client does: ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection ' ( \"bash-language-server\" \"start\" )) :activation-fn ( lsp-activate-on \"shellscript\" ) :priority -1 :environment-fn ( lambda () ' (( \"EXPLAINSHELL_ENDPOINT\" . lsp-bash-explainshell-endpoint ) ( \"HIGHLIGHT_PARSING_ERRORS\" . lsp-bash-highlight-parsing-errors ))) :server-id 'bash-ls )) lsp-bash-explainshell-endpoint and lsp-bash-highlight-parsing-errors are language client defcustom that expose supported server environment settings in a type-safe way. If you change any of those variables, restart the language server with lsp-restart-workspace for the changes to be applied. Also, if new client support customizing language server path. It's recommended to make a wrapper function so the user can customize the value even after the client has been loaded. ( defcustom lsp-tex-executable \"digestif\" \"Command to start the Digestif language server.\" :group 'lsp-tex :risky t :type 'file ) ( lsp-register-client ( make-lsp-client ;; instead of `:new-connection (lsp-stdio-connection lsp-text-executable)` use :new-connection ( lsp-stdio-connection ( lambda () lsp-text-executable )) :activation-fn ( lsp-activate-on \"plaintex\" \"latex\" ) :priority -1 :server-id 'digestif )) Sections # lsp-mode provides tools to bridge emacs defcustom as a language configuration sections properties(see specification workspace/configuration ). In addition you may use lsp-generate-settings from Generate Settings script to generate lsp-defcustom from package.json VScode plugin manifest. Example: ( lsp-defcustom lsp-foo-language-server-property \"bar\" \"Demo property.\" :group 'foo-ls :lsp-path \"foo.section.property\" ) ( lsp-configuration-section \"foo\" ) ;; => ((\"foo\" (\"settings\" (\"property\" . \"bar\")))) Documentation # Add the new language server to the lsp-clients.json file sorted by the full-name key alphabetically. Create a new navigation entry in mkdocs.yml file.","title":"Adding new language"},{"location":"page/adding-new-language/#adding-support-for-languages","text":"","title":"Adding support for languages"},{"location":"page/adding-new-language/#registering-server","text":"Here it is the minimal configuration that is needed for new language server registration. Refer to the documentation of lsp-mode.el for the additional settings supported on registration time. lsp-language-id-configuration must be updated to contain the corresponding mode -> language id - in this case (python-mode . \"python\") ( defvar lsp-language-id-configuration ' ( ... ( python-mode . \"python\" ) ... )) ;; if you are adding the support for your language server in separate repo use ;; (add-to-list 'lsp-language-id-configuration '(python-mode . \"python\")) ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection \"pyls\" ) :activation-fn ( lsp-activate-on \"python\" ) :server-id 'pyls )) lsp-mode is using lsp-language-id-configuration to determine what is the buffer language. When the major-mode is not sufficient to determine the language (e.g. web-mode is used for javascript , html , and css ) you can put regex. Note: In the above example, when a new client is created using make-lsp-client , a new connection to the language server is created using lsp-stdio-connection . Please carefully check its documentation, as the function checks for various things (e.g. testing for the executable in PATH) and handles respective errors. Often while adding a server, the LSP client author might do these checks themselves, but without handling the errors correctly. This leads to features like lsp-install-server breaking for other users; e.g. see this issue . This is a common mistake that keeps reoccurring. Here's an example of how to set up a custom language server in your init.el file: ;; Use shopify-cli / theme-check-language-server for Shopify's liquid syntax ( with-eval-after-load 'lsp-mode ( add-to-list 'lsp-language-id-configuration ' ( shopify-mode . \"shopify\" )) ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection \"theme-check-language-server\" ) :activation-fn ( lsp-activate-on \"shopify\" ) :server-id 'theme-check ))) Note: This example assumes that you've already set up a major mode of your own either by deriving it from web-mode or perhaps by writing it yourself. If the language server supports environment variables to control additional behavior, you can register that by using the :environment-fn function, like the Bash language client does: ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection ' ( \"bash-language-server\" \"start\" )) :activation-fn ( lsp-activate-on \"shellscript\" ) :priority -1 :environment-fn ( lambda () ' (( \"EXPLAINSHELL_ENDPOINT\" . lsp-bash-explainshell-endpoint ) ( \"HIGHLIGHT_PARSING_ERRORS\" . lsp-bash-highlight-parsing-errors ))) :server-id 'bash-ls )) lsp-bash-explainshell-endpoint and lsp-bash-highlight-parsing-errors are language client defcustom that expose supported server environment settings in a type-safe way. If you change any of those variables, restart the language server with lsp-restart-workspace for the changes to be applied. Also, if new client support customizing language server path. It's recommended to make a wrapper function so the user can customize the value even after the client has been loaded. ( defcustom lsp-tex-executable \"digestif\" \"Command to start the Digestif language server.\" :group 'lsp-tex :risky t :type 'file ) ( lsp-register-client ( make-lsp-client ;; instead of `:new-connection (lsp-stdio-connection lsp-text-executable)` use :new-connection ( lsp-stdio-connection ( lambda () lsp-text-executable )) :activation-fn ( lsp-activate-on \"plaintex\" \"latex\" ) :priority -1 :server-id 'digestif ))","title":"Registering server"},{"location":"page/adding-new-language/#sections","text":"lsp-mode provides tools to bridge emacs defcustom as a language configuration sections properties(see specification workspace/configuration ). In addition you may use lsp-generate-settings from Generate Settings script to generate lsp-defcustom from package.json VScode plugin manifest. Example: ( lsp-defcustom lsp-foo-language-server-property \"bar\" \"Demo property.\" :group 'foo-ls :lsp-path \"foo.section.property\" ) ( lsp-configuration-section \"foo\" ) ;; => ((\"foo\" (\"settings\" (\"property\" . \"bar\"))))","title":"Sections"},{"location":"page/adding-new-language/#documentation","text":"Add the new language server to the lsp-clients.json file sorted by the full-name key alphabetically. Create a new navigation entry in mkdocs.yml file.","title":"Documentation"},{"location":"page/faq/","text":"FAQ # How do I troubleshoot \"Server FOO-LS:pid exited with status signal. Do you want to restart it? (y or n)\" ? # This message indicates that the language server has crashed for some reason. You may check the server stderr which is *FOO-LS::stderr* . If you get this try to run the exact command that lsp-mode is running in the terminal. You may find it in *lsp-log* buffer. How to configure a server with local variables? # Add lsp server call to hack-local-variables-hook which runs right after the local variables are loaded. ( add-hook 'hack-local-variables-hook ( lambda () ( when ( derived-mode-p 'XXX-mode ) ( lsp )))) I have multiple language servers registered for language FOO. Which one will be used when opening a project? # The one with highest priority wins. Servers defined in lsp-mode tend to have lower priority than the external packages (priority 0 if unspecified). If a server is registered with :add-on? flag set to t it will be started in parallel to the other servers that are registered for the current mode. If the server that you want to use is not with the highest priority you may use lsp-disabled-clients to disable the server with higher priority or use lsp-enabled-clients to enable only the servers you want to use. In order to find the server ids you may check *lsp-log* buffer. I have multiple language servers for language FOO and I want to select the server per project, what can I do? # You may create dir-local for each of the projects and specify list of lsp-enabled-clients . This will narrow the list of the clients that are going to be tested for the project. The completion does not work fine and inserts arguments and placeholders, what I am doing wrong? # make sure you have installed yasnippet and you have yasnippet minor mode enabled. I am getting \"Package \u2018spinner-1.7.3\u2019 is unavailable\" when trying to install lsp-mode . # This is caused by GPG keys used by the ELPA package manager not being up to date. You may fix by installing: gnu-elpa-keyring-update The flycheck does not work in typescript , html and javascript blocks in vue-mode . How to fix that? # This is caused by the fact that vue-mode uses multiple major modes in single file and the lsp-ui checker may not associated with the major mode at point. You could fix that by adding the following lines to your config. ( with-eval-after-load 'lsp-mode ( mapc #' lsp-flycheck-add-mode ' ( typescript-mode js-mode css-mode vue-html-mode ))) I have disabled snippets and Rust Analyzer server inserts redundant $0 when performing completion? # Rust Analyzer does not support disabling snippets - see https://github.com/rust-analyzer/rust-analyzer/issues/2518 How do I force lsp-mode to forget the workspace folders for multi root servers so the workspace folders are added on demand? # Use the following snippet: ( advice-add 'lsp :before ( lambda ( &rest _args ) ( eval ' ( setf ( lsp-session-server-id->folders ( lsp-session )) ( ht ))))) When using clojure with clojure-lsp lsp-mode is interfering with typing (e. g. deleting whitespace while typing), how to fix that? # The issue is caused by clojure-lsp server being more aggressive with formatting(deleting whitespaces) and aggressive-indent-mode being on and calling it while typing. The solution is either to disable aggressive-indent-mode or to disable lsp-mode formatting via lsp-enable-indentation . How do I disable automatic installation? # ``` elisp ( setq lsp - enable - suggest - server - download nil ) ```","title":"FAQ"},{"location":"page/faq/#faq","text":"","title":"FAQ"},{"location":"page/faq/#how-do-i-troubleshoot-server-foo-lspid-exited-with-status-signal-do-you-want-to-restart-it-y-or-n","text":"This message indicates that the language server has crashed for some reason. You may check the server stderr which is *FOO-LS::stderr* . If you get this try to run the exact command that lsp-mode is running in the terminal. You may find it in *lsp-log* buffer.","title":"How do I troubleshoot \"Server FOO-LS:pid exited with status signal. Do you want to restart it? (y or n)\"?"},{"location":"page/faq/#how-to-configure-a-server-with-local-variables","text":"Add lsp server call to hack-local-variables-hook which runs right after the local variables are loaded. ( add-hook 'hack-local-variables-hook ( lambda () ( when ( derived-mode-p 'XXX-mode ) ( lsp ))))","title":"How to configure a server with local variables?"},{"location":"page/faq/#i-have-multiple-language-servers-registered-for-language-foo-which-one-will-be-used-when-opening-a-project","text":"The one with highest priority wins. Servers defined in lsp-mode tend to have lower priority than the external packages (priority 0 if unspecified). If a server is registered with :add-on? flag set to t it will be started in parallel to the other servers that are registered for the current mode. If the server that you want to use is not with the highest priority you may use lsp-disabled-clients to disable the server with higher priority or use lsp-enabled-clients to enable only the servers you want to use. In order to find the server ids you may check *lsp-log* buffer.","title":"I have multiple language servers registered for language FOO. Which one will be used when opening a project?"},{"location":"page/faq/#i-have-multiple-language-servers-for-language-foo-and-i-want-to-select-the-server-per-project-what-can-i-do","text":"You may create dir-local for each of the projects and specify list of lsp-enabled-clients . This will narrow the list of the clients that are going to be tested for the project.","title":"I have multiple language servers for language FOO and I want to select the server per project, what can I do?"},{"location":"page/faq/#the-completion-does-not-work-fine-and-inserts-arguments-and-placeholders-what-i-am-doing-wrong","text":"make sure you have installed yasnippet and you have yasnippet minor mode enabled.","title":"The completion does not work fine and inserts arguments and placeholders, what I am doing wrong?"},{"location":"page/faq/#i-am-getting-package-spinner-173-is-unavailable-when-trying-to-install-lsp-mode","text":"This is caused by GPG keys used by the ELPA package manager not being up to date. You may fix by installing: gnu-elpa-keyring-update","title":"I am getting \"Package \u2018spinner-1.7.3\u2019 is unavailable\" when trying to install lsp-mode."},{"location":"page/faq/#the-flycheck-does-not-work-in-typescript-html-and-javascript-blocks-in-vue-mode-how-to-fix-that","text":"This is caused by the fact that vue-mode uses multiple major modes in single file and the lsp-ui checker may not associated with the major mode at point. You could fix that by adding the following lines to your config. ( with-eval-after-load 'lsp-mode ( mapc #' lsp-flycheck-add-mode ' ( typescript-mode js-mode css-mode vue-html-mode )))","title":"The flycheck does not work in typescript, html and javascript blocks in vue-mode. How to fix that?"},{"location":"page/faq/#i-have-disabled-snippets-and-rust-analyzer-server-inserts-redundant-0-when-performing-completion","text":"Rust Analyzer does not support disabling snippets - see https://github.com/rust-analyzer/rust-analyzer/issues/2518","title":"I have disabled snippets and Rust Analyzer server inserts redundant $0 when performing completion?"},{"location":"page/faq/#how-do-i-force-lsp-mode-to-forget-the-workspace-folders-for-multi-root-servers-so-the-workspace-folders-are-added-on-demand","text":"Use the following snippet: ( advice-add 'lsp :before ( lambda ( &rest _args ) ( eval ' ( setf ( lsp-session-server-id->folders ( lsp-session )) ( ht )))))","title":"How do I force lsp-mode to forget the workspace folders for multi root servers so the workspace folders are added on demand?"},{"location":"page/faq/#when-using-clojure-with-clojure-lsp-lsp-mode-is-interfering-with-typing-e-g-deleting-whitespace-while-typing-how-to-fix-that","text":"The issue is caused by clojure-lsp server being more aggressive with formatting(deleting whitespaces) and aggressive-indent-mode being on and calling it while typing. The solution is either to disable aggressive-indent-mode or to disable lsp-mode formatting via lsp-enable-indentation .","title":"When using clojure with clojure-lsp lsp-mode is interfering with typing (e. g. deleting whitespace while typing), how to fix that?"},{"location":"page/faq/#how-do-i-disable-automatic-installation","text":"``` elisp ( setq lsp - enable - suggest - server - download nil ) ```","title":"How do I disable automatic installation?"},{"location":"page/file-watchers/","text":"File watchers # When some of the workspaces that are active in the current project requests file notifications via workspace/didChangeWatchedFiles , lsp-mode will start monitoring each of the folders in the workspace for changes to notify the server about that. In case you have issues with file watchers, first, check what folders are being watched, they are logged on *lsp-log* when the server starts, then you may consider check the below: If your project has some specific folder that should not be watched, you can exclude it with: ( with-eval-after-load 'lsp-mode ( add-to-list 'lsp-file-watch-ignored-directories \"[/\\\\\\\\]\\\\.my-folder\\\\'\" ) ;; or ( add-to-list 'lsp-file-watch-ignored-files \"[/\\\\\\\\]\\\\.my-files\\\\'\" )) Increase the file watch warning threshold, the default is 1000 , (setq lsp-file-watch-threshold 2000) If the folder is some kind of cache folder or something that should always be excluded for everyone, consider opening a pull request or informing the maintainers to add to the common regex . In last case, disable file watchers with (setq lsp-enable-file-watchers nil) (you may use dir-locals).","title":"File watchers"},{"location":"page/file-watchers/#file-watchers","text":"When some of the workspaces that are active in the current project requests file notifications via workspace/didChangeWatchedFiles , lsp-mode will start monitoring each of the folders in the workspace for changes to notify the server about that. In case you have issues with file watchers, first, check what folders are being watched, they are logged on *lsp-log* when the server starts, then you may consider check the below: If your project has some specific folder that should not be watched, you can exclude it with: ( with-eval-after-load 'lsp-mode ( add-to-list 'lsp-file-watch-ignored-directories \"[/\\\\\\\\]\\\\.my-folder\\\\'\" ) ;; or ( add-to-list 'lsp-file-watch-ignored-files \"[/\\\\\\\\]\\\\.my-files\\\\'\" )) Increase the file watch warning threshold, the default is 1000 , (setq lsp-file-watch-threshold 2000) If the folder is some kind of cache folder or something that should always be excluded for everyone, consider opening a pull request or informing the maintainers to add to the common regex . In last case, disable file watchers with (setq lsp-enable-file-watchers nil) (you may use dir-locals).","title":"File watchers"},{"location":"page/gallery/","text":"Gallery # RUST Completion # Typescript references using lsp-ui # Debugging Python using dap-mode # Call hierarchy via ccls # Metals Doctor # Flutter debugging # Semantic highlighting # As provided by clangd, built from unreleased 10.0 branch, in this screenshot, all other font-locking has been disabled (hence no syntax highlighting of comments or basic keywords such as ~auto~): clang-tidy error explanations # From the clangd language server:","title":"Gallery"},{"location":"page/gallery/#gallery","text":"","title":"Gallery"},{"location":"page/gallery/#rust-completion","text":"","title":"RUST Completion"},{"location":"page/gallery/#typescript-references-using-lsp-ui","text":"","title":"Typescript references using lsp-ui"},{"location":"page/gallery/#debugging-python-using-dap-mode","text":"","title":"Debugging Python using dap-mode"},{"location":"page/gallery/#call-hierarchy-via-ccls","text":"","title":"Call hierarchy via ccls"},{"location":"page/gallery/#metals-doctor","text":"","title":"Metals Doctor"},{"location":"page/gallery/#flutter-debugging","text":"","title":"Flutter debugging"},{"location":"page/gallery/#semantic-highlighting","text":"As provided by clangd, built from unreleased 10.0 branch, in this screenshot, all other font-locking has been disabled (hence no syntax highlighting of comments or basic keywords such as ~auto~):","title":"Semantic highlighting"},{"location":"page/gallery/#clang-tidy-error-explanations","text":"From the clangd language server:","title":"clang-tidy error explanations"},{"location":"page/installation/","text":"Installation # You need first lsp-mode , that is a Emacs client for an LSP server. Then you need to install the specific LSP server for your language. Finally, call M-x lsp or use the corresponding major mode hook to autostart the server. Client # lsp-mode has multiple ways to install it. Manually via MELPA # The recommended way to install lsp-mode is via package.el - the built-in package manager in Emacs. lsp-mode is available on the two major package.el community maintained repos - MELPA Stable and MELPA . M-x package-install RET lsp-mode RET When updating your packages with package.el , we recommend the following procedure: 1. Delete your LSP - related packages 2. Restart Emacs 3. Install the new versions of the packages . Doom Emacs # Doom Emacs has a module to install and configure lsp-mode automatically, you just need to add lsp below :tools in your init.el . To add lsp-mode support to some language, you can add the +lsp flag to the language you want. Example: init.el ... :lang ( clojure +lsp ) ( dart +lsp ) ( java +lsp ) ... For Doom Emacs module flags and more information, check the doom-emacs lsp module documentation . Spacemacs # lsp-mode is included in spacemacs develop branch. Add lsp to dotspacemacs-configuration-layers and configure the language that you want to use to be backed by lsp backend. Vanilla Emacs # You could go minimal and use lsp-mode as it is without external packages with the built-in flymake and completion-at-point or you could install the following extensions for better experience: lsp-ui for fancy sideline, popup documentation, VScode-like peek UI, etc. flycheck if you prefer the more popular flycheck over renewed flymake . lsp-mode will automatically pick it up. company-mode for completion popups. lsp-treemacs for various tree based UI controls (symbols, errors overview, call hierarchy, etc.) helm-lsp provides on type completion alternative of xref-apropos using helm . lsp-ivy provides on type completion alternative of xref-apropos using ivy . dap-mode if your language is supported by the debugger. ;; if you want to change prefix for lsp-mode keybindings. ( setq lsp-keymap-prefix \"s-l\" ) ( require 'lsp-mode ) ( add-hook 'XXX-mode-hook #' lsp ) Where XXX could be major mode like python , java , c++ . Alternatively, if you want to minimize your configuration you may use prog-mode-hook . In case you do that, lsp will try to start for each programming mode and echo a message when there is no client registered for the current mode or if the corresponding server is not present. In addition, lsp-mode will automatically detect and configure lsp-ui and company-mode . To turn off that behavior you could set lsp-auto-configure to nil . To defer LSP server startup (and DidOpen notifications) until the buffer is visible you can use lsp-deferred instead of lsp : ( add-hook 'XXX-mode-hook #' lsp-deferred ) use-package # Replace (require 'lsp-mode) with the following if you use use-package. ( use-package lsp-mode :init ;; set prefix for lsp-command-keymap (few alternatives - \"C-l\", \"C-c l\") ( setq lsp-keymap-prefix \"C-c l\" ) :hook ( ;; replace XXX-mode with concrete major-mode(e. g. python-mode) ( XXX-mode . lsp ) ;; if you want which-key integration ( lsp-mode . lsp-enable-which-key-integration )) :commands lsp ) ;; optionally ( use-package lsp-ui :commands lsp-ui-mode ) ;; if you are helm user ( use-package helm-lsp :commands helm-lsp-workspace-symbol ) ;; if you are ivy user ( use-package lsp-ivy :commands lsp-ivy-workspace-symbol ) ( use-package lsp-treemacs :commands lsp-treemacs-errors-list ) ;; optionally if you want to use debugger ( use-package dap-mode ) ;; (use-package dap-LANGUAGE) to load the dap adapter for your language ;; optional if you want which-key integration ( use-package which-key :config ( which-key-mode )) To defer LSP server startup (and DidOpen notifications) until the buffer is visible you can use lsp-deferred instead of lsp : ( use-package lsp-mode :hook ( XXX-mode . lsp-deferred ) :commands ( lsp lsp-deferred )) When you are not using package.el to install lsp-mode make sure to put clients folder to the load-path : ;; The path to lsp-mode needs to be added to load-path as well as the ;; path to the `clients' subdirectory. ( add-to-list 'load-path ( expand-file-name \"lib/lsp-mode\" user-emacs-directory )) ( add-to-list 'load-path ( expand-file-name \"lib/lsp-mode/clients\" user-emacs-directory )) Install a language server # For instructions on how to install a server for your language, check the available supported servers .","title":"Installation"},{"location":"page/installation/#installation","text":"You need first lsp-mode , that is a Emacs client for an LSP server. Then you need to install the specific LSP server for your language. Finally, call M-x lsp or use the corresponding major mode hook to autostart the server.","title":"Installation"},{"location":"page/installation/#client","text":"lsp-mode has multiple ways to install it.","title":"Client"},{"location":"page/installation/#manually-via-melpa","text":"The recommended way to install lsp-mode is via package.el - the built-in package manager in Emacs. lsp-mode is available on the two major package.el community maintained repos - MELPA Stable and MELPA . M-x package-install RET lsp-mode RET When updating your packages with package.el , we recommend the following procedure: 1. Delete your LSP - related packages 2. Restart Emacs 3. Install the new versions of the packages .","title":"Manually via MELPA"},{"location":"page/installation/#doom-emacs","text":"Doom Emacs has a module to install and configure lsp-mode automatically, you just need to add lsp below :tools in your init.el . To add lsp-mode support to some language, you can add the +lsp flag to the language you want. Example: init.el ... :lang ( clojure +lsp ) ( dart +lsp ) ( java +lsp ) ... For Doom Emacs module flags and more information, check the doom-emacs lsp module documentation .","title":"Doom Emacs"},{"location":"page/installation/#spacemacs","text":"lsp-mode is included in spacemacs develop branch. Add lsp to dotspacemacs-configuration-layers and configure the language that you want to use to be backed by lsp backend.","title":"Spacemacs"},{"location":"page/installation/#vanilla-emacs","text":"You could go minimal and use lsp-mode as it is without external packages with the built-in flymake and completion-at-point or you could install the following extensions for better experience: lsp-ui for fancy sideline, popup documentation, VScode-like peek UI, etc. flycheck if you prefer the more popular flycheck over renewed flymake . lsp-mode will automatically pick it up. company-mode for completion popups. lsp-treemacs for various tree based UI controls (symbols, errors overview, call hierarchy, etc.) helm-lsp provides on type completion alternative of xref-apropos using helm . lsp-ivy provides on type completion alternative of xref-apropos using ivy . dap-mode if your language is supported by the debugger. ;; if you want to change prefix for lsp-mode keybindings. ( setq lsp-keymap-prefix \"s-l\" ) ( require 'lsp-mode ) ( add-hook 'XXX-mode-hook #' lsp ) Where XXX could be major mode like python , java , c++ . Alternatively, if you want to minimize your configuration you may use prog-mode-hook . In case you do that, lsp will try to start for each programming mode and echo a message when there is no client registered for the current mode or if the corresponding server is not present. In addition, lsp-mode will automatically detect and configure lsp-ui and company-mode . To turn off that behavior you could set lsp-auto-configure to nil . To defer LSP server startup (and DidOpen notifications) until the buffer is visible you can use lsp-deferred instead of lsp : ( add-hook 'XXX-mode-hook #' lsp-deferred )","title":"Vanilla Emacs"},{"location":"page/installation/#use-package","text":"Replace (require 'lsp-mode) with the following if you use use-package. ( use-package lsp-mode :init ;; set prefix for lsp-command-keymap (few alternatives - \"C-l\", \"C-c l\") ( setq lsp-keymap-prefix \"C-c l\" ) :hook ( ;; replace XXX-mode with concrete major-mode(e. g. python-mode) ( XXX-mode . lsp ) ;; if you want which-key integration ( lsp-mode . lsp-enable-which-key-integration )) :commands lsp ) ;; optionally ( use-package lsp-ui :commands lsp-ui-mode ) ;; if you are helm user ( use-package helm-lsp :commands helm-lsp-workspace-symbol ) ;; if you are ivy user ( use-package lsp-ivy :commands lsp-ivy-workspace-symbol ) ( use-package lsp-treemacs :commands lsp-treemacs-errors-list ) ;; optionally if you want to use debugger ( use-package dap-mode ) ;; (use-package dap-LANGUAGE) to load the dap adapter for your language ;; optional if you want which-key integration ( use-package which-key :config ( which-key-mode )) To defer LSP server startup (and DidOpen notifications) until the buffer is visible you can use lsp-deferred instead of lsp : ( use-package lsp-mode :hook ( XXX-mode . lsp-deferred ) :commands ( lsp lsp-deferred )) When you are not using package.el to install lsp-mode make sure to put clients folder to the load-path : ;; The path to lsp-mode needs to be added to load-path as well as the ;; path to the `clients' subdirectory. ( add-to-list 'load-path ( expand-file-name \"lib/lsp-mode\" user-emacs-directory )) ( add-to-list 'load-path ( expand-file-name \"lib/lsp-mode/clients\" user-emacs-directory ))","title":"use-package"},{"location":"page/installation/#install-a-language-server","text":"For instructions on how to install a server for your language, check the available supported servers .","title":"Install a language server"},{"location":"page/keybindings/","text":"Keybindings # When using lsp-mode most of the features depend on server capabilities. lsp-mode provides default bindings which are dynamically enabled/disabled based on the server functionality. All the commands are configured lsp-command-map which is bound to lsp-keymap-prefix (default s-l ). Keybinding Description s-l w s Entry point for the server startup. s-l w r Restart language server s-l w q Shutdown language server s-l w d Describes current session s-l w D Disconnect the buffer from the language server keeping the server running. s-l = = Ask the server to format this document. s-l = r Ask the server to format the region, or if none is selected, the current line. s-l F a Add new project root to the list of workspace folders. s-l F r Remove project root from the list of workspace folders. s-l F b Remove project root from the workspace blacklist. s-l T l Toggle code-lens overlays. s-l T L Toggle client-server protocol logging. s-l T h Toggle symbol highlighting. s-l T S Toggle minor mode for showing information for current line in sideline. (requires lsp-ui ) s-l T d Toggle minor mode for showing hover information in child frame. (requires lsp-ui ) s-l T s Toggle signature auto activate. s-l T f Toggle on type formatting. s-l T T Toggle global minor mode for synchronizing lsp-mode workspace folders and treemacs projects. (requires lsp-treemacs ) s-l g g Find definitions of the symbol under point. s-l g r Find references of the symbol under point. s-l g i Find implementations of the symbol under point. s-l g t Find type definitions of the symbol under point. s-l g d Find declarations of the symbol under point. s-l g h Show the incoming call hierarchy for the symbol at point. (requires lsp-treemacs ) s-l g a Find all meaningful symbols that match pattern. s-l h h Display the type signature and documentation of the thing at point. s-l h s Activate signature help. s-l h g Trigger display hover information popup and hide it on next typing. s-l r r Rename the symbol (and all references to it). s-l r o Perform the source.organizeImports code action, if available. s-l a a Execute code action. s-l a l Click lsp lens using \u2018avy\u2019 package. s-l a h Highlight symbol at point. s-l G g Peek definitions to the identifier at point. (requires lsp-ui ) s-l G r Peek references to the identifier at point. (requires lsp-ui ) s-l G i Peek implementation locations of the symbol at point. (requires lsp-ui ) s-l G s Peek symbols in the workspace. (requires lsp-ui ) C-u RET When inserting C-u will change the behaviour from insert to replace or vice versa depending on lsp-completion-default-behaviour which-key integration # To enable which-key integration in the active major mode for lsp-mode-map you will need to call the lsp-enable-which-key-integration function. This could be done when lsp-mode starts with the following: ( with-eval-after-load 'lsp-mode ( add-hook 'lsp-mode-hook #' lsp-enable-which-key-integration )) You can also enable which-key integration for all major modes by passing t as a parameter. This is useful for buffers that can use multiple major modes like those using vue-mode .","title":"Keybindings"},{"location":"page/keybindings/#keybindings","text":"When using lsp-mode most of the features depend on server capabilities. lsp-mode provides default bindings which are dynamically enabled/disabled based on the server functionality. All the commands are configured lsp-command-map which is bound to lsp-keymap-prefix (default s-l ). Keybinding Description s-l w s Entry point for the server startup. s-l w r Restart language server s-l w q Shutdown language server s-l w d Describes current session s-l w D Disconnect the buffer from the language server keeping the server running. s-l = = Ask the server to format this document. s-l = r Ask the server to format the region, or if none is selected, the current line. s-l F a Add new project root to the list of workspace folders. s-l F r Remove project root from the list of workspace folders. s-l F b Remove project root from the workspace blacklist. s-l T l Toggle code-lens overlays. s-l T L Toggle client-server protocol logging. s-l T h Toggle symbol highlighting. s-l T S Toggle minor mode for showing information for current line in sideline. (requires lsp-ui ) s-l T d Toggle minor mode for showing hover information in child frame. (requires lsp-ui ) s-l T s Toggle signature auto activate. s-l T f Toggle on type formatting. s-l T T Toggle global minor mode for synchronizing lsp-mode workspace folders and treemacs projects. (requires lsp-treemacs ) s-l g g Find definitions of the symbol under point. s-l g r Find references of the symbol under point. s-l g i Find implementations of the symbol under point. s-l g t Find type definitions of the symbol under point. s-l g d Find declarations of the symbol under point. s-l g h Show the incoming call hierarchy for the symbol at point. (requires lsp-treemacs ) s-l g a Find all meaningful symbols that match pattern. s-l h h Display the type signature and documentation of the thing at point. s-l h s Activate signature help. s-l h g Trigger display hover information popup and hide it on next typing. s-l r r Rename the symbol (and all references to it). s-l r o Perform the source.organizeImports code action, if available. s-l a a Execute code action. s-l a l Click lsp lens using \u2018avy\u2019 package. s-l a h Highlight symbol at point. s-l G g Peek definitions to the identifier at point. (requires lsp-ui ) s-l G r Peek references to the identifier at point. (requires lsp-ui ) s-l G i Peek implementation locations of the symbol at point. (requires lsp-ui ) s-l G s Peek symbols in the workspace. (requires lsp-ui ) C-u RET When inserting C-u will change the behaviour from insert to replace or vice versa depending on lsp-completion-default-behaviour","title":"Keybindings"},{"location":"page/keybindings/#which-key-integration","text":"To enable which-key integration in the active major mode for lsp-mode-map you will need to call the lsp-enable-which-key-integration function. This could be done when lsp-mode starts with the following: ( with-eval-after-load 'lsp-mode ( add-hook 'lsp-mode-hook #' lsp-enable-which-key-integration )) You can also enable which-key integration for all major modes by passing t as a parameter. This is useful for buffers that can use multiple major modes like those using vue-mode .","title":"which-key integration"},{"location":"page/languages/","text":"Languages # On left, you can find all currently supported languages. Some languages have to be installed manually. Others can be installed with M-x lsp-install-server . See the language's page for the supported installation method.","title":"Languages"},{"location":"page/languages/#languages","text":"On left, you can find all currently supported languages. Some languages have to be installed manually. Others can be installed with M-x lsp-install-server . See the language's page for the supported installation method.","title":"Languages"},{"location":"page/lsp-actionscript/","text":"ActionScript # Server # For more information about the LSP server, check as3mxml . Installation # For more instructions on how to install manually, check here . Debugger: Yes # Available configurations # lsp-actionscript-extension-name # Type: string Default: vscode-nextgenas-1.5.0.vsix File name of the extension file from language server. lsp-actionscript-java-path # Type: string Default: java Path of the java executable. lsp-actionscript-option-charset # Type: string Default: UTF8 The charset to use by the ActionScript Language server. lsp-actionscript-sdk-path # Type: string Default: `` Path to supported SDK. See https://github.com/BowlerHatLLC/vscode-as3mxml/wiki/Choose-an-ActionScript-SDK-for-the-current-workspace-in-Visual-Studio-Code. lsp-actionscript-server-download-url # Type: string Default: https://github.com/BowlerHatLLC/vscode-as3mxml/releases/download/v1.5.0/vscode-nextgenas-1.5.0.vsix Automatic download url for lsp-actionscript. lsp-actionscript-server-store-path # Type: file Default: ~/.emacs.d/.cache/lsp/as3mxml The path to the file in which lsp-actionscript will be stored. lsp-actionscript-version # Type: string Default: 1.5.0 Version of ActionScript language server.","title":"ActionScript"},{"location":"page/lsp-actionscript/#actionscript","text":"","title":"ActionScript"},{"location":"page/lsp-actionscript/#server","text":"For more information about the LSP server, check as3mxml .","title":"Server"},{"location":"page/lsp-actionscript/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-actionscript/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-actionscript/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-actionscript/#lsp-actionscript-extension-name","text":"Type: string Default: vscode-nextgenas-1.5.0.vsix File name of the extension file from language server.","title":"lsp-actionscript-extension-name"},{"location":"page/lsp-actionscript/#lsp-actionscript-java-path","text":"Type: string Default: java Path of the java executable.","title":"lsp-actionscript-java-path"},{"location":"page/lsp-actionscript/#lsp-actionscript-option-charset","text":"Type: string Default: UTF8 The charset to use by the ActionScript Language server.","title":"lsp-actionscript-option-charset"},{"location":"page/lsp-actionscript/#lsp-actionscript-sdk-path","text":"Type: string Default: `` Path to supported SDK. See https://github.com/BowlerHatLLC/vscode-as3mxml/wiki/Choose-an-ActionScript-SDK-for-the-current-workspace-in-Visual-Studio-Code.","title":"lsp-actionscript-sdk-path"},{"location":"page/lsp-actionscript/#lsp-actionscript-server-download-url","text":"Type: string Default: https://github.com/BowlerHatLLC/vscode-as3mxml/releases/download/v1.5.0/vscode-nextgenas-1.5.0.vsix Automatic download url for lsp-actionscript.","title":"lsp-actionscript-server-download-url"},{"location":"page/lsp-actionscript/#lsp-actionscript-server-store-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/as3mxml The path to the file in which lsp-actionscript will be stored.","title":"lsp-actionscript-server-store-path"},{"location":"page/lsp-actionscript/#lsp-actionscript-version","text":"Type: string Default: 1.5.0 Version of ActionScript language server.","title":"lsp-actionscript-version"},{"location":"page/lsp-ada/","text":"Ada # Server # For more information about the LSP server, check ada_language_server . Installation # For more instructions on how to install manually, check here . Debugger: Yes (gdb) # Available configurations # lsp-ada-alire-executable # Type: string Default: alr The alire executable to run when a project is detected. lsp-ada-als-executable # Type: file Default: ada_language_server Command to start the Ada language server. lsp-ada-enable-diagnostics # Type: boolean Default: t A boolean to disable diagnostics. Defaults to true. lsp-ada-option-charset # Type: string Default: UTF-8 The charset to use by the Ada Language server. Defaults to UTF-8 . lsp-ada-project-file # Type: string Default: default.gpr Set the project file full path to configure the language server with. The ~ prefix (for the user home directory) is supported. See https://github.com/AdaCore/ada_language_server for a per-project configuration example.","title":"Ada"},{"location":"page/lsp-ada/#ada","text":"","title":"Ada"},{"location":"page/lsp-ada/#server","text":"For more information about the LSP server, check ada_language_server .","title":"Server"},{"location":"page/lsp-ada/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-ada/#debugger-yes-gdb","text":"","title":"Debugger: Yes (gdb)"},{"location":"page/lsp-ada/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ada/#lsp-ada-alire-executable","text":"Type: string Default: alr The alire executable to run when a project is detected.","title":"lsp-ada-alire-executable"},{"location":"page/lsp-ada/#lsp-ada-als-executable","text":"Type: file Default: ada_language_server Command to start the Ada language server.","title":"lsp-ada-als-executable"},{"location":"page/lsp-ada/#lsp-ada-enable-diagnostics","text":"Type: boolean Default: t A boolean to disable diagnostics. Defaults to true.","title":"lsp-ada-enable-diagnostics"},{"location":"page/lsp-ada/#lsp-ada-option-charset","text":"Type: string Default: UTF-8 The charset to use by the Ada Language server. Defaults to UTF-8 .","title":"lsp-ada-option-charset"},{"location":"page/lsp-ada/#lsp-ada-project-file","text":"Type: string Default: default.gpr Set the project file full path to configure the language server with. The ~ prefix (for the user home directory) is supported. See https://github.com/AdaCore/ada_language_server for a per-project configuration example.","title":"lsp-ada-project-file"},{"location":"page/lsp-angular/","text":"Angular # Server # For more information about the LSP server, check vscode-ng-language-service . Installation # npm install -g @angular/language-service@next typescript @angular/language-server For more instructions on how to install manually, check here . Debugger: Not relevant # Available configurations # lsp-clients-angular-language-server-command # Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: nil The command that starts the angular language server. lsp-clients-angular-node-get-prefix-command # Type: string Default: npm config get --global prefix The shell command that returns the path of NodeJS s prefix. Has no effects when lsp-clients-angular-language-server-command` is set.","title":"Angular"},{"location":"page/lsp-angular/#angular","text":"","title":"Angular"},{"location":"page/lsp-angular/#server","text":"For more information about the LSP server, check vscode-ng-language-service .","title":"Server"},{"location":"page/lsp-angular/#installation","text":"npm install -g @angular/language-service@next typescript @angular/language-server For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-angular/#debugger-not-relevant","text":"","title":"Debugger: Not relevant"},{"location":"page/lsp-angular/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-angular/#lsp-clients-angular-language-server-command","text":"Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: nil The command that starts the angular language server.","title":"lsp-clients-angular-language-server-command"},{"location":"page/lsp-angular/#lsp-clients-angular-node-get-prefix-command","text":"Type: string Default: npm config get --global prefix The shell command that returns the path of NodeJS s prefix. Has no effects when lsp-clients-angular-language-server-command` is set.","title":"lsp-clients-angular-node-get-prefix-command"},{"location":"page/lsp-ansible/","text":"Ansible # Server # For more information about the LSP server, check ansible-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET ansible-ls RET . npm i -g @ansible/ansible-language-server Debugger: Not available # Available configurations # lsp-ansible-add-on? # Type: boolean Default: t Make the client add-on so that it works with other language servers. yamlls is a common one. Enabled by default. lsp-ansible-ansible-path # Type: string Default: ansible Path to the ansible executable. $PATH is searched for the executable. lsp-ansible-completion-provide-module-option-aliases # Type: boolean Default: t Toggle alias provider when completing module options. lsp-ansible-completion-provide-redirect-modules # Type: boolean Default: t Toggle redirected module provider when completing modules. lsp-ansible-execution-environment-container-engine # Type: (choice (const auto) (const podman) (const docker)) Default: auto The container engine to be used while running with execution environment. Valid values are auto, podman and docker. For auto it will look for podman then docker. lsp-ansible-execution-environment-container-options # Type: string Default: `` Extra parameters passed to the container engine command. Example: -\u2013net=host lsp-ansible-execution-environment-enabled # Type: boolean Default: nil Enable or disable the use of an execution environment. lsp-ansible-execution-environment-image # Type: string Default: quay.io/ansible/creator-ee:latest Specify the name of the execution environment image. lsp-ansible-execution-environment-pull-arguments # Type: string Default: `` Specify any additional parameters for the pull command. Example: --tls-verify=false lsp-ansible-execution-environment-pull-policy # Type: (choice (const always) (const missing) (const never) (const tag)) Default: missing Specify the image pull policy. Valid values are always, missing, never and tag. Setting always will always pull the image when extension is activated or reloaded. Setting missing will pull if not locally available. Setting never will never pull the image and setting tag will always pull if the image tag is latest , otherwise pull if not locally available. lsp-ansible-execution-environment-volume-mounts # Type: (lsp-repeatable-vector plist) Default: [] Additonnal volumes to mount in container. The value is a vector of plists. Expected properties are: - src: the name of the local volume or path to be mounted within execution environment - dest: the path where the file or directory are mounted in the container - options: the property is optional, and is a comma-separated list of options. Example: ro,Z lsp-ansible-language-server-command # Type: (repeat :tag List of string values string) Default: (ansible-language-server --stdio) The command that starts the ansible language server. lsp-ansible-python-activation-script # Type: string Default: `` Path to a custom activate script. It will be used instead of lsp-ansible-python-interpreter-path to run in a Python virtual environment. lsp-ansible-python-interpreter-path # Type: string Default: `` Path to the python/python3 executable. This setting may be used to make the extension work with ansible and ansible-lint installations in a Python virtual environment. lsp-ansible-use-fully-qualified-collection-names # Type: boolean Default: t Toggles use of fully qualified collection names when inserting a module name. Disabling it will only use FQCNs when necessary, that is when the collection is not configured for the task. lsp-ansible-validation-enabled # Type: boolean Default: t Toggle validation provider. If enabled and ansible-lint is disabled, validation falls back to ansible-playbook --syntax-check. lsp-ansible-validation-lint-arguments # Type: string Default: `` Optional command line arguments to be appended to ansible-lint invocation. See ansible-lint documentation. lsp-ansible-validation-lint-enabled # Type: boolean Default: t Enables/disables use of ansible-lint. lsp-ansible-validation-lint-path # Type: string Default: ansible-lint Path to the ansible-lint executable. $PATH is searched for the executable.","title":"Ansible"},{"location":"page/lsp-ansible/#ansible","text":"","title":"Ansible"},{"location":"page/lsp-ansible/#server","text":"For more information about the LSP server, check ansible-language-server .","title":"Server"},{"location":"page/lsp-ansible/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET ansible-ls RET . npm i -g @ansible/ansible-language-server","title":"Installation"},{"location":"page/lsp-ansible/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ansible/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ansible/#lsp-ansible-add-on","text":"Type: boolean Default: t Make the client add-on so that it works with other language servers. yamlls is a common one. Enabled by default.","title":"lsp-ansible-add-on?"},{"location":"page/lsp-ansible/#lsp-ansible-ansible-path","text":"Type: string Default: ansible Path to the ansible executable. $PATH is searched for the executable.","title":"lsp-ansible-ansible-path"},{"location":"page/lsp-ansible/#lsp-ansible-completion-provide-module-option-aliases","text":"Type: boolean Default: t Toggle alias provider when completing module options.","title":"lsp-ansible-completion-provide-module-option-aliases"},{"location":"page/lsp-ansible/#lsp-ansible-completion-provide-redirect-modules","text":"Type: boolean Default: t Toggle redirected module provider when completing modules.","title":"lsp-ansible-completion-provide-redirect-modules"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-container-engine","text":"Type: (choice (const auto) (const podman) (const docker)) Default: auto The container engine to be used while running with execution environment. Valid values are auto, podman and docker. For auto it will look for podman then docker.","title":"lsp-ansible-execution-environment-container-engine"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-container-options","text":"Type: string Default: `` Extra parameters passed to the container engine command. Example: -\u2013net=host","title":"lsp-ansible-execution-environment-container-options"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-enabled","text":"Type: boolean Default: nil Enable or disable the use of an execution environment.","title":"lsp-ansible-execution-environment-enabled"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-image","text":"Type: string Default: quay.io/ansible/creator-ee:latest Specify the name of the execution environment image.","title":"lsp-ansible-execution-environment-image"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-pull-arguments","text":"Type: string Default: `` Specify any additional parameters for the pull command. Example: --tls-verify=false","title":"lsp-ansible-execution-environment-pull-arguments"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-pull-policy","text":"Type: (choice (const always) (const missing) (const never) (const tag)) Default: missing Specify the image pull policy. Valid values are always, missing, never and tag. Setting always will always pull the image when extension is activated or reloaded. Setting missing will pull if not locally available. Setting never will never pull the image and setting tag will always pull if the image tag is latest , otherwise pull if not locally available.","title":"lsp-ansible-execution-environment-pull-policy"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-volume-mounts","text":"Type: (lsp-repeatable-vector plist) Default: [] Additonnal volumes to mount in container. The value is a vector of plists. Expected properties are: - src: the name of the local volume or path to be mounted within execution environment - dest: the path where the file or directory are mounted in the container - options: the property is optional, and is a comma-separated list of options. Example: ro,Z","title":"lsp-ansible-execution-environment-volume-mounts"},{"location":"page/lsp-ansible/#lsp-ansible-language-server-command","text":"Type: (repeat :tag List of string values string) Default: (ansible-language-server --stdio) The command that starts the ansible language server.","title":"lsp-ansible-language-server-command"},{"location":"page/lsp-ansible/#lsp-ansible-python-activation-script","text":"Type: string Default: `` Path to a custom activate script. It will be used instead of lsp-ansible-python-interpreter-path to run in a Python virtual environment.","title":"lsp-ansible-python-activation-script"},{"location":"page/lsp-ansible/#lsp-ansible-python-interpreter-path","text":"Type: string Default: `` Path to the python/python3 executable. This setting may be used to make the extension work with ansible and ansible-lint installations in a Python virtual environment.","title":"lsp-ansible-python-interpreter-path"},{"location":"page/lsp-ansible/#lsp-ansible-use-fully-qualified-collection-names","text":"Type: boolean Default: t Toggles use of fully qualified collection names when inserting a module name. Disabling it will only use FQCNs when necessary, that is when the collection is not configured for the task.","title":"lsp-ansible-use-fully-qualified-collection-names"},{"location":"page/lsp-ansible/#lsp-ansible-validation-enabled","text":"Type: boolean Default: t Toggle validation provider. If enabled and ansible-lint is disabled, validation falls back to ansible-playbook --syntax-check.","title":"lsp-ansible-validation-enabled"},{"location":"page/lsp-ansible/#lsp-ansible-validation-lint-arguments","text":"Type: string Default: `` Optional command line arguments to be appended to ansible-lint invocation. See ansible-lint documentation.","title":"lsp-ansible-validation-lint-arguments"},{"location":"page/lsp-ansible/#lsp-ansible-validation-lint-enabled","text":"Type: boolean Default: t Enables/disables use of ansible-lint.","title":"lsp-ansible-validation-lint-enabled"},{"location":"page/lsp-ansible/#lsp-ansible-validation-lint-path","text":"Type: string Default: ansible-lint Path to the ansible-lint executable. $PATH is searched for the executable.","title":"lsp-ansible-validation-lint-path"},{"location":"page/lsp-astro/","text":"Astro # Server # For more information about the LSP server, check astro-ls . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET astro-ls RET . npm i -g @astrojs/language-server Debugger: Not available # Available configurations #","title":"Astro"},{"location":"page/lsp-astro/#astro","text":"","title":"Astro"},{"location":"page/lsp-astro/#server","text":"For more information about the LSP server, check astro-ls .","title":"Server"},{"location":"page/lsp-astro/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET astro-ls RET . npm i -g @astrojs/language-server","title":"Installation"},{"location":"page/lsp-astro/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-astro/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-awk/","text":"AWK # Server # For more information about the LSP server, check awk-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET awkls RET . npm i -g awk-language-server Debugger: Not available # Available configurations # lsp-awk-executable # Type: list Default: (awk-language-server) Command to run the AWK language server.","title":"AWK"},{"location":"page/lsp-awk/#awk","text":"","title":"AWK"},{"location":"page/lsp-awk/#server","text":"For more information about the LSP server, check awk-language-server .","title":"Server"},{"location":"page/lsp-awk/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET awkls RET . npm i -g awk-language-server","title":"Installation"},{"location":"page/lsp-awk/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-awk/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-awk/#lsp-awk-executable","text":"Type: list Default: (awk-language-server) Command to run the AWK language server.","title":"lsp-awk-executable"},{"location":"page/lsp-bash/","text":"Bash # Server # For more information about the LSP server, check bash-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET bash-ls RET . npm i -g bash-language-server Debugger: Not available # Available configurations # lsp-bash-explainshell-endpoint # Type: string Default: nil The endpoint to use explainshell.com to answer onHover queries. See instructions at https://marketplace.visualstudio.com/items?itemName=mads-hartmann.bash-ide-vscode lsp-bash-glob-pattern # Type: string Default: nil Glob pattern used to find shell script files to parse. lsp-bash-highlight-parsing-errors # Type: boolean Default: nil Consider parsing errors in scripts as problems .","title":"Bash"},{"location":"page/lsp-bash/#bash","text":"","title":"Bash"},{"location":"page/lsp-bash/#server","text":"For more information about the LSP server, check bash-language-server .","title":"Server"},{"location":"page/lsp-bash/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET bash-ls RET . npm i -g bash-language-server","title":"Installation"},{"location":"page/lsp-bash/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-bash/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-bash/#lsp-bash-explainshell-endpoint","text":"Type: string Default: nil The endpoint to use explainshell.com to answer onHover queries. See instructions at https://marketplace.visualstudio.com/items?itemName=mads-hartmann.bash-ide-vscode","title":"lsp-bash-explainshell-endpoint"},{"location":"page/lsp-bash/#lsp-bash-glob-pattern","text":"Type: string Default: nil Glob pattern used to find shell script files to parse.","title":"lsp-bash-glob-pattern"},{"location":"page/lsp-bash/#lsp-bash-highlight-parsing-errors","text":"Type: boolean Default: nil Consider parsing errors in scripts as problems .","title":"lsp-bash-highlight-parsing-errors"},{"location":"page/lsp-beancount/","text":"Beancount # Server # For more information about the LSP server, check beancount-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET beancount-ls RET . cargo install beancount-language-server For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-beancount-journal-file # Type: string Default: nil Path to Beancount journal file. The path can be absolute, or relative to the currently opened file. Use nil (the default) to use the current beancount buffer as the journal file. lsp-beancount-langserver-executable # Type: string Default: beancount-language-server Command to start Beancount language server.","title":"Beancount"},{"location":"page/lsp-beancount/#beancount","text":"","title":"Beancount"},{"location":"page/lsp-beancount/#server","text":"For more information about the LSP server, check beancount-language-server .","title":"Server"},{"location":"page/lsp-beancount/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET beancount-ls RET . cargo install beancount-language-server For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-beancount/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-beancount/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-beancount/#lsp-beancount-journal-file","text":"Type: string Default: nil Path to Beancount journal file. The path can be absolute, or relative to the currently opened file. Use nil (the default) to use the current beancount buffer as the journal file.","title":"lsp-beancount-journal-file"},{"location":"page/lsp-beancount/#lsp-beancount-langserver-executable","text":"Type: string Default: beancount-language-server Command to start Beancount language server.","title":"lsp-beancount-langserver-executable"},{"location":"page/lsp-camel/","text":"CAMEL # Server # For more information about the LSP server, check camells . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET camells RET . Automatic by lsp-mode with lsp-install-server`` Debugger: Not available # Available configurations #","title":"Camel"},{"location":"page/lsp-camel/#camel","text":"","title":"CAMEL"},{"location":"page/lsp-camel/#server","text":"For more information about the LSP server, check camells .","title":"Server"},{"location":"page/lsp-camel/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET camells RET . Automatic by lsp-mode with lsp-install-server``","title":"Installation"},{"location":"page/lsp-camel/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-camel/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ccls/","text":"C++ # Server # For more information about the LSP server, check ccls . Installation # For more instructions on how to install manually, check here . Debugger: Yes (gdb or lldb) # Available configurations #","title":"C++ (ccls)"},{"location":"page/lsp-ccls/#c","text":"","title":"C++"},{"location":"page/lsp-ccls/#server","text":"For more information about the LSP server, check ccls .","title":"Server"},{"location":"page/lsp-ccls/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-ccls/#debugger-yes-gdb-or-lldb","text":"","title":"Debugger: Yes (gdb or lldb)"},{"location":"page/lsp-ccls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-clangd/","text":"C++ # Server # For more information about the LSP server, check clangd . Installation # For more instructions on how to install manually, check here . Debugger: Yes (gdb or lldb) # Available configurations # lsp-clangd-binary-path # Type: file Default: ~/.emacs.d/.cache/lsp/clangd/clangd_15.0.6/bin/clangd The path to clangd binary. lsp-clangd-download-url # Type: string Default: https://github.com/clangd/clangd/releases/download/15.0.6/clangd-linux-15.0.6.zip Automatic download url for clangd lsp-clangd-version # Type: string Default: 15.0.6 Clangd version to download. It has to be set before lsp-clangd.el is loaded and it has to be available here: https://github.com/clangd/clangd/releases/ lsp-clients-clangd-args # Type: (repeat string) Default: (--header-insertion-decorators=0) Extra arguments for the clangd executable. lsp-clients-clangd-executable # Type: (choice (file :tag Path) (const :tag Auto nil)) Default: nil The clangd executable to use. When `non-nil use the name of the clangd executable file available in your path to use. Otherwise the system will try to find a suitable one. Set this variable before loading lsp. lsp-clients-clangd-library-directories # Type: (repeat string) Default: (/usr) List of directories which will be considered to be libraries.","title":"C++ (clangd)"},{"location":"page/lsp-clangd/#c","text":"","title":"C++"},{"location":"page/lsp-clangd/#server","text":"For more information about the LSP server, check clangd .","title":"Server"},{"location":"page/lsp-clangd/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-clangd/#debugger-yes-gdb-or-lldb","text":"","title":"Debugger: Yes (gdb or lldb)"},{"location":"page/lsp-clangd/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-clangd/#lsp-clangd-binary-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/clangd/clangd_15.0.6/bin/clangd The path to clangd binary.","title":"lsp-clangd-binary-path"},{"location":"page/lsp-clangd/#lsp-clangd-download-url","text":"Type: string Default: https://github.com/clangd/clangd/releases/download/15.0.6/clangd-linux-15.0.6.zip Automatic download url for clangd","title":"lsp-clangd-download-url"},{"location":"page/lsp-clangd/#lsp-clangd-version","text":"Type: string Default: 15.0.6 Clangd version to download. It has to be set before lsp-clangd.el is loaded and it has to be available here: https://github.com/clangd/clangd/releases/","title":"lsp-clangd-version"},{"location":"page/lsp-clangd/#lsp-clients-clangd-args","text":"Type: (repeat string) Default: (--header-insertion-decorators=0) Extra arguments for the clangd executable.","title":"lsp-clients-clangd-args"},{"location":"page/lsp-clangd/#lsp-clients-clangd-executable","text":"Type: (choice (file :tag Path) (const :tag Auto nil)) Default: nil The clangd executable to use. When `non-nil use the name of the clangd executable file available in your path to use. Otherwise the system will try to find a suitable one. Set this variable before loading lsp.","title":"lsp-clients-clangd-executable"},{"location":"page/lsp-clangd/#lsp-clients-clangd-library-directories","text":"Type: (repeat string) Default: (/usr) List of directories which will be considered to be libraries.","title":"lsp-clients-clangd-library-directories"},{"location":"page/lsp-clojure/","text":"Clojure # Server # For more information about the LSP server, check clojure-lsp . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET clojure-lsp RET . For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clojure-custom-server-command # Type: (repeat string) Default: nil The clojure-lisp server command. lsp-clojure-library-dirs # Type: list Default: (/home/runner/.emacs.d/workspace/.cache/ /home/runner/.gitlibs/libs) LSP clojure dirs that should be considered library folders. lsp-clojure-server-download-url # Type: string Default: https://github.com/clojure-lsp/clojure-lsp/releases/latest/download/clojure-lsp-native-linux-amd64.zip Automatic download url for lsp-clojure. lsp-clojure-server-store-path # Type: file Default: ~/.emacs.d/.cache/lsp/clojure/clojure-lsp The path to the file in which clojure-lsp will be stored. lsp-clojure-test-tree-position-params # Type: list Default: nil The optional test tree position params. Defaults to side following treemacs default. lsp-clojure-trace-enable # Type: boolean Default: nil Enable trace logs between client and clojure-lsp server. lsp-clojure-workspace-cache-dir # Type: directory Default: ~/.emacs.d/workspace/.cache/ LSP clojure workspace cache directory. lsp-clojure-workspace-dir # Type: directory Default: ~/.emacs.d/workspace/ LSP clojure workspace directory.","title":"Clojure"},{"location":"page/lsp-clojure/#clojure","text":"","title":"Clojure"},{"location":"page/lsp-clojure/#server","text":"For more information about the LSP server, check clojure-lsp .","title":"Server"},{"location":"page/lsp-clojure/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET clojure-lsp RET . For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-clojure/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-clojure/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-clojure/#lsp-clojure-custom-server-command","text":"Type: (repeat string) Default: nil The clojure-lisp server command.","title":"lsp-clojure-custom-server-command"},{"location":"page/lsp-clojure/#lsp-clojure-library-dirs","text":"Type: list Default: (/home/runner/.emacs.d/workspace/.cache/ /home/runner/.gitlibs/libs) LSP clojure dirs that should be considered library folders.","title":"lsp-clojure-library-dirs"},{"location":"page/lsp-clojure/#lsp-clojure-server-download-url","text":"Type: string Default: https://github.com/clojure-lsp/clojure-lsp/releases/latest/download/clojure-lsp-native-linux-amd64.zip Automatic download url for lsp-clojure.","title":"lsp-clojure-server-download-url"},{"location":"page/lsp-clojure/#lsp-clojure-server-store-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/clojure/clojure-lsp The path to the file in which clojure-lsp will be stored.","title":"lsp-clojure-server-store-path"},{"location":"page/lsp-clojure/#lsp-clojure-test-tree-position-params","text":"Type: list Default: nil The optional test tree position params. Defaults to side following treemacs default.","title":"lsp-clojure-test-tree-position-params"},{"location":"page/lsp-clojure/#lsp-clojure-trace-enable","text":"Type: boolean Default: nil Enable trace logs between client and clojure-lsp server.","title":"lsp-clojure-trace-enable"},{"location":"page/lsp-clojure/#lsp-clojure-workspace-cache-dir","text":"Type: directory Default: ~/.emacs.d/workspace/.cache/ LSP clojure workspace cache directory.","title":"lsp-clojure-workspace-cache-dir"},{"location":"page/lsp-clojure/#lsp-clojure-workspace-dir","text":"Type: directory Default: ~/.emacs.d/workspace/ LSP clojure workspace directory.","title":"lsp-clojure-workspace-dir"},{"location":"page/lsp-cmake/","text":"CMake # Server # For more information about the LSP server, check cmake-language-server . Installation # pip install cmake-language-server For more instructions on how to install manually, check here . Debugger: Not relevant # Available configurations #","title":"CMake"},{"location":"page/lsp-cmake/#cmake","text":"","title":"CMake"},{"location":"page/lsp-cmake/#server","text":"For more information about the LSP server, check cmake-language-server .","title":"Server"},{"location":"page/lsp-cmake/#installation","text":"pip install cmake-language-server For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-cmake/#debugger-not-relevant","text":"","title":"Debugger: Not relevant"},{"location":"page/lsp-cmake/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-credo/","text":"Credo # Server # For more information about the LSP server, check credo-ls . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-credo-binary-path # Type: file Default: ~/.emacs.d/.cache/lsp/credo-language-server/credo-language-server The path to credo-language-server binary. lsp-credo-command # Type: (repeat :tag List of string values string) Default: (credo-language-server --stdio=true) The command that starts credo-language-server. lsp-credo-download-url # Type: string Default: https://github.com/elixir-tools/credo-language-server/releases/download/v0.1.2/credo-language-server Automatic download url for credo-language-server. lsp-credo-version # Type: string Default: 0.1.2 Credo language server version to download. It has to be set before lsp-credo.el is loaded and it has to be available here: https://github.com/elixir-tools/credo-language-server/releases.","title":"Lsp credo"},{"location":"page/lsp-credo/#credo","text":"","title":"Credo"},{"location":"page/lsp-credo/#server","text":"For more information about the LSP server, check credo-ls .","title":"Server"},{"location":"page/lsp-credo/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-credo/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-credo/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-credo/#lsp-credo-binary-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/credo-language-server/credo-language-server The path to credo-language-server binary.","title":"lsp-credo-binary-path"},{"location":"page/lsp-credo/#lsp-credo-command","text":"Type: (repeat :tag List of string values string) Default: (credo-language-server --stdio=true) The command that starts credo-language-server.","title":"lsp-credo-command"},{"location":"page/lsp-credo/#lsp-credo-download-url","text":"Type: string Default: https://github.com/elixir-tools/credo-language-server/releases/download/v0.1.2/credo-language-server Automatic download url for credo-language-server.","title":"lsp-credo-download-url"},{"location":"page/lsp-credo/#lsp-credo-version","text":"Type: string Default: 0.1.2 Credo language server version to download. It has to be set before lsp-credo.el is loaded and it has to be available here: https://github.com/elixir-tools/credo-language-server/releases.","title":"lsp-credo-version"},{"location":"page/lsp-crystal/","text":"Crystal # Server # For more information about the LSP server, check crystalline . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Crystal"},{"location":"page/lsp-crystal/#crystal","text":"","title":"Crystal"},{"location":"page/lsp-crystal/#server","text":"For more information about the LSP server, check crystalline .","title":"Server"},{"location":"page/lsp-crystal/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-crystal/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-crystal/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-csharp-ls/","text":"C# (csharp-ls) # Server # For more information about the LSP server, check csharp-ls . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET csharp-ls RET . Automatic by lsp-mode with dotnet tool install -g`` Debugger: Yes (netcoredbg) # Available configurations #","title":"C# (csharp-ls)"},{"location":"page/lsp-csharp-ls/#c-csharp-ls","text":"","title":"C# (csharp-ls)"},{"location":"page/lsp-csharp-ls/#server","text":"For more information about the LSP server, check csharp-ls .","title":"Server"},{"location":"page/lsp-csharp-ls/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET csharp-ls RET . Automatic by lsp-mode with dotnet tool install -g``","title":"Installation"},{"location":"page/lsp-csharp-ls/#debugger-yes-netcoredbg","text":"","title":"Debugger: Yes (netcoredbg)"},{"location":"page/lsp-csharp-ls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-csharp-omnisharp/","text":"C# (Omnisharp-Roslyn) # Server # For more information about the LSP server, check OmniSharp-Roslyn . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET omnisharp RET . Supports automatic installation. Debugger: Yes (netcoredbg) # Available configurations # lsp-csharp-omnisharp-roslyn-binary-path # Type: file Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/latest/OmniSharp The path where omnisharp-roslyn binary after will be stored. lsp-csharp-omnisharp-roslyn-download-url # Type: string Default: https://github.com/omnisharp/omnisharp-roslyn/releases/latest/download/omnisharp-linux-x64-net6.0.zip Automatic download url for omnisharp-roslyn. lsp-csharp-omnisharp-roslyn-server-dir # Type: file Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/latest/omnisharp-roslyn The path where omnisharp-roslyn .zip archive will be extracted. lsp-csharp-omnisharp-roslyn-store-path # Type: file Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/latest/omnisharp-roslyn.zip The path where omnisharp-roslyn .zip archive will be stored. lsp-csharp-server-install-dir # Type: directory Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/ Installation directory for OmniSharp Roslyn server. lsp-csharp-server-path # Type: (string :tag Single string value or nil) Default: nil The path to the OmniSharp Roslyn language-server binary. Set this if you have the binary installed or have it built yourself. lsp-csharp-solution-file # Type: string Default: nil Solution to load when starting the server. Usually this is to be set in your .dir-locals.el on the project root directory. lsp-csharp-test-run-buffer-name # Type: string Default: *lsp-csharp test run* The name of buffer used for outputting lsp-csharp test run results.","title":"C# (omnisharp-roslyn)"},{"location":"page/lsp-csharp-omnisharp/#c-omnisharp-roslyn","text":"","title":"C# (Omnisharp-Roslyn)"},{"location":"page/lsp-csharp-omnisharp/#server","text":"For more information about the LSP server, check OmniSharp-Roslyn .","title":"Server"},{"location":"page/lsp-csharp-omnisharp/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET omnisharp RET . Supports automatic installation.","title":"Installation"},{"location":"page/lsp-csharp-omnisharp/#debugger-yes-netcoredbg","text":"","title":"Debugger: Yes (netcoredbg)"},{"location":"page/lsp-csharp-omnisharp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-omnisharp-roslyn-binary-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/latest/OmniSharp The path where omnisharp-roslyn binary after will be stored.","title":"lsp-csharp-omnisharp-roslyn-binary-path"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-omnisharp-roslyn-download-url","text":"Type: string Default: https://github.com/omnisharp/omnisharp-roslyn/releases/latest/download/omnisharp-linux-x64-net6.0.zip Automatic download url for omnisharp-roslyn.","title":"lsp-csharp-omnisharp-roslyn-download-url"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-omnisharp-roslyn-server-dir","text":"Type: file Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/latest/omnisharp-roslyn The path where omnisharp-roslyn .zip archive will be extracted.","title":"lsp-csharp-omnisharp-roslyn-server-dir"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-omnisharp-roslyn-store-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/latest/omnisharp-roslyn.zip The path where omnisharp-roslyn .zip archive will be stored.","title":"lsp-csharp-omnisharp-roslyn-store-path"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-server-install-dir","text":"Type: directory Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/ Installation directory for OmniSharp Roslyn server.","title":"lsp-csharp-server-install-dir"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-server-path","text":"Type: (string :tag Single string value or nil) Default: nil The path to the OmniSharp Roslyn language-server binary. Set this if you have the binary installed or have it built yourself.","title":"lsp-csharp-server-path"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-solution-file","text":"Type: string Default: nil Solution to load when starting the server. Usually this is to be set in your .dir-locals.el on the project root directory.","title":"lsp-csharp-solution-file"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-test-run-buffer-name","text":"Type: string Default: *lsp-csharp test run* The name of buffer used for outputting lsp-csharp test run results.","title":"lsp-csharp-test-run-buffer-name"},{"location":"page/lsp-css/","text":"CSS/LessCSS/SASS/SCSS # Server # For more information about the LSP server, check css . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET css-ls RET . npm install -g vscode-langservers-extracted Debugger: Not available # Available configurations # lsp-css-completion-trigger-property-value-completion # Type: boolean Default: t By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior. lsp-css-experimental-custom-data # Type: (repeat string) Default: nil A list of JSON file paths that define custom CSS data that loads custom properties, at directives, pseudo classes / elements. lsp-css-lint-arguments-in-color-function # Type: (choice (const ignore) (const warning) (const error)) Default: error Invalid number of parameters. lsp-css-lint-box-model # Type: (choice (const ignore) (const warning) (const error)) Default: ignore lsp-css-lint-compatible-vendor-prefixes # Type: (choice (const ignore) (const warning) (const error)) Default: ignore When using a vendor-specific prefix make sure to also include all other vendor-specific properties. lsp-css-lint-duplicate-properties # Type: (choice (const ignore) (const warning) (const error)) Default: ignore Do not use duplicate style definitions. lsp-css-lint-empty-rules # Type: (choice (const ignore) (const warning) (const error)) Default: warning Do not use empty rulesets. lsp-css-lint-float # Type: (choice (const ignore) (const warning) (const error)) Default: ignore lsp-css-lint-font-face-properties # Type: (choice (const ignore) (const warning) (const error)) Default: warning lsp-css-lint-hex-color-length # Type: (choice (const ignore) (const warning) (const error)) Default: error Hex colors must consist of three or six hex numbers. lsp-css-lint-id-selector # Type: (choice (const ignore) (const warning) (const error)) Default: ignore Selectors should not contain IDs because these rules are too tightly coupled with the HTML. lsp-css-lint-ie-hack # Type: (choice (const ignore) (const warning) (const error)) Default: ignore IE hacks are only necessary when supporting IE7 and older. lsp-css-lint-import-statement # Type: (choice (const ignore) (const warning) (const error)) Default: ignore Import statements do not load in parallel. lsp-css-lint-important # Type: (choice (const ignore) (const warning) (const error)) Default: ignore lsp-css-lint-property-ignored-due-to-display # Type: (choice (const ignore) (const warning) (const error)) Default: warning lsp-css-lint-universal-selector # Type: (choice (const ignore) (const warning) (const error)) Default: ignore lsp-css-lint-unknown-at-rules # Type: (choice (const ignore) (const warning) (const error)) Default: warning Unknown at-rule. lsp-css-lint-unknown-properties # Type: (choice (const ignore) (const warning) (const error)) Default: warning Unknown property. lsp-css-lint-unknown-vendor-specific-properties # Type: (choice (const ignore) (const warning) (const error)) Default: ignore Unknown vendor specific property. lsp-css-lint-valid-properties # Type: (repeat string) Default: nil A list of properties that are not validated against the unknownProperties rule. lsp-css-lint-vendor-prefix # Type: (choice (const ignore) (const warning) (const error)) Default: warning When using a vendor-specific prefix, also include the standard property. lsp-css-lint-zero-units # Type: (choice (const ignore) (const warning) (const error)) Default: ignore No unit for zero needed. lsp-css-trace-server # Type: (choice (const off) (const messages) (const verbose)) Default: off Traces the communication between VS Code and the CSS language server. lsp-css-validate # Type: boolean Default: t Enables or disables all validations.","title":"CSS/LessCSS/SASS/SCSS"},{"location":"page/lsp-css/#csslesscsssassscss","text":"","title":"CSS/LessCSS/SASS/SCSS"},{"location":"page/lsp-css/#server","text":"For more information about the LSP server, check css .","title":"Server"},{"location":"page/lsp-css/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET css-ls RET . npm install -g vscode-langservers-extracted","title":"Installation"},{"location":"page/lsp-css/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-css/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-css/#lsp-css-completion-trigger-property-value-completion","text":"Type: boolean Default: t By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior.","title":"lsp-css-completion-trigger-property-value-completion"},{"location":"page/lsp-css/#lsp-css-experimental-custom-data","text":"Type: (repeat string) Default: nil A list of JSON file paths that define custom CSS data that loads custom properties, at directives, pseudo classes / elements.","title":"lsp-css-experimental-custom-data"},{"location":"page/lsp-css/#lsp-css-lint-arguments-in-color-function","text":"Type: (choice (const ignore) (const warning) (const error)) Default: error Invalid number of parameters.","title":"lsp-css-lint-arguments-in-color-function"},{"location":"page/lsp-css/#lsp-css-lint-box-model","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore","title":"lsp-css-lint-box-model"},{"location":"page/lsp-css/#lsp-css-lint-compatible-vendor-prefixes","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore When using a vendor-specific prefix make sure to also include all other vendor-specific properties.","title":"lsp-css-lint-compatible-vendor-prefixes"},{"location":"page/lsp-css/#lsp-css-lint-duplicate-properties","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore Do not use duplicate style definitions.","title":"lsp-css-lint-duplicate-properties"},{"location":"page/lsp-css/#lsp-css-lint-empty-rules","text":"Type: (choice (const ignore) (const warning) (const error)) Default: warning Do not use empty rulesets.","title":"lsp-css-lint-empty-rules"},{"location":"page/lsp-css/#lsp-css-lint-float","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore","title":"lsp-css-lint-float"},{"location":"page/lsp-css/#lsp-css-lint-font-face-properties","text":"Type: (choice (const ignore) (const warning) (const error)) Default: warning","title":"lsp-css-lint-font-face-properties"},{"location":"page/lsp-css/#lsp-css-lint-hex-color-length","text":"Type: (choice (const ignore) (const warning) (const error)) Default: error Hex colors must consist of three or six hex numbers.","title":"lsp-css-lint-hex-color-length"},{"location":"page/lsp-css/#lsp-css-lint-id-selector","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore Selectors should not contain IDs because these rules are too tightly coupled with the HTML.","title":"lsp-css-lint-id-selector"},{"location":"page/lsp-css/#lsp-css-lint-ie-hack","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore IE hacks are only necessary when supporting IE7 and older.","title":"lsp-css-lint-ie-hack"},{"location":"page/lsp-css/#lsp-css-lint-import-statement","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore Import statements do not load in parallel.","title":"lsp-css-lint-import-statement"},{"location":"page/lsp-css/#lsp-css-lint-important","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore","title":"lsp-css-lint-important"},{"location":"page/lsp-css/#lsp-css-lint-property-ignored-due-to-display","text":"Type: (choice (const ignore) (const warning) (const error)) Default: warning","title":"lsp-css-lint-property-ignored-due-to-display"},{"location":"page/lsp-css/#lsp-css-lint-universal-selector","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore","title":"lsp-css-lint-universal-selector"},{"location":"page/lsp-css/#lsp-css-lint-unknown-at-rules","text":"Type: (choice (const ignore) (const warning) (const error)) Default: warning Unknown at-rule.","title":"lsp-css-lint-unknown-at-rules"},{"location":"page/lsp-css/#lsp-css-lint-unknown-properties","text":"Type: (choice (const ignore) (const warning) (const error)) Default: warning Unknown property.","title":"lsp-css-lint-unknown-properties"},{"location":"page/lsp-css/#lsp-css-lint-unknown-vendor-specific-properties","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore Unknown vendor specific property.","title":"lsp-css-lint-unknown-vendor-specific-properties"},{"location":"page/lsp-css/#lsp-css-lint-valid-properties","text":"Type: (repeat string) Default: nil A list of properties that are not validated against the unknownProperties rule.","title":"lsp-css-lint-valid-properties"},{"location":"page/lsp-css/#lsp-css-lint-vendor-prefix","text":"Type: (choice (const ignore) (const warning) (const error)) Default: warning When using a vendor-specific prefix, also include the standard property.","title":"lsp-css-lint-vendor-prefix"},{"location":"page/lsp-css/#lsp-css-lint-zero-units","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore No unit for zero needed.","title":"lsp-css-lint-zero-units"},{"location":"page/lsp-css/#lsp-css-trace-server","text":"Type: (choice (const off) (const messages) (const verbose)) Default: off Traces the communication between VS Code and the CSS language server.","title":"lsp-css-trace-server"},{"location":"page/lsp-css/#lsp-css-validate","text":"Type: boolean Default: t Enables or disables all validations.","title":"lsp-css-validate"},{"location":"page/lsp-d/","text":"D # Server # For more information about the LSP server, check serve-d . Installation # For more instructions on how to install manually, check here . Debugger: Yes # Available configurations #","title":"D"},{"location":"page/lsp-d/#d","text":"","title":"D"},{"location":"page/lsp-d/#server","text":"For more information about the LSP server, check serve-d .","title":"Server"},{"location":"page/lsp-d/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-d/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-d/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-deno/","text":"Javascript/Typescript (deno) # Server # For more information about the LSP server, check deno lsp . Installation # Debugger: Yes (Chrome) # Available configurations # lsp-clients-deno-config # Type: file Default: nil The file path to a tsconfig.json file. The path can be either be relative to the workspace, or an absolute path. Examples: ./tsconfig.json , /path/to/tsconfig.json , C:\\path\\to\\tsconfig.json lsp-clients-deno-enable-code-lens-implementations # Type: boolean Default: t Enables or disables the display of code lens information for implementations. lsp-clients-deno-enable-code-lens-references # Type: boolean Default: t Enables or disables the display of code lens information. lsp-clients-deno-enable-code-lens-references-all-functions # Type: boolean Default: t Enables or disables the display of code lens information for all functions. Setting this variable to non-nil implicitly enables lsp-clients-deno-enable-code-lens-references . lsp-clients-deno-enable-lint # Type: boolean Default: t Controls if linting information will be provided by the Deno Language Server. lsp-clients-deno-enable-unstable # Type: boolean Default: nil Controls if code will be type checked with Deno`s unstable APIs. lsp-clients-deno-import-map # Type: file Default: nil The file path to an import map. Import maps provide a way to relocate modules based on their specifiers. The path can either be relative to the workspace, or an absolute path. Examples: ./import-map.json , /path/to/import-map.json , C:\\path\\to\\import-map.json . lsp-clients-deno-server # Type: file Default: deno The Deno executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path . lsp-clients-deno-server-args # Type: (repeat string) Default: (lsp) Extra arguments for starting the Deno language server.","title":"Javascript/Typescript (deno)"},{"location":"page/lsp-deno/#javascripttypescript-deno","text":"","title":"Javascript/Typescript (deno)"},{"location":"page/lsp-deno/#server","text":"For more information about the LSP server, check deno lsp .","title":"Server"},{"location":"page/lsp-deno/#installation","text":"","title":"Installation"},{"location":"page/lsp-deno/#debugger-yes-chrome","text":"","title":"Debugger: Yes (Chrome)"},{"location":"page/lsp-deno/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-deno/#lsp-clients-deno-config","text":"Type: file Default: nil The file path to a tsconfig.json file. The path can be either be relative to the workspace, or an absolute path. Examples: ./tsconfig.json , /path/to/tsconfig.json , C:\\path\\to\\tsconfig.json","title":"lsp-clients-deno-config"},{"location":"page/lsp-deno/#lsp-clients-deno-enable-code-lens-implementations","text":"Type: boolean Default: t Enables or disables the display of code lens information for implementations.","title":"lsp-clients-deno-enable-code-lens-implementations"},{"location":"page/lsp-deno/#lsp-clients-deno-enable-code-lens-references","text":"Type: boolean Default: t Enables or disables the display of code lens information.","title":"lsp-clients-deno-enable-code-lens-references"},{"location":"page/lsp-deno/#lsp-clients-deno-enable-code-lens-references-all-functions","text":"Type: boolean Default: t Enables or disables the display of code lens information for all functions. Setting this variable to non-nil implicitly enables lsp-clients-deno-enable-code-lens-references .","title":"lsp-clients-deno-enable-code-lens-references-all-functions"},{"location":"page/lsp-deno/#lsp-clients-deno-enable-lint","text":"Type: boolean Default: t Controls if linting information will be provided by the Deno Language Server.","title":"lsp-clients-deno-enable-lint"},{"location":"page/lsp-deno/#lsp-clients-deno-enable-unstable","text":"Type: boolean Default: nil Controls if code will be type checked with Deno`s unstable APIs.","title":"lsp-clients-deno-enable-unstable"},{"location":"page/lsp-deno/#lsp-clients-deno-import-map","text":"Type: file Default: nil The file path to an import map. Import maps provide a way to relocate modules based on their specifiers. The path can either be relative to the workspace, or an absolute path. Examples: ./import-map.json , /path/to/import-map.json , C:\\path\\to\\import-map.json .","title":"lsp-clients-deno-import-map"},{"location":"page/lsp-deno/#lsp-clients-deno-server","text":"Type: file Default: deno The Deno executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path .","title":"lsp-clients-deno-server"},{"location":"page/lsp-deno/#lsp-clients-deno-server-args","text":"Type: (repeat string) Default: (lsp) Extra arguments for starting the Deno language server.","title":"lsp-clients-deno-server-args"},{"location":"page/lsp-dhall/","text":"Dhall # Server # For more information about the LSP server, check dhall-lsp-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Dhall"},{"location":"page/lsp-dhall/#dhall","text":"","title":"Dhall"},{"location":"page/lsp-dhall/#server","text":"For more information about the LSP server, check dhall-lsp-server .","title":"Server"},{"location":"page/lsp-dhall/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-dhall/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-dhall/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-dockerfile/","text":"Dockerfile # Server # For more information about the LSP server, check dockerfile-language-server-nodejs . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET dockerfile-ls RET . npm install -g dockerfile-language-server-nodejs Debugger: Not available # Available configurations # lsp-dockerfile-language-server-command # Type: (repeat :tag List of string values string) Default: (docker-langserver --stdio) The command that starts the docker language server.","title":"Dockerfile"},{"location":"page/lsp-dockerfile/#dockerfile","text":"","title":"Dockerfile"},{"location":"page/lsp-dockerfile/#server","text":"For more information about the LSP server, check dockerfile-language-server-nodejs .","title":"Server"},{"location":"page/lsp-dockerfile/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET dockerfile-ls RET . npm install -g dockerfile-language-server-nodejs","title":"Installation"},{"location":"page/lsp-dockerfile/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-dockerfile/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-dockerfile/#lsp-dockerfile-language-server-command","text":"Type: (repeat :tag List of string values string) Default: (docker-langserver --stdio) The command that starts the docker language server.","title":"lsp-dockerfile-language-server-command"},{"location":"page/lsp-dot/","text":"DOT # Server # For more information about the LSP server, check dot-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET dot-ls RET . npm install -g dot-language-server Debugger: Not available # Available configurations #","title":"Lsp dot"},{"location":"page/lsp-dot/#dot","text":"","title":"DOT"},{"location":"page/lsp-dot/#server","text":"For more information about the LSP server, check dot-language-server .","title":"Server"},{"location":"page/lsp-dot/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET dot-ls RET . npm install -g dot-language-server","title":"Installation"},{"location":"page/lsp-dot/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-dot/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-elixir/","text":"Elixir # Server # For more information about the LSP server, check elixir-lsp/elixir-ls . Installation # For more instructions on how to install manually, check here . Debugger: Yes # Available configurations # lsp-elixir-dialyzer-enabled # Type: boolean Default: t Run ElixirLS`s rapid Dialyzer when code is saved. lsp-elixir-dialyzer-format # Type: string Default: dialyxir_long Formatter to use for Dialyzer warnings. lsp-elixir-dialyzer-warn-opts # Type: (repeat string) Default: nil Dialyzer options to enable or disable warnings. See Dialyzer`s documentation for options. Note that the \"race_conditions\" option is unsupported lsp-elixir-enable-test-lenses # Type: boolean Default: t Suggest Tests. lsp-elixir-fetch-deps # Type: boolean Default: nil Automatically fetch project dependencies when compiling. lsp-elixir-local-server-command # Type: (repeat string) Default: /home/runner/.emacs.d/.cache/lsp/elixir-ls/language_server.sh Command to start local elixir-ls binary. lsp-elixir-ls-download-url # Type: string Default: https://github.com/elixir-lsp/elixir-ls/releases/download/v0.16.0/elixir-ls-v0.16.0.zip Automatic download url for elixir-ls lsp-elixir-ls-version # Type: string Default: v0.16.0 Elixir-Ls version to download. It has to be set before lsp-elixir.el is loaded and it has to be available here: https://github.com/elixir-lsp/elixir-ls/releases/ lsp-elixir-mix-env # Type: string Default: test Mix environment to use for compilation. lsp-elixir-mix-target # Type: string Default: nil Mix target to use for compilation (requires Elixir >= 1.8). lsp-elixir-project-dir # Type: string Default: nil Subdirectory containing Mix project if not in the project root. If value is \"\" then defaults to the workspace rootUri. lsp-elixir-server-command # Type: (repeat string) Default: (language_server.sh) Command to start elixir-ls. Leave as default to let executable-find search for it. lsp-elixir-signature-after-complete # Type: boolean Default: t Show signature help after confirming autocomplete. lsp-elixir-suggest-specs # Type: boolean Default: t Suggest @spec annotations inline using Dialyzer`s inferred success typings. This requires Dialyzer.","title":"Elixir"},{"location":"page/lsp-elixir/#elixir","text":"","title":"Elixir"},{"location":"page/lsp-elixir/#server","text":"For more information about the LSP server, check elixir-lsp/elixir-ls .","title":"Server"},{"location":"page/lsp-elixir/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-elixir/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-elixir/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-elixir/#lsp-elixir-dialyzer-enabled","text":"Type: boolean Default: t Run ElixirLS`s rapid Dialyzer when code is saved.","title":"lsp-elixir-dialyzer-enabled"},{"location":"page/lsp-elixir/#lsp-elixir-dialyzer-format","text":"Type: string Default: dialyxir_long Formatter to use for Dialyzer warnings.","title":"lsp-elixir-dialyzer-format"},{"location":"page/lsp-elixir/#lsp-elixir-dialyzer-warn-opts","text":"Type: (repeat string) Default: nil Dialyzer options to enable or disable warnings. See Dialyzer`s documentation for options. Note that the \"race_conditions\" option is unsupported","title":"lsp-elixir-dialyzer-warn-opts"},{"location":"page/lsp-elixir/#lsp-elixir-enable-test-lenses","text":"Type: boolean Default: t Suggest Tests.","title":"lsp-elixir-enable-test-lenses"},{"location":"page/lsp-elixir/#lsp-elixir-fetch-deps","text":"Type: boolean Default: nil Automatically fetch project dependencies when compiling.","title":"lsp-elixir-fetch-deps"},{"location":"page/lsp-elixir/#lsp-elixir-local-server-command","text":"Type: (repeat string) Default: /home/runner/.emacs.d/.cache/lsp/elixir-ls/language_server.sh Command to start local elixir-ls binary.","title":"lsp-elixir-local-server-command"},{"location":"page/lsp-elixir/#lsp-elixir-ls-download-url","text":"Type: string Default: https://github.com/elixir-lsp/elixir-ls/releases/download/v0.16.0/elixir-ls-v0.16.0.zip Automatic download url for elixir-ls","title":"lsp-elixir-ls-download-url"},{"location":"page/lsp-elixir/#lsp-elixir-ls-version","text":"Type: string Default: v0.16.0 Elixir-Ls version to download. It has to be set before lsp-elixir.el is loaded and it has to be available here: https://github.com/elixir-lsp/elixir-ls/releases/","title":"lsp-elixir-ls-version"},{"location":"page/lsp-elixir/#lsp-elixir-mix-env","text":"Type: string Default: test Mix environment to use for compilation.","title":"lsp-elixir-mix-env"},{"location":"page/lsp-elixir/#lsp-elixir-mix-target","text":"Type: string Default: nil Mix target to use for compilation (requires Elixir >= 1.8).","title":"lsp-elixir-mix-target"},{"location":"page/lsp-elixir/#lsp-elixir-project-dir","text":"Type: string Default: nil Subdirectory containing Mix project if not in the project root. If value is \"\" then defaults to the workspace rootUri.","title":"lsp-elixir-project-dir"},{"location":"page/lsp-elixir/#lsp-elixir-server-command","text":"Type: (repeat string) Default: (language_server.sh) Command to start elixir-ls. Leave as default to let executable-find search for it.","title":"lsp-elixir-server-command"},{"location":"page/lsp-elixir/#lsp-elixir-signature-after-complete","text":"Type: boolean Default: t Show signature help after confirming autocomplete.","title":"lsp-elixir-signature-after-complete"},{"location":"page/lsp-elixir/#lsp-elixir-suggest-specs","text":"Type: boolean Default: t Suggest @spec annotations inline using Dialyzer`s inferred success typings. This requires Dialyzer.","title":"lsp-elixir-suggest-specs"},{"location":"page/lsp-elm/","text":"Elm # Server # For more information about the LSP server, check elmLS . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET elm-ls RET . npm i -g @elm-tooling/elm-language-server, or clone the repository and follow installation instructions Debugger: Not available # Available configurations # lsp-elm-disable-elmls-diagnostics # Type: boolean Default: nil Enable/Disable linting diagnostics from the language server. lsp-elm-elm-format-path # Type: file Default: `` The path to your elm-format executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder. lsp-elm-elm-language-server-path # Type: file Default: nil Path for elm-language-server. Can be installed globally with: npm i -g @elm-tooling/elm-language-server, or manually by cloning the repo and following the installing instructions. lsp-elm-elm-path # Type: file Default: `` The path to your elm executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder. lsp-elm-elm-test-path # Type: file Default: `` The path to your elm-test executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder. lsp-elm-only-update-diagnostics-on-save # Type: boolean Default: nil Only update compiler diagnostics on save, not on document change. lsp-elm-server-args # Type: (repeat string) Default: (--stdio) Arguments to pass to the server. lsp-elm-skip-install-package-confirmation # Type: boolean Default: nil Skip confirmation for the Install Package code action. lsp-elm-trace-server # Type: boolean Default: nil Enable/disable trace logging of client and server communication.","title":"Elm"},{"location":"page/lsp-elm/#elm","text":"","title":"Elm"},{"location":"page/lsp-elm/#server","text":"For more information about the LSP server, check elmLS .","title":"Server"},{"location":"page/lsp-elm/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET elm-ls RET . npm i -g @elm-tooling/elm-language-server, or clone the repository and follow installation instructions","title":"Installation"},{"location":"page/lsp-elm/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-elm/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-elm/#lsp-elm-disable-elmls-diagnostics","text":"Type: boolean Default: nil Enable/Disable linting diagnostics from the language server.","title":"lsp-elm-disable-elmls-diagnostics"},{"location":"page/lsp-elm/#lsp-elm-elm-format-path","text":"Type: file Default: `` The path to your elm-format executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder.","title":"lsp-elm-elm-format-path"},{"location":"page/lsp-elm/#lsp-elm-elm-language-server-path","text":"Type: file Default: nil Path for elm-language-server. Can be installed globally with: npm i -g @elm-tooling/elm-language-server, or manually by cloning the repo and following the installing instructions.","title":"lsp-elm-elm-language-server-path"},{"location":"page/lsp-elm/#lsp-elm-elm-path","text":"Type: file Default: `` The path to your elm executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder.","title":"lsp-elm-elm-path"},{"location":"page/lsp-elm/#lsp-elm-elm-test-path","text":"Type: file Default: `` The path to your elm-test executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder.","title":"lsp-elm-elm-test-path"},{"location":"page/lsp-elm/#lsp-elm-only-update-diagnostics-on-save","text":"Type: boolean Default: nil Only update compiler diagnostics on save, not on document change.","title":"lsp-elm-only-update-diagnostics-on-save"},{"location":"page/lsp-elm/#lsp-elm-server-args","text":"Type: (repeat string) Default: (--stdio) Arguments to pass to the server.","title":"lsp-elm-server-args"},{"location":"page/lsp-elm/#lsp-elm-skip-install-package-confirmation","text":"Type: boolean Default: nil Skip confirmation for the Install Package code action.","title":"lsp-elm-skip-install-package-confirmation"},{"location":"page/lsp-elm/#lsp-elm-trace-server","text":"Type: boolean Default: nil Enable/disable trace logging of client and server communication.","title":"lsp-elm-trace-server"},{"location":"page/lsp-emmet/","text":"Emmet # Server # For more information about the LSP server, check emmet-ls . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET emmet-ls RET . npm i -g emmet-ls Debugger: Not available # Available configurations #","title":"Emmet"},{"location":"page/lsp-emmet/#emmet","text":"","title":"Emmet"},{"location":"page/lsp-emmet/#server","text":"For more information about the LSP server, check emmet-ls .","title":"Server"},{"location":"page/lsp-emmet/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET emmet-ls RET . npm i -g emmet-ls","title":"Installation"},{"location":"page/lsp-emmet/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-emmet/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-emmy-lua/","text":"Lua # Server # For more information about the LSP server, check EmmyLua . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-emmy-lua-args # Type: (repeat string) Default: (-jar) Arguments to the Lua Language server. lsp-clients-emmy-lua-command # Type: (repeat string) Default: nil Final command to call the Lua Language server. lsp-clients-emmy-lua-jar-path # Type: file Default: ~/.emacs.d/.cache/lsp/EmmyLua-LS-all.jar Emmy Lua language server jar file. lsp-clients-emmy-lua-java-path # Type: file Default: java Java Runtime binary location.","title":"Lua (EmmyLua)"},{"location":"page/lsp-emmy-lua/#lua","text":"","title":"Lua"},{"location":"page/lsp-emmy-lua/#server","text":"For more information about the LSP server, check EmmyLua .","title":"Server"},{"location":"page/lsp-emmy-lua/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-emmy-lua/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-emmy-lua/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-emmy-lua/#lsp-clients-emmy-lua-args","text":"Type: (repeat string) Default: (-jar) Arguments to the Lua Language server.","title":"lsp-clients-emmy-lua-args"},{"location":"page/lsp-emmy-lua/#lsp-clients-emmy-lua-command","text":"Type: (repeat string) Default: nil Final command to call the Lua Language server.","title":"lsp-clients-emmy-lua-command"},{"location":"page/lsp-emmy-lua/#lsp-clients-emmy-lua-jar-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/EmmyLua-LS-all.jar Emmy Lua language server jar file.","title":"lsp-clients-emmy-lua-jar-path"},{"location":"page/lsp-emmy-lua/#lsp-clients-emmy-lua-java-path","text":"Type: file Default: java Java Runtime binary location.","title":"lsp-clients-emmy-lua-java-path"},{"location":"page/lsp-erlang-elp/","text":"Erlang # Server # For more information about the LSP server, check elp . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-erlang-elp-download-url # Type: string Default: https://github.com/WhatsApp/erlang-language-platform/releases/latest/download/elp-linux-x86_64-unknown-linux-gnu-otp-26.tar.gz Automatic download url for erlang-language-platform. lsp-erlang-elp-server-command # Type: (repeat string) Default: (elp server) Command to start erlang-language-platform. lsp-erlang-elp-store-path # Type: file Default: ~/.emacs.d/.cache/lsp/erlang/elp The path to the file in which elp will be stored.","title":"Lsp erlang elp"},{"location":"page/lsp-erlang-elp/#erlang","text":"","title":"Erlang"},{"location":"page/lsp-erlang-elp/#server","text":"For more information about the LSP server, check elp .","title":"Server"},{"location":"page/lsp-erlang-elp/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-erlang-elp/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-erlang-elp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-erlang-elp/#lsp-erlang-elp-download-url","text":"Type: string Default: https://github.com/WhatsApp/erlang-language-platform/releases/latest/download/elp-linux-x86_64-unknown-linux-gnu-otp-26.tar.gz Automatic download url for erlang-language-platform.","title":"lsp-erlang-elp-download-url"},{"location":"page/lsp-erlang-elp/#lsp-erlang-elp-server-command","text":"Type: (repeat string) Default: (elp server) Command to start erlang-language-platform.","title":"lsp-erlang-elp-server-command"},{"location":"page/lsp-erlang-elp/#lsp-erlang-elp-store-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/erlang/elp The path to the file in which elp will be stored.","title":"lsp-erlang-elp-store-path"},{"location":"page/lsp-erlang-ls/","text":"Erlang # Server # For more information about the LSP server, check erlang_ls . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-erlang-ls-server-connection-type # Type: symbol Default: stdio Type of connection to use with the Erlang Language Server: tcp or stdio. lsp-erlang-ls-server-path # Type: file Default: erlang_ls Path to the Erlang Language Server binary.","title":"Lsp erlang ls"},{"location":"page/lsp-erlang-ls/#erlang","text":"","title":"Erlang"},{"location":"page/lsp-erlang-ls/#server","text":"For more information about the LSP server, check erlang_ls .","title":"Server"},{"location":"page/lsp-erlang-ls/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-erlang-ls/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-erlang-ls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-erlang-ls/#lsp-erlang-ls-server-connection-type","text":"Type: symbol Default: stdio Type of connection to use with the Erlang Language Server: tcp or stdio.","title":"lsp-erlang-ls-server-connection-type"},{"location":"page/lsp-erlang-ls/#lsp-erlang-ls-server-path","text":"Type: file Default: erlang_ls Path to the Erlang Language Server binary.","title":"lsp-erlang-ls-server-path"},{"location":"page/lsp-eslint/","text":"ESlint # Server # For more information about the LSP server, check eslint . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET eslint RET . Debugger: N/A # Available configurations # lsp-eslint-auto-fix-on-save # Type: boolean Default: nil Turns auto fix on save on or off. lsp-eslint-code-action-disable-rule-comment # Type: bool Default: t Controls whether code actions to add a rule-disabling comment should be shown. lsp-eslint-code-action-disable-rule-comment-location # Type: (choice (const separateLine) (const sameLine)) Default: separateLine Controls where the disable rule code action places comments. Accepts the following values: - \"separateLine\": Add the comment above the line to be disabled (default). - \"sameLine\": Add the comment on the same line that will be disabled. lsp-eslint-code-action-show-documentation # Type: bool Default: t Controls whether code actions to show documentation for an eslint rule should be shown. lsp-eslint-config-problems # Type: alist Default: nil The eslint problems configuration. lsp-eslint-download-url # Type: string Default: https://github.com/emacs-lsp/lsp-server-binaries/blob/master/dbaeumer.vscode-eslint-2.2.2.vsix?raw=true Eslint language server download url. lsp-eslint-enable # Type: boolean Default: t Controls whether eslint is enabled for JavaScript files or not. lsp-eslint-experimental # Type: alist Default: nil The eslint experimental configuration. lsp-eslint-experimental-incremental-sync # Type: boolean Default: t Controls whether the new incremental text document synchronization should be used. lsp-eslint-fix-all-problem-type # Type: (choice (const all) (const problems) string) Default: all Determines which problems are fixed when running the source.fixAll code action. lsp-eslint-format # Type: boolean Default: t Whether to perform format. lsp-eslint-library-choices-file # Type: string Default: /home/runner/.emacs.d/.lsp-eslint-choices The file where choices to permit or deny ESLint libraries from running is stored. lsp-eslint-lint-task-enable # Type: boolean Default: nil Controls whether a task for linting the whole workspace will be available. lsp-eslint-lint-task-options # Type: string Default: . Command line options applied when running the task for linting the whole workspace (see https://eslint.org/docs/user-guide/command-line-interface). lsp-eslint-node # Type: file Default: node Path to nodejs. lsp-eslint-node-path # Type: (repeat string) Default: nil A path added to NODE_PATH when resolving the eslint module. lsp-eslint-options # Type: alist Default: nil The eslint options object to provide args normally passed to eslint when executed from a command line (see http://eslint.org/docs/developer-guide/nodejs-api#cliengine). lsp-eslint-package-manager # Type: (choice (const :tag npm npm) (const :tag yarn yarn) (const :tag pnpm pnpm) (string :tag other)) Default: npm The package manager you use to install node modules. lsp-eslint-provide-lint-task # Type: boolean Default: nil Controls whether a task for linting the whole workspace will be available. lsp-eslint-quiet # Type: boolean Default: nil Turns on quiet mode, which ignores warnings. lsp-eslint-rules-customizations # Type: (lsp-repeatable-vector (alist :options ((rule string) (severity (choice (const off) (const info) (const warn) (const error) (const upgrade) (const downgrade) (const default)))))) Default: [] Controls severity overrides for eslint rules. The value is a vector of alists, with each alist containing the following keys: - rule - The rule to match. Can match wildcards with *, or be prefixed with ! to negate the match. - severity - The severity to report this rule as. Can be one of the following: - \"off\": Disable the rule. - \"info\": Report as informational. - \"warn\": Report as a warning. - \"error\": Report as an error. - \"upgrade\": Increase by 1 severity level (eg. warning -> error). - \"downgrade\": Decrease by 1 severity level (eg. warning -> info). - \"default\": Report as the same severity specified in the eslint config. lsp-eslint-run # Type: (choice (const :tag onSave onSave) (const :tag onType onType)) Default: onType Run the linter on save (onSave) or on type (onType) lsp-eslint-runtime # Type: (repeat string) Default: nil The location of the node binary to run ESLint under. lsp-eslint-save-library-choices # Type: boolean Default: t Controls whether to remember choices made to permit or deny ESLint libraries from running. lsp-eslint-server-command # Type: (repeat string) Default: (node ~/server/out/eslintServer.js --stdio) Command to start eslint server. lsp-eslint-time-budget # Type: alist Default: nil The eslint config to inform you of slow validation times and long ESLint runs when computing code fixes during save. lsp-eslint-trace-server # Type: string Default: off Traces the communication between VSCode and the eslint linter service. lsp-eslint-unzipped-path # Type: file Default: ~/.emacs.d/.cache/lsp/eslint/unzipped The path to the file in which eslint will be stored. lsp-eslint-validate # Type: (repeat string) Default: (svelte) An array of language ids which should always be validated by eslint. lsp-eslint-warn-on-ignored-files # Type: bool Default: nil Controls whether a warning should be emitted when a file is ignored. lsp-eslint-working-directories # Type: lsp-string-vector Default: [] A vector of working directory names to use. Can be a pattern, an absolute path or a path relative to the workspace. Examples: - \"/home/user/abc/\" - \"abc/\" - (directory \"abc\") which is equivalent to \"abc\" above - (pattern \"abc/*\") Note that the home directory reference ~/ is not currently supported, use /home/[user]/ instead.","title":"Eslint"},{"location":"page/lsp-eslint/#eslint","text":"","title":"ESlint"},{"location":"page/lsp-eslint/#server","text":"For more information about the LSP server, check eslint .","title":"Server"},{"location":"page/lsp-eslint/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET eslint RET .","title":"Installation"},{"location":"page/lsp-eslint/#debugger-na","text":"","title":"Debugger: N/A"},{"location":"page/lsp-eslint/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-eslint/#lsp-eslint-auto-fix-on-save","text":"Type: boolean Default: nil Turns auto fix on save on or off.","title":"lsp-eslint-auto-fix-on-save"},{"location":"page/lsp-eslint/#lsp-eslint-code-action-disable-rule-comment","text":"Type: bool Default: t Controls whether code actions to add a rule-disabling comment should be shown.","title":"lsp-eslint-code-action-disable-rule-comment"},{"location":"page/lsp-eslint/#lsp-eslint-code-action-disable-rule-comment-location","text":"Type: (choice (const separateLine) (const sameLine)) Default: separateLine Controls where the disable rule code action places comments. Accepts the following values: - \"separateLine\": Add the comment above the line to be disabled (default). - \"sameLine\": Add the comment on the same line that will be disabled.","title":"lsp-eslint-code-action-disable-rule-comment-location"},{"location":"page/lsp-eslint/#lsp-eslint-code-action-show-documentation","text":"Type: bool Default: t Controls whether code actions to show documentation for an eslint rule should be shown.","title":"lsp-eslint-code-action-show-documentation"},{"location":"page/lsp-eslint/#lsp-eslint-config-problems","text":"Type: alist Default: nil The eslint problems configuration.","title":"lsp-eslint-config-problems"},{"location":"page/lsp-eslint/#lsp-eslint-download-url","text":"Type: string Default: https://github.com/emacs-lsp/lsp-server-binaries/blob/master/dbaeumer.vscode-eslint-2.2.2.vsix?raw=true Eslint language server download url.","title":"lsp-eslint-download-url"},{"location":"page/lsp-eslint/#lsp-eslint-enable","text":"Type: boolean Default: t Controls whether eslint is enabled for JavaScript files or not.","title":"lsp-eslint-enable"},{"location":"page/lsp-eslint/#lsp-eslint-experimental","text":"Type: alist Default: nil The eslint experimental configuration.","title":"lsp-eslint-experimental"},{"location":"page/lsp-eslint/#lsp-eslint-experimental-incremental-sync","text":"Type: boolean Default: t Controls whether the new incremental text document synchronization should be used.","title":"lsp-eslint-experimental-incremental-sync"},{"location":"page/lsp-eslint/#lsp-eslint-fix-all-problem-type","text":"Type: (choice (const all) (const problems) string) Default: all Determines which problems are fixed when running the source.fixAll code action.","title":"lsp-eslint-fix-all-problem-type"},{"location":"page/lsp-eslint/#lsp-eslint-format","text":"Type: boolean Default: t Whether to perform format.","title":"lsp-eslint-format"},{"location":"page/lsp-eslint/#lsp-eslint-library-choices-file","text":"Type: string Default: /home/runner/.emacs.d/.lsp-eslint-choices The file where choices to permit or deny ESLint libraries from running is stored.","title":"lsp-eslint-library-choices-file"},{"location":"page/lsp-eslint/#lsp-eslint-lint-task-enable","text":"Type: boolean Default: nil Controls whether a task for linting the whole workspace will be available.","title":"lsp-eslint-lint-task-enable"},{"location":"page/lsp-eslint/#lsp-eslint-lint-task-options","text":"Type: string Default: . Command line options applied when running the task for linting the whole workspace (see https://eslint.org/docs/user-guide/command-line-interface).","title":"lsp-eslint-lint-task-options"},{"location":"page/lsp-eslint/#lsp-eslint-node","text":"Type: file Default: node Path to nodejs.","title":"lsp-eslint-node"},{"location":"page/lsp-eslint/#lsp-eslint-node-path","text":"Type: (repeat string) Default: nil A path added to NODE_PATH when resolving the eslint module.","title":"lsp-eslint-node-path"},{"location":"page/lsp-eslint/#lsp-eslint-options","text":"Type: alist Default: nil The eslint options object to provide args normally passed to eslint when executed from a command line (see http://eslint.org/docs/developer-guide/nodejs-api#cliengine).","title":"lsp-eslint-options"},{"location":"page/lsp-eslint/#lsp-eslint-package-manager","text":"Type: (choice (const :tag npm npm) (const :tag yarn yarn) (const :tag pnpm pnpm) (string :tag other)) Default: npm The package manager you use to install node modules.","title":"lsp-eslint-package-manager"},{"location":"page/lsp-eslint/#lsp-eslint-provide-lint-task","text":"Type: boolean Default: nil Controls whether a task for linting the whole workspace will be available.","title":"lsp-eslint-provide-lint-task"},{"location":"page/lsp-eslint/#lsp-eslint-quiet","text":"Type: boolean Default: nil Turns on quiet mode, which ignores warnings.","title":"lsp-eslint-quiet"},{"location":"page/lsp-eslint/#lsp-eslint-rules-customizations","text":"Type: (lsp-repeatable-vector (alist :options ((rule string) (severity (choice (const off) (const info) (const warn) (const error) (const upgrade) (const downgrade) (const default)))))) Default: [] Controls severity overrides for eslint rules. The value is a vector of alists, with each alist containing the following keys: - rule - The rule to match. Can match wildcards with *, or be prefixed with ! to negate the match. - severity - The severity to report this rule as. Can be one of the following: - \"off\": Disable the rule. - \"info\": Report as informational. - \"warn\": Report as a warning. - \"error\": Report as an error. - \"upgrade\": Increase by 1 severity level (eg. warning -> error). - \"downgrade\": Decrease by 1 severity level (eg. warning -> info). - \"default\": Report as the same severity specified in the eslint config.","title":"lsp-eslint-rules-customizations"},{"location":"page/lsp-eslint/#lsp-eslint-run","text":"Type: (choice (const :tag onSave onSave) (const :tag onType onType)) Default: onType Run the linter on save (onSave) or on type (onType)","title":"lsp-eslint-run"},{"location":"page/lsp-eslint/#lsp-eslint-runtime","text":"Type: (repeat string) Default: nil The location of the node binary to run ESLint under.","title":"lsp-eslint-runtime"},{"location":"page/lsp-eslint/#lsp-eslint-save-library-choices","text":"Type: boolean Default: t Controls whether to remember choices made to permit or deny ESLint libraries from running.","title":"lsp-eslint-save-library-choices"},{"location":"page/lsp-eslint/#lsp-eslint-server-command","text":"Type: (repeat string) Default: (node ~/server/out/eslintServer.js --stdio) Command to start eslint server.","title":"lsp-eslint-server-command"},{"location":"page/lsp-eslint/#lsp-eslint-time-budget","text":"Type: alist Default: nil The eslint config to inform you of slow validation times and long ESLint runs when computing code fixes during save.","title":"lsp-eslint-time-budget"},{"location":"page/lsp-eslint/#lsp-eslint-trace-server","text":"Type: string Default: off Traces the communication between VSCode and the eslint linter service.","title":"lsp-eslint-trace-server"},{"location":"page/lsp-eslint/#lsp-eslint-unzipped-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/eslint/unzipped The path to the file in which eslint will be stored.","title":"lsp-eslint-unzipped-path"},{"location":"page/lsp-eslint/#lsp-eslint-validate","text":"Type: (repeat string) Default: (svelte) An array of language ids which should always be validated by eslint.","title":"lsp-eslint-validate"},{"location":"page/lsp-eslint/#lsp-eslint-warn-on-ignored-files","text":"Type: bool Default: nil Controls whether a warning should be emitted when a file is ignored.","title":"lsp-eslint-warn-on-ignored-files"},{"location":"page/lsp-eslint/#lsp-eslint-working-directories","text":"Type: lsp-string-vector Default: [] A vector of working directory names to use. Can be a pattern, an absolute path or a path relative to the workspace. Examples: - \"/home/user/abc/\" - \"abc/\" - (directory \"abc\") which is equivalent to \"abc\" above - (pattern \"abc/*\") Note that the home directory reference ~/ is not currently supported, use /home/[user]/ instead.","title":"lsp-eslint-working-directories"},{"location":"page/lsp-flow/","text":"JavaScript Flow # Server # For more information about the LSP server, check flow . Installation # For more instructions on how to install manually, check here . Debugger: Yes (Firefox/Chrome) # Available configurations # lsp-clients-flow-server # Type: file Default: flow The Flow executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path . lsp-clients-flow-server-args # Type: (repeat string) Default: (lsp) Extra arguments for starting the Flow language server.","title":"JavaScript Flow"},{"location":"page/lsp-flow/#javascript-flow","text":"","title":"JavaScript Flow"},{"location":"page/lsp-flow/#server","text":"For more information about the LSP server, check flow .","title":"Server"},{"location":"page/lsp-flow/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-flow/#debugger-yes-firefoxchrome","text":"","title":"Debugger: Yes (Firefox/Chrome)"},{"location":"page/lsp-flow/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-flow/#lsp-clients-flow-server","text":"Type: file Default: flow The Flow executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path .","title":"lsp-clients-flow-server"},{"location":"page/lsp-flow/#lsp-clients-flow-server-args","text":"Type: (repeat string) Default: (lsp) Extra arguments for starting the Flow language server.","title":"lsp-clients-flow-server-args"},{"location":"page/lsp-fortran/","text":"Fortran # Server # For more information about the LSP server, check fortls . Installation # pip install fortls Debugger: Yes # Available configurations # lsp-clients-fortls-args # Type: (repeat string) Default: nil Extra arguments for the fortls executable lsp-clients-fortls-executable # Type: file Default: fortls The fortls executable to use. Leave as just the executable name to use the default behavior of finding the executable with exec-path .","title":"Fortran"},{"location":"page/lsp-fortran/#fortran","text":"","title":"Fortran"},{"location":"page/lsp-fortran/#server","text":"For more information about the LSP server, check fortls .","title":"Server"},{"location":"page/lsp-fortran/#installation","text":"pip install fortls","title":"Installation"},{"location":"page/lsp-fortran/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-fortran/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-fortran/#lsp-clients-fortls-args","text":"Type: (repeat string) Default: nil Extra arguments for the fortls executable","title":"lsp-clients-fortls-args"},{"location":"page/lsp-fortran/#lsp-clients-fortls-executable","text":"Type: file Default: fortls The fortls executable to use. Leave as just the executable name to use the default behavior of finding the executable with exec-path .","title":"lsp-clients-fortls-executable"},{"location":"page/lsp-fsharp/","text":"F# # Server # For more information about the LSP server, check fsautocomplete . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET fsac RET . Automatic by lsp-mode Debugger: Yes (netcoredbg) # Available configurations # lsp-fsharp-auto-workspace-init # Type: boolean Default: nil Enable automatic workspace initialization. Do note that this can cause unexpected or challenging behaviors, as solutions with test projects are not autoloaded by FSharpAutoComplete. lsp-fsharp-enable-reference-code-lens # Type: boolean Default: t Enables reference count code lenses. lsp-fsharp-external-autocomplete # Type: boolean Default: nil Provides autocompletion for symbols from not opened namespaces/modules; inserts open on accept. lsp-fsharp-generate-binlog # Type: boolean Default: nil Generate a binlog for debugging project cracking. lsp-fsharp-interface-stub-generation # Type: boolean Default: t Enables code action to generate an interface stub. lsp-fsharp-interface-stub-generation-method-body # Type: string Default: failwith \"Not Implemented\" Defines dummy body used by interface stub generator. lsp-fsharp-interface-stub-generation-object-identifier # Type: string Default: this Defines object identifier used by interface stub generator, e.g. this or self . lsp-fsharp-keywords-autocomplete # Type: boolean Default: t Provides keywords in autocomplete list. lsp-fsharp-linter # Type: boolean Default: t Enables FSharpLint integration, provides additional warnings and code action fixes. lsp-fsharp-record-stub-generation # Type: boolean Default: t Enables code action to generate record stub. lsp-fsharp-record-stub-generation-body # Type: string Default: failwith \"Not Implemented\" Defines dummy body used by record stub generator. lsp-fsharp-resolve-namespaces # Type: boolean Default: t Enables resolve namespace quick fix; adds open if symbol is from not yet opened module/namespace. lsp-fsharp-server-args # Type: (repeat string) Default: nil Extra arguments for the F# language server. lsp-fsharp-server-install-dir # Type: directory Default: ~/.emacs.d/.cache/lsp/fsautocomplete/ Install directory for fsautocomplete server. The slash is expected at the end. lsp-fsharp-simplify-name-analyzer # Type: boolean Default: nil Enables simplify name analyzer and remove redundant qualifier quick fix. lsp-fsharp-union-case-stub-generation # Type: boolean Default: t Enables a code action to generate pattern matching cases. lsp-fsharp-union-case-stub-generation-body # Type: string Default: failwith \"Not Implemented\" Defines dummy body used by pattern matching generator. lsp-fsharp-unused-declarations-analyzer # Type: boolean Default: t Enables unused symbol detection. lsp-fsharp-unused-opens-analyzer # Type: boolean Default: t Enables unused open detection. lsp-fsharp-use-dotnet-tool-for-fsac # Type: boolean Default: t Run FsAutoComplete as a dotnet tool. The binary will be invoked via \"dotnet fsautocomplete\" in the project`s root directory, which will run a project-local tool if available, else the globally installed tool.","title":"F#"},{"location":"page/lsp-fsharp/#f","text":"","title":"F#"},{"location":"page/lsp-fsharp/#server","text":"For more information about the LSP server, check fsautocomplete .","title":"Server"},{"location":"page/lsp-fsharp/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET fsac RET . Automatic by lsp-mode","title":"Installation"},{"location":"page/lsp-fsharp/#debugger-yes-netcoredbg","text":"","title":"Debugger: Yes (netcoredbg)"},{"location":"page/lsp-fsharp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-fsharp/#lsp-fsharp-auto-workspace-init","text":"Type: boolean Default: nil Enable automatic workspace initialization. Do note that this can cause unexpected or challenging behaviors, as solutions with test projects are not autoloaded by FSharpAutoComplete.","title":"lsp-fsharp-auto-workspace-init"},{"location":"page/lsp-fsharp/#lsp-fsharp-enable-reference-code-lens","text":"Type: boolean Default: t Enables reference count code lenses.","title":"lsp-fsharp-enable-reference-code-lens"},{"location":"page/lsp-fsharp/#lsp-fsharp-external-autocomplete","text":"Type: boolean Default: nil Provides autocompletion for symbols from not opened namespaces/modules; inserts open on accept.","title":"lsp-fsharp-external-autocomplete"},{"location":"page/lsp-fsharp/#lsp-fsharp-generate-binlog","text":"Type: boolean Default: nil Generate a binlog for debugging project cracking.","title":"lsp-fsharp-generate-binlog"},{"location":"page/lsp-fsharp/#lsp-fsharp-interface-stub-generation","text":"Type: boolean Default: t Enables code action to generate an interface stub.","title":"lsp-fsharp-interface-stub-generation"},{"location":"page/lsp-fsharp/#lsp-fsharp-interface-stub-generation-method-body","text":"Type: string Default: failwith \"Not Implemented\" Defines dummy body used by interface stub generator.","title":"lsp-fsharp-interface-stub-generation-method-body"},{"location":"page/lsp-fsharp/#lsp-fsharp-interface-stub-generation-object-identifier","text":"Type: string Default: this Defines object identifier used by interface stub generator, e.g. this or self .","title":"lsp-fsharp-interface-stub-generation-object-identifier"},{"location":"page/lsp-fsharp/#lsp-fsharp-keywords-autocomplete","text":"Type: boolean Default: t Provides keywords in autocomplete list.","title":"lsp-fsharp-keywords-autocomplete"},{"location":"page/lsp-fsharp/#lsp-fsharp-linter","text":"Type: boolean Default: t Enables FSharpLint integration, provides additional warnings and code action fixes.","title":"lsp-fsharp-linter"},{"location":"page/lsp-fsharp/#lsp-fsharp-record-stub-generation","text":"Type: boolean Default: t Enables code action to generate record stub.","title":"lsp-fsharp-record-stub-generation"},{"location":"page/lsp-fsharp/#lsp-fsharp-record-stub-generation-body","text":"Type: string Default: failwith \"Not Implemented\" Defines dummy body used by record stub generator.","title":"lsp-fsharp-record-stub-generation-body"},{"location":"page/lsp-fsharp/#lsp-fsharp-resolve-namespaces","text":"Type: boolean Default: t Enables resolve namespace quick fix; adds open if symbol is from not yet opened module/namespace.","title":"lsp-fsharp-resolve-namespaces"},{"location":"page/lsp-fsharp/#lsp-fsharp-server-args","text":"Type: (repeat string) Default: nil Extra arguments for the F# language server.","title":"lsp-fsharp-server-args"},{"location":"page/lsp-fsharp/#lsp-fsharp-server-install-dir","text":"Type: directory Default: ~/.emacs.d/.cache/lsp/fsautocomplete/ Install directory for fsautocomplete server. The slash is expected at the end.","title":"lsp-fsharp-server-install-dir"},{"location":"page/lsp-fsharp/#lsp-fsharp-simplify-name-analyzer","text":"Type: boolean Default: nil Enables simplify name analyzer and remove redundant qualifier quick fix.","title":"lsp-fsharp-simplify-name-analyzer"},{"location":"page/lsp-fsharp/#lsp-fsharp-union-case-stub-generation","text":"Type: boolean Default: t Enables a code action to generate pattern matching cases.","title":"lsp-fsharp-union-case-stub-generation"},{"location":"page/lsp-fsharp/#lsp-fsharp-union-case-stub-generation-body","text":"Type: string Default: failwith \"Not Implemented\" Defines dummy body used by pattern matching generator.","title":"lsp-fsharp-union-case-stub-generation-body"},{"location":"page/lsp-fsharp/#lsp-fsharp-unused-declarations-analyzer","text":"Type: boolean Default: t Enables unused symbol detection.","title":"lsp-fsharp-unused-declarations-analyzer"},{"location":"page/lsp-fsharp/#lsp-fsharp-unused-opens-analyzer","text":"Type: boolean Default: t Enables unused open detection.","title":"lsp-fsharp-unused-opens-analyzer"},{"location":"page/lsp-fsharp/#lsp-fsharp-use-dotnet-tool-for-fsac","text":"Type: boolean Default: t Run FsAutoComplete as a dotnet tool. The binary will be invoked via \"dotnet fsautocomplete\" in the project`s root directory, which will run a project-local tool if available, else the globally installed tool.","title":"lsp-fsharp-use-dotnet-tool-for-fsac"},{"location":"page/lsp-gdscript/","text":"GDScript # Server # For more information about the LSP server, check godot . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-gdscript-port # Type: integer Default: 6005 Port to connect server to","title":"GDScript"},{"location":"page/lsp-gdscript/#gdscript","text":"","title":"GDScript"},{"location":"page/lsp-gdscript/#server","text":"For more information about the LSP server, check godot .","title":"Server"},{"location":"page/lsp-gdscript/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-gdscript/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-gdscript/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-gdscript/#lsp-gdscript-port","text":"Type: integer Default: 6005 Port to connect server to","title":"lsp-gdscript-port"},{"location":"page/lsp-gettext/","text":"gettext # Server # For more information about the LSP server, check po-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Lsp gettext"},{"location":"page/lsp-gettext/#gettext","text":"","title":"gettext"},{"location":"page/lsp-gettext/#server","text":"For more information about the LSP server, check po-language-server .","title":"Server"},{"location":"page/lsp-gettext/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-gettext/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-gettext/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-gleam/","text":"Gleam # Server # For more information about the LSP server, check gleam . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-gleam-executable # Type: file Default: (gleam lsp) Command to run the Gleam LSP server.","title":"Gleam"},{"location":"page/lsp-gleam/#gleam","text":"","title":"Gleam"},{"location":"page/lsp-gleam/#server","text":"For more information about the LSP server, check gleam .","title":"Server"},{"location":"page/lsp-gleam/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-gleam/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-gleam/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-gleam/#lsp-gleam-executable","text":"Type: file Default: (gleam lsp) Command to run the Gleam LSP server.","title":"lsp-gleam-executable"},{"location":"page/lsp-glsl/","text":"GLSL # Server # For more information about the LSP server, check glsl . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-glsl-executable # Type: list Default: (glslls --stdin) Command to run the GLSL language server.","title":"GLSL"},{"location":"page/lsp-glsl/#glsl","text":"","title":"GLSL"},{"location":"page/lsp-glsl/#server","text":"For more information about the LSP server, check glsl .","title":"Server"},{"location":"page/lsp-glsl/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-glsl/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-glsl/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-glsl/#lsp-glsl-executable","text":"Type: list Default: (glslls --stdin) Command to run the GLSL language server.","title":"lsp-glsl-executable"},{"location":"page/lsp-gopls/","text":"Go # Server # For more information about the LSP server, check gopls . Installation # For more instructions on how to install manually, check here . Debugger: Yes # root_file: docs/manual-language-docs/lsp-gopls.md # Go (gopls) # lsp-mode provides Go language support via the gopls language server. See upstream for gopls installation instructions. Configuration # By default, some gopls analyzers are enabled and others are disabled. To override, use: (setq lsp-go-analyses '((shadow . t) (simplifycompositelit . :json-false))) Troubleshooting # Working with nested go.mod files # If you encounter an error like one of these: errors loading workspace: You are working in a nested module. Please open it as a separate workspace folder This file is in %s, which is a nested module in the %s module. gopls currently requires one module per workspace folder. Please open %s as a separate workspace folder Then the problem is most likely because lsp-mode has not started gopls with the correct root directory. By default lsp-mode will pick the root of your whole Git repository (or whatever else Projectile turns up) for all language servers started inside the repo. However, if you have nested go.mod files, you need to have lsp-mode start separate instances of gopls for each nested go.mod , and use the appropriate one for each file. You can make this work by manually invoking M-x lsp-workspace-folders-add and adding each nested go.mod directory as a workspace folder. Then reloading LSP with M-x lsp in an affected file (or restarting Emacs) will cause the file to be re-associated with a gopls process running under the correct project workspace. See #3473 for a bit more discussion of this particular issue. Available configurations #","title":"Lsp gopls"},{"location":"page/lsp-gopls/#go","text":"","title":"Go"},{"location":"page/lsp-gopls/#server","text":"For more information about the LSP server, check gopls .","title":"Server"},{"location":"page/lsp-gopls/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-gopls/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-gopls/#root_file-docsmanual-language-docslsp-goplsmd","text":"","title":"root_file: docs/manual-language-docs/lsp-gopls.md"},{"location":"page/lsp-gopls/#go-gopls","text":"lsp-mode provides Go language support via the gopls language server. See upstream for gopls installation instructions.","title":"Go (gopls)"},{"location":"page/lsp-gopls/#configuration","text":"By default, some gopls analyzers are enabled and others are disabled. To override, use: (setq lsp-go-analyses '((shadow . t) (simplifycompositelit . :json-false)))","title":"Configuration"},{"location":"page/lsp-gopls/#troubleshooting","text":"","title":"Troubleshooting"},{"location":"page/lsp-gopls/#working-with-nested-gomod-files","text":"If you encounter an error like one of these: errors loading workspace: You are working in a nested module. Please open it as a separate workspace folder This file is in %s, which is a nested module in the %s module. gopls currently requires one module per workspace folder. Please open %s as a separate workspace folder Then the problem is most likely because lsp-mode has not started gopls with the correct root directory. By default lsp-mode will pick the root of your whole Git repository (or whatever else Projectile turns up) for all language servers started inside the repo. However, if you have nested go.mod files, you need to have lsp-mode start separate instances of gopls for each nested go.mod , and use the appropriate one for each file. You can make this work by manually invoking M-x lsp-workspace-folders-add and adding each nested go.mod directory as a workspace folder. Then reloading LSP with M-x lsp in an affected file (or restarting Emacs) will cause the file to be re-associated with a gopls process running under the correct project workspace. See #3473 for a bit more discussion of this particular issue.","title":"Working with nested go.mod files"},{"location":"page/lsp-gopls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-grammarly/","text":"Grammarly # Server # For more information about the LSP server, check @emacs-grammarly/grammarly-languageserver . Installation # npm i -g @emacs-grammarly/grammarly-languageserver For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Grammarly"},{"location":"page/lsp-grammarly/#grammarly","text":"","title":"Grammarly"},{"location":"page/lsp-grammarly/#server","text":"For more information about the LSP server, check @emacs-grammarly/grammarly-languageserver .","title":"Server"},{"location":"page/lsp-grammarly/#installation","text":"npm i -g @emacs-grammarly/grammarly-languageserver For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-grammarly/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-grammarly/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-graphql/","text":"GraphQL # Server # For more information about the LSP server, check graphql-language-service-cli . Installation # npm i -g graphql-language-service-cli For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-graphql-server-args # Type: (repeat string) Default: (server --method=stream) CLI arguments for graphql language server.","title":"GraphQL"},{"location":"page/lsp-graphql/#graphql","text":"","title":"GraphQL"},{"location":"page/lsp-graphql/#server","text":"For more information about the LSP server, check graphql-language-service-cli .","title":"Server"},{"location":"page/lsp-graphql/#installation","text":"npm i -g graphql-language-service-cli For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-graphql/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-graphql/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-graphql/#lsp-clients-graphql-server-args","text":"Type: (repeat string) Default: (server --method=stream) CLI arguments for graphql language server.","title":"lsp-clients-graphql-server-args"},{"location":"page/lsp-groovy/","text":"Groovy # Server # For more information about the LSP server, check groovy-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-groovy-classpath # Type: lsp-string-vector Default: [/usr/local/opt/groovy/libexec/lib] List of paths to Groovy JARs. lsp-groovy-server-file # Type: file Default: ~/.emacs.d/.cache/lsp/groovy-language-server-all.jar JAR file path for groovy-language-server-all.jar.","title":"Groovy"},{"location":"page/lsp-groovy/#groovy","text":"","title":"Groovy"},{"location":"page/lsp-groovy/#server","text":"For more information about the LSP server, check groovy-language-server .","title":"Server"},{"location":"page/lsp-groovy/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-groovy/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-groovy/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-groovy/#lsp-groovy-classpath","text":"Type: lsp-string-vector Default: [/usr/local/opt/groovy/libexec/lib] List of paths to Groovy JARs.","title":"lsp-groovy-classpath"},{"location":"page/lsp-groovy/#lsp-groovy-server-file","text":"Type: file Default: ~/.emacs.d/.cache/lsp/groovy-language-server-all.jar JAR file path for groovy-language-server-all.jar.","title":"lsp-groovy-server-file"},{"location":"page/lsp-hack/","text":"Hack # Server # For more information about the LSP server, check hhvm . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-hack-command # Type: (repeat string) Default: (hh_client lsp --from emacs) Command to start hh_client.","title":"Hack"},{"location":"page/lsp-hack/#hack","text":"","title":"Hack"},{"location":"page/lsp-hack/#server","text":"For more information about the LSP server, check hhvm .","title":"Server"},{"location":"page/lsp-hack/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-hack/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-hack/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-hack/#lsp-clients-hack-command","text":"Type: (repeat string) Default: (hh_client lsp --from emacs) Command to start hh_client.","title":"lsp-clients-hack-command"},{"location":"page/lsp-html/","text":"HTML # Server # For more information about the LSP server, check html . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET html-ls RET . npm install -g vscode-langservers-extracted Debugger: Not available # Available configurations # lsp-html-auto-closing-tags # Type: boolean Default: t Enable/disable autoclosing of HTML tags. lsp-html-experimental-custom-data # Type: (choice (const nil) string) Default: nil A list of JSON file paths that define custom tags, properties and other HTML syntax constructs. Only workspace folder setting will be read. lsp-html-format-content-unformatted # Type: (choice (const nil) string) Default: pre,code,textarea lsp-html-format-enable # Type: boolean Default: t Enable/disable default HTML formatter. lsp-html-format-end-with-newline # Type: boolean Default: nil End with a newline. lsp-html-format-extra-liners # Type: (choice (const nil) string) Default: head, body, /html lsp-html-format-indent-handlebars # Type: boolean Default: nil lsp-html-format-indent-inner-html # Type: boolean Default: nil lsp-html-format-max-preserve-new-lines # Type: (choice (const nil) integer) Default: nil lsp-html-format-preserve-new-lines # Type: boolean Default: t Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text. lsp-html-format-unformatted # Type: (choice (const nil) string) Default: wbr lsp-html-format-wrap-attributes # Type: (choice (const auto) (const force) (const force-aligned) (const force-expand-multiline) (const aligned-multiple) (const preserve) (const preserve-aligned)) Default: auto Wrap attributes. lsp-html-format-wrap-line-length # Type: number Default: 120 Maximum amount of characters per line (0 = disable). lsp-html-server-command-args # Type: (repeat string) Default: (--stdio) Command to start html-languageserver. lsp-html-suggest-html5 # Type: boolean Default: t Controls whether the built-in HTML language support suggests HTML5 tags, properties and values. lsp-html-trace-server # Type: (choice (const off) (const messages) (const verbose)) Default: off Traces the communication between VS Code and the HTML language server. lsp-html-validate-scripts # Type: boolean Default: t Controls whether the built-in HTML language support validates embedded scripts. lsp-html-validate-styles # Type: boolean Default: t Controls whether the built-in HTML language support validates embedded styles.","title":"HTML"},{"location":"page/lsp-html/#html","text":"","title":"HTML"},{"location":"page/lsp-html/#server","text":"For more information about the LSP server, check html .","title":"Server"},{"location":"page/lsp-html/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET html-ls RET . npm install -g vscode-langservers-extracted","title":"Installation"},{"location":"page/lsp-html/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-html/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-html/#lsp-html-auto-closing-tags","text":"Type: boolean Default: t Enable/disable autoclosing of HTML tags.","title":"lsp-html-auto-closing-tags"},{"location":"page/lsp-html/#lsp-html-experimental-custom-data","text":"Type: (choice (const nil) string) Default: nil A list of JSON file paths that define custom tags, properties and other HTML syntax constructs. Only workspace folder setting will be read.","title":"lsp-html-experimental-custom-data"},{"location":"page/lsp-html/#lsp-html-format-content-unformatted","text":"Type: (choice (const nil) string) Default: pre,code,textarea","title":"lsp-html-format-content-unformatted"},{"location":"page/lsp-html/#lsp-html-format-enable","text":"Type: boolean Default: t Enable/disable default HTML formatter.","title":"lsp-html-format-enable"},{"location":"page/lsp-html/#lsp-html-format-end-with-newline","text":"Type: boolean Default: nil End with a newline.","title":"lsp-html-format-end-with-newline"},{"location":"page/lsp-html/#lsp-html-format-extra-liners","text":"Type: (choice (const nil) string) Default: head, body, /html","title":"lsp-html-format-extra-liners"},{"location":"page/lsp-html/#lsp-html-format-indent-handlebars","text":"Type: boolean Default: nil","title":"lsp-html-format-indent-handlebars"},{"location":"page/lsp-html/#lsp-html-format-indent-inner-html","text":"Type: boolean Default: nil","title":"lsp-html-format-indent-inner-html"},{"location":"page/lsp-html/#lsp-html-format-max-preserve-new-lines","text":"Type: (choice (const nil) integer) Default: nil","title":"lsp-html-format-max-preserve-new-lines"},{"location":"page/lsp-html/#lsp-html-format-preserve-new-lines","text":"Type: boolean Default: t Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text.","title":"lsp-html-format-preserve-new-lines"},{"location":"page/lsp-html/#lsp-html-format-unformatted","text":"Type: (choice (const nil) string) Default: wbr","title":"lsp-html-format-unformatted"},{"location":"page/lsp-html/#lsp-html-format-wrap-attributes","text":"Type: (choice (const auto) (const force) (const force-aligned) (const force-expand-multiline) (const aligned-multiple) (const preserve) (const preserve-aligned)) Default: auto Wrap attributes.","title":"lsp-html-format-wrap-attributes"},{"location":"page/lsp-html/#lsp-html-format-wrap-line-length","text":"Type: number Default: 120 Maximum amount of characters per line (0 = disable).","title":"lsp-html-format-wrap-line-length"},{"location":"page/lsp-html/#lsp-html-server-command-args","text":"Type: (repeat string) Default: (--stdio) Command to start html-languageserver.","title":"lsp-html-server-command-args"},{"location":"page/lsp-html/#lsp-html-suggest-html5","text":"Type: boolean Default: t Controls whether the built-in HTML language support suggests HTML5 tags, properties and values.","title":"lsp-html-suggest-html5"},{"location":"page/lsp-html/#lsp-html-trace-server","text":"Type: (choice (const off) (const messages) (const verbose)) Default: off Traces the communication between VS Code and the HTML language server.","title":"lsp-html-trace-server"},{"location":"page/lsp-html/#lsp-html-validate-scripts","text":"Type: boolean Default: t Controls whether the built-in HTML language support validates embedded scripts.","title":"lsp-html-validate-scripts"},{"location":"page/lsp-html/#lsp-html-validate-styles","text":"Type: boolean Default: t Controls whether the built-in HTML language support validates embedded styles.","title":"lsp-html-validate-styles"},{"location":"page/lsp-idris/","text":"Idris # Server # For more information about the LSP server, check idris2-lsp . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-idris2-lsp-path # Type: string Default: idris2-lsp Command to start Idris 2 language server process. lsp-idris2-lsp-trace-server # Type: (choice (:tag off messages verbose)) Default: off Traces the communication between VS Code and the language server.","title":"Idris"},{"location":"page/lsp-idris/#idris","text":"","title":"Idris"},{"location":"page/lsp-idris/#server","text":"For more information about the LSP server, check idris2-lsp .","title":"Server"},{"location":"page/lsp-idris/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-idris/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-idris/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-idris/#lsp-idris2-lsp-path","text":"Type: string Default: idris2-lsp Command to start Idris 2 language server process.","title":"lsp-idris2-lsp-path"},{"location":"page/lsp-idris/#lsp-idris2-lsp-trace-server","text":"Type: (choice (:tag off messages verbose)) Default: off Traces the communication between VS Code and the language server.","title":"lsp-idris2-lsp-trace-server"},{"location":"page/lsp-intelephense/","text":"PHP(recommended) # Server # For more information about the LSP server, check intelephense . Installation # Automatic or manual by npm i intelephense -g`` Debugger: Yes # Available configurations # lsp-clients-php-server-command # Type: (repeat string) Default: nil Install directory for php-language-server. lsp-php-composer-dir # Type: string Default: nil Home directory of composer. lsp-intelephense-clear-cache # Type: boolean Default: nil Optional flag to clear server state. lsp-intelephense-completion-fully-qualify-global-constants-and-functions # Type: boolean Default: nil Global namespace constants and functions will be fully qualified (prefixed with a backslash). lsp-intelephense-completion-insert-use-declaration # Type: boolean Default: t Use declarations will be automatically inserted for namespaced classes, traits, interfaces, functions, and constants. lsp-intelephense-completion-max-items # Type: number Default: 100 The maximum number of completion items returned per request. lsp-intelephense-completion-trigger-parameter-hints # Type: boolean Default: t Method and function completions will include parentheses and trigger parameter hints. lsp-intelephense-files-associations # Type: (repeat string) Default: [*.php *.phtml] Configure glob patterns to make files available for language server features. lsp-intelephense-files-exclude # Type: (repeat string) Default: [**/.git/** **/.svn/** **/.hg/** **/CVS/** **/.DS_Store/** **/node_modules/** **/bower_components/** **/vendor/**/{Test,test,Tests,tests}/**] Configure glob patterns to exclude certain files and folders from all language server features. lsp-intelephense-files-max-size # Type: number Default: 1000000 Maximum file size in bytes. lsp-intelephense-format-braces # Type: string Default: psr12 Formatting braces style. psr12, allman or k&r lsp-intelephense-format-enable # Type: boolean Default: t Enables formatting. lsp-intelephense-global-storage-path # Type: directory Default: ~/.emacs.d/intelephense Optional absolute path to global storage dir. lsp-intelephense-licence-key # Type: string Default: nil Enter your intelephense licence key here to access premium features. lsp-intelephense-multi-root # Type: boolean Default: t Flag to control if the server supports multi-root projects. lsp-intelephense-php-version # Type: string Default: 8.0.1 Minimum version of PHP to refer to. Affects code actions, diagnostic & completions. lsp-intelephense-rename-exclude # Type: (repeat string) Default: [**/vendor/**] Glob patterns to exclude files and folders from having symbols renamed. Rename operation will fail if references and/or definitions are found in excluded files/folders. lsp-intelephense-server-command # Type: (repeat string) Default: (intelephense --stdio) Command to start Intelephense. lsp-intelephense-storage-path # Type: directory Default: ~/.emacs.d/lsp-cache Optional absolute path to storage dir. lsp-intelephense-stubs # Type: (repeat string) Default: [apache bcmath bz2 calendar com_dotnet Core ctype curl date dba dom enchant exif fileinfo filter fpm ftp gd hash iconv imap interbase intl json ldap libxml mbstring mcrypt meta mssql mysqli oci8 odbc openssl pcntl pcre PDO pdo_ibm pdo_mysql pdo_pgsql pdo_sqlite pgsql Phar posix pspell readline recode Reflection regex session shmop SimpleXML snmp soap sockets sodium SPL sqlite3 standard superglobals sybase sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter Zend OPcache zip zlib] Configure stub files for built in symbols and common extensions. The default setting includes PHP core and all bundled extensions. lsp-intelephense-telemetry-enabled # Type: boolean Default: nil Anonymous usage and crash data will be sent to Azure Application Insights. lsp-intelephense-trace-server # Type: (choice (:tag off messages verbose)) Default: off Traces the communication between VSCode and the intelephense language server.","title":"PHP (intelephense)"},{"location":"page/lsp-intelephense/#phprecommended","text":"","title":"PHP(recommended)"},{"location":"page/lsp-intelephense/#server","text":"For more information about the LSP server, check intelephense .","title":"Server"},{"location":"page/lsp-intelephense/#installation","text":"Automatic or manual by npm i intelephense -g``","title":"Installation"},{"location":"page/lsp-intelephense/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-intelephense/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-intelephense/#lsp-clients-php-server-command","text":"Type: (repeat string) Default: nil Install directory for php-language-server.","title":"lsp-clients-php-server-command"},{"location":"page/lsp-intelephense/#lsp-php-composer-dir","text":"Type: string Default: nil Home directory of composer.","title":"lsp-php-composer-dir"},{"location":"page/lsp-intelephense/#lsp-intelephense-clear-cache","text":"Type: boolean Default: nil Optional flag to clear server state.","title":"lsp-intelephense-clear-cache"},{"location":"page/lsp-intelephense/#lsp-intelephense-completion-fully-qualify-global-constants-and-functions","text":"Type: boolean Default: nil Global namespace constants and functions will be fully qualified (prefixed with a backslash).","title":"lsp-intelephense-completion-fully-qualify-global-constants-and-functions"},{"location":"page/lsp-intelephense/#lsp-intelephense-completion-insert-use-declaration","text":"Type: boolean Default: t Use declarations will be automatically inserted for namespaced classes, traits, interfaces, functions, and constants.","title":"lsp-intelephense-completion-insert-use-declaration"},{"location":"page/lsp-intelephense/#lsp-intelephense-completion-max-items","text":"Type: number Default: 100 The maximum number of completion items returned per request.","title":"lsp-intelephense-completion-max-items"},{"location":"page/lsp-intelephense/#lsp-intelephense-completion-trigger-parameter-hints","text":"Type: boolean Default: t Method and function completions will include parentheses and trigger parameter hints.","title":"lsp-intelephense-completion-trigger-parameter-hints"},{"location":"page/lsp-intelephense/#lsp-intelephense-files-associations","text":"Type: (repeat string) Default: [*.php *.phtml] Configure glob patterns to make files available for language server features.","title":"lsp-intelephense-files-associations"},{"location":"page/lsp-intelephense/#lsp-intelephense-files-exclude","text":"Type: (repeat string) Default: [**/.git/** **/.svn/** **/.hg/** **/CVS/** **/.DS_Store/** **/node_modules/** **/bower_components/** **/vendor/**/{Test,test,Tests,tests}/**] Configure glob patterns to exclude certain files and folders from all language server features.","title":"lsp-intelephense-files-exclude"},{"location":"page/lsp-intelephense/#lsp-intelephense-files-max-size","text":"Type: number Default: 1000000 Maximum file size in bytes.","title":"lsp-intelephense-files-max-size"},{"location":"page/lsp-intelephense/#lsp-intelephense-format-braces","text":"Type: string Default: psr12 Formatting braces style. psr12, allman or k&r","title":"lsp-intelephense-format-braces"},{"location":"page/lsp-intelephense/#lsp-intelephense-format-enable","text":"Type: boolean Default: t Enables formatting.","title":"lsp-intelephense-format-enable"},{"location":"page/lsp-intelephense/#lsp-intelephense-global-storage-path","text":"Type: directory Default: ~/.emacs.d/intelephense Optional absolute path to global storage dir.","title":"lsp-intelephense-global-storage-path"},{"location":"page/lsp-intelephense/#lsp-intelephense-licence-key","text":"Type: string Default: nil Enter your intelephense licence key here to access premium features.","title":"lsp-intelephense-licence-key"},{"location":"page/lsp-intelephense/#lsp-intelephense-multi-root","text":"Type: boolean Default: t Flag to control if the server supports multi-root projects.","title":"lsp-intelephense-multi-root"},{"location":"page/lsp-intelephense/#lsp-intelephense-php-version","text":"Type: string Default: 8.0.1 Minimum version of PHP to refer to. Affects code actions, diagnostic & completions.","title":"lsp-intelephense-php-version"},{"location":"page/lsp-intelephense/#lsp-intelephense-rename-exclude","text":"Type: (repeat string) Default: [**/vendor/**] Glob patterns to exclude files and folders from having symbols renamed. Rename operation will fail if references and/or definitions are found in excluded files/folders.","title":"lsp-intelephense-rename-exclude"},{"location":"page/lsp-intelephense/#lsp-intelephense-server-command","text":"Type: (repeat string) Default: (intelephense --stdio) Command to start Intelephense.","title":"lsp-intelephense-server-command"},{"location":"page/lsp-intelephense/#lsp-intelephense-storage-path","text":"Type: directory Default: ~/.emacs.d/lsp-cache Optional absolute path to storage dir.","title":"lsp-intelephense-storage-path"},{"location":"page/lsp-intelephense/#lsp-intelephense-stubs","text":"Type: (repeat string) Default: [apache bcmath bz2 calendar com_dotnet Core ctype curl date dba dom enchant exif fileinfo filter fpm ftp gd hash iconv imap interbase intl json ldap libxml mbstring mcrypt meta mssql mysqli oci8 odbc openssl pcntl pcre PDO pdo_ibm pdo_mysql pdo_pgsql pdo_sqlite pgsql Phar posix pspell readline recode Reflection regex session shmop SimpleXML snmp soap sockets sodium SPL sqlite3 standard superglobals sybase sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter Zend OPcache zip zlib] Configure stub files for built in symbols and common extensions. The default setting includes PHP core and all bundled extensions.","title":"lsp-intelephense-stubs"},{"location":"page/lsp-intelephense/#lsp-intelephense-telemetry-enabled","text":"Type: boolean Default: nil Anonymous usage and crash data will be sent to Azure Application Insights.","title":"lsp-intelephense-telemetry-enabled"},{"location":"page/lsp-intelephense/#lsp-intelephense-trace-server","text":"Type: (choice (:tag off messages verbose)) Default: off Traces the communication between VSCode and the intelephense language server.","title":"lsp-intelephense-trace-server"},{"location":"page/lsp-jedi/","text":"Python (Jedi-language-server) # Server # For more information about the LSP server, check jedi . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Python (Jedi Language Server)"},{"location":"page/lsp-jedi/#python-jedi-language-server","text":"","title":"Python (Jedi-language-server)"},{"location":"page/lsp-jedi/#server","text":"For more information about the LSP server, check jedi .","title":"Server"},{"location":"page/lsp-jedi/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-jedi/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-jedi/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-json/","text":"Json # Server # For more information about the LSP server, check vscode-json-languageserver . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET json-ls RET . Automatic or manual by npm i -g vscode-langservers-extracted Debugger: Not available # Available configurations # lsp-http-proxy # Type: string Default: nil The URL of the proxy server to use when fetching schema. lsp-http-proxyStrictSSL # Type: boolean Default: t The URL of the proxy server to use when fetching schema. lsp-json-schemas # Type: (repeat alist) Default: nil Associate schemas to JSON files in the current project example can be found here .","title":"Json"},{"location":"page/lsp-json/#json","text":"","title":"Json"},{"location":"page/lsp-json/#server","text":"For more information about the LSP server, check vscode-json-languageserver .","title":"Server"},{"location":"page/lsp-json/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET json-ls RET . Automatic or manual by npm i -g vscode-langservers-extracted","title":"Installation"},{"location":"page/lsp-json/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-json/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-json/#lsp-http-proxy","text":"Type: string Default: nil The URL of the proxy server to use when fetching schema.","title":"lsp-http-proxy"},{"location":"page/lsp-json/#lsp-http-proxystrictssl","text":"Type: boolean Default: t The URL of the proxy server to use when fetching schema.","title":"lsp-http-proxyStrictSSL"},{"location":"page/lsp-json/#lsp-json-schemas","text":"Type: (repeat alist) Default: nil Associate schemas to JSON files in the current project example can be found here .","title":"lsp-json-schemas"},{"location":"page/lsp-julia/","text":"Julia # Server # For more information about the LSP server, check lsp-julia . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Julia"},{"location":"page/lsp-julia/#julia","text":"","title":"Julia"},{"location":"page/lsp-julia/#server","text":"For more information about the LSP server, check lsp-julia .","title":"Server"},{"location":"page/lsp-julia/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-julia/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-julia/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-kotlin/","text":"Kotlin # Server # For more information about the LSP server, check kotlin-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-kotlin-server-executable # Type: string Default: kotlin-language-server The kotlin-language-server executable to use. Leave as just the executable name to use the default behavior of finding the executable with exec-path . lsp-kotlin-compiler-jvm-target # Type: string Default: 1.8 Specifies the JVM target, e.g. \"1.6\" or \"1.8\". lsp-kotlin-completion-snippets-enabled # Type: boolean Default: t Specifies whether code completion should provide snippets (true) or plain-text items (false). lsp-kotlin-debug-adapter-enabled # Type: boolean Default: t [Recommended] Specifies whether the debug adapter should be used. When enabled a debugger for Kotlin will be available. lsp-kotlin-debug-adapter-path # Type: string Default: `` Optionally a custom path to the debug adapter executable. lsp-kotlin-external-sources-auto-convert-to-kotlin # Type: boolean Default: t Specifies whether decompiled/external classes should be auto-converted to Kotlin. lsp-kotlin-external-sources-use-kls-scheme # Type: boolean Default: t [Recommended] Specifies whether URIs inside JARs should be represented using the kls -scheme. lsp-kotlin-linting-debounce-time # Type: number Default: 250 [DEBUG] Specifies the debounce time limit. Lower to increase responsiveness at the cost of possible stability issues. lsp-kotlin-server-download-url # Type: string Default: https://github.com/fwcd/kotlin-language-server/releases/latest/download/server.zip The URL for the language server download. lsp-kotlin-trace-server # Type: (choice (:tag off messages verbose)) Default: off Traces the communication between VSCode and the Kotlin language server.","title":"Kotlin"},{"location":"page/lsp-kotlin/#kotlin","text":"","title":"Kotlin"},{"location":"page/lsp-kotlin/#server","text":"For more information about the LSP server, check kotlin-language-server .","title":"Server"},{"location":"page/lsp-kotlin/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-kotlin/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-kotlin/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-kotlin/#lsp-clients-kotlin-server-executable","text":"Type: string Default: kotlin-language-server The kotlin-language-server executable to use. Leave as just the executable name to use the default behavior of finding the executable with exec-path .","title":"lsp-clients-kotlin-server-executable"},{"location":"page/lsp-kotlin/#lsp-kotlin-compiler-jvm-target","text":"Type: string Default: 1.8 Specifies the JVM target, e.g. \"1.6\" or \"1.8\".","title":"lsp-kotlin-compiler-jvm-target"},{"location":"page/lsp-kotlin/#lsp-kotlin-completion-snippets-enabled","text":"Type: boolean Default: t Specifies whether code completion should provide snippets (true) or plain-text items (false).","title":"lsp-kotlin-completion-snippets-enabled"},{"location":"page/lsp-kotlin/#lsp-kotlin-debug-adapter-enabled","text":"Type: boolean Default: t [Recommended] Specifies whether the debug adapter should be used. When enabled a debugger for Kotlin will be available.","title":"lsp-kotlin-debug-adapter-enabled"},{"location":"page/lsp-kotlin/#lsp-kotlin-debug-adapter-path","text":"Type: string Default: `` Optionally a custom path to the debug adapter executable.","title":"lsp-kotlin-debug-adapter-path"},{"location":"page/lsp-kotlin/#lsp-kotlin-external-sources-auto-convert-to-kotlin","text":"Type: boolean Default: t Specifies whether decompiled/external classes should be auto-converted to Kotlin.","title":"lsp-kotlin-external-sources-auto-convert-to-kotlin"},{"location":"page/lsp-kotlin/#lsp-kotlin-external-sources-use-kls-scheme","text":"Type: boolean Default: t [Recommended] Specifies whether URIs inside JARs should be represented using the kls -scheme.","title":"lsp-kotlin-external-sources-use-kls-scheme"},{"location":"page/lsp-kotlin/#lsp-kotlin-linting-debounce-time","text":"Type: number Default: 250 [DEBUG] Specifies the debounce time limit. Lower to increase responsiveness at the cost of possible stability issues.","title":"lsp-kotlin-linting-debounce-time"},{"location":"page/lsp-kotlin/#lsp-kotlin-server-download-url","text":"Type: string Default: https://github.com/fwcd/kotlin-language-server/releases/latest/download/server.zip The URL for the language server download.","title":"lsp-kotlin-server-download-url"},{"location":"page/lsp-kotlin/#lsp-kotlin-trace-server","text":"Type: (choice (:tag off messages verbose)) Default: off Traces the communication between VSCode and the Kotlin language server.","title":"lsp-kotlin-trace-server"},{"location":"page/lsp-latex/","text":"TeX, LaTeX, etc. # Server # For more information about the LSP server, check texlab . Installation # cargo install --git https://github.com/latex-lsp/texlab.git Debugger: Not available # root_file: docs/manual-language-docs/lsp-latex.md # lsp-latex.el: texlab LSP-client # See lsp-latex.el homepage . Available configurations #","title":"TeX, LaTeX, etc (texlab, external)"},{"location":"page/lsp-latex/#tex-latex-etc","text":"","title":"TeX, LaTeX, etc."},{"location":"page/lsp-latex/#server","text":"For more information about the LSP server, check texlab .","title":"Server"},{"location":"page/lsp-latex/#installation","text":"cargo install --git https://github.com/latex-lsp/texlab.git","title":"Installation"},{"location":"page/lsp-latex/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-latex/#root_file-docsmanual-language-docslsp-latexmd","text":"","title":"root_file: docs/manual-language-docs/lsp-latex.md"},{"location":"page/lsp-latex/#lsp-latexel-texlab-lsp-client","text":"See lsp-latex.el homepage .","title":"lsp-latex.el: texlab LSP-client"},{"location":"page/lsp-latex/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ltex/","text":"LanguageTool # Server # For more information about the LSP server, check LTEX . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"LanguageTool (LTEX)"},{"location":"page/lsp-ltex/#languagetool","text":"","title":"LanguageTool"},{"location":"page/lsp-ltex/#server","text":"For more information about the LSP server, check LTEX .","title":"Server"},{"location":"page/lsp-ltex/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-ltex/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ltex/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-lua-language-server/","text":"Lua # Server # For more information about the LSP server, check lua-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-lua-language-server-args # Type: (repeat string) Default: (-E) Arguments to run the Lua Language server. lsp-clients-lua-language-server-bin # Type: file Default: ~/.emacs.d/.cache/lsp/lua-language-server/bin/lua-language-server Location of Lua Language Server. lsp-clients-lua-language-server-command # Type: (repeat string) Default: nil Command to start Lua Language server. lsp-clients-lua-language-server-install-dir # Type: directory Default: ~/.emacs.d/.cache/lsp/lua-language-server/ Installation directory for Lua Language Server. lsp-clients-lua-language-server-main-location # Type: file Default: ~/.emacs.d/.cache/lsp/lua-language-server/main.lua Location of Lua Language Server main.lua. lsp-lua-color-mode # Type: (choice (:tag Grammar Semantic)) Default: Semantic Color mode. lsp-lua-completion-call-snippet # Type: (choice (:tag Disable Both Replace)) Default: Disable Shows function call snippets. lsp-lua-completion-display-context # Type: number Default: 6 Previewing the relevant code snippet of the suggestion may help you understand the usage of the suggestion. The number set indicates the number of intercepted lines in the code fragment. If it is set to 0 , this feature can be disabled. lsp-lua-completion-enable # Type: boolean Default: t Enable completion. lsp-lua-completion-keyword-snippet # Type: (choice (:tag Disable Both Replace)) Default: Replace Shows keyword syntax snippets. lsp-lua-completion-workspace-word # Type: boolean Default: t Show words within the workspace. lsp-lua-develop-debugger-port # Type: number Default: 11412 Listen port of debugger. lsp-lua-develop-debugger-wait # Type: boolean Default: nil Suspend before debugger connects. lsp-lua-develop-enable # Type: boolean Default: nil Developer mode. Do not enable, performance will be affected. lsp-lua-diagnostics-disable # Type: lsp-string-vector Default: nil Disabled diagnostic (Use code in hover brackets). \"Lua.diagnostics.disable\" : [ \"unused-local\" , \"lowercase-global\" ] lsp-lua-diagnostics-enable # Type: boolean Default: t Enable diagnostics. lsp-lua-diagnostics-globals # Type: lsp-string-vector Default: nil Defined global variables. \"Lua.diagnostics.globals\" : [ \"GLOBAL1\" , \"GLOBAL2\" ] lsp-lua-diagnostics-needed-file-status # Type: alist Default: nil If you want to check only opened files, choice Opened; else choice Any. \"Lua.diagnostics.neededFileStatus\" : { \"ambiguity-1\" : \"Any\" , \"circle-doc-class\" : \"Opened\" } lsp-lua-diagnostics-severity # Type: alist Default: nil Modified diagnostic severity. \"Lua.diagnostics.severity\" : { \"redefined-local\" : \"Warning\" , \"emmy-lua\" : \"Hint\" } lsp-lua-diagnostics-workspace-delay # Type: number Default: 0 Latency (milliseconds) for workspace diagnostics. When you start the workspace, or edit any file, the entire workspace will be re-diagnosed in the background. Set to negative to disable workspace diagnostics. lsp-lua-diagnostics-workspace-rate # Type: number Default: 100 Workspace diagnostics run rate (%). Decreasing this value reduces CPU usage, but also reduces the speed of workspace diagnostics. The diagnosis of the file you are currently editing is always done at full speed and is not affected by this setting. lsp-lua-files-associations # Type: alist Default: nil Files.associations. lsp-lua-files-exclude # Type: alist Default: nil Files.exclude. lsp-lua-hint-enable # Type: boolean Default: nil Enable hint. lsp-lua-hint-param-name # Type: boolean Default: t Hint parameter name when the parameter called is literal. lsp-lua-hint-param-type # Type: boolean Default: t Show type hints at the parameter of the function. lsp-lua-hint-set-type # Type: boolean Default: nil Hint type at assignment operation. lsp-lua-hover-enable # Type: boolean Default: t Enable hover. lsp-lua-hover-field-infer # Type: number Default: 3000 When hovering to view a table, type infer will be performed for each field. When the accumulated time of type infer reaches the set value (MS), the type infer of subsequent fields will be skipped. lsp-lua-hover-preview-fields # Type: number Default: 100 When hovering to view a table, limits the maximum number of previews for fields. lsp-lua-hover-view-number # Type: boolean Default: t Hover to view numeric content (only if literal is not decimal). lsp-lua-hover-view-string # Type: boolean Default: t Hover to view the contents of a string (only if the literal contains an escape character). lsp-lua-hover-view-string-max # Type: number Default: 1000 The maximum length of a hover to view the contents of a string. lsp-lua-intelli-sense-search-depth # Type: number Default: 0 Set the search depth for IntelliSense. Increasing this value increases accuracy, but decreases performance. Different workspace have different tolerance for this setting. Please adjust it to the appropriate value. lsp-lua-prefer-musl # Type: boolean Default: nil Whether or not to download the musl-compiled server. lsp-lua-runtime-file-encoding # Type: (choice (:tag utf8 ansi)) Default: utf8 File encoding. The ansi option is only available under the Windows platform. lsp-lua-runtime-nonstandard-symbol # Type: lsp-string-vector Default: nil Supports non-standard symbols. Make sure that your runtime environment supports these symbols. lsp-lua-runtime-path # Type: lsp-string-vector Default: [?.lua ?/init.lua ?/?.lua] package.path . lsp-lua-runtime-plugin # Type: file Default: nil (Proposed) Plugin path. Default is .vscode/lua/plugin.lua lsp-lua-runtime-special # Type: alist Default: nil The custom global variables are regarded as some special built-in variables, and the language server will provide special support. \"Lua.runtime.special\" : { \"include\" : \"require\" } lsp-lua-runtime-unicode-name # Type: boolean Default: nil Allows Unicode characters in name. lsp-lua-runtime-version # Type: (choice (:tag Lua 5.1 Lua 5.2 Lua 5.3 Lua 5.4 LuaJIT)) Default: Lua 5.4 Lua runtime version. lsp-lua-signature-help-enable # Type: boolean Default: t Enable signature help. lsp-lua-telemetry-enable # Type: boolean Default: nil Enable telemetry to send your editor information and error logs over the network. lsp-lua-window-progress-bar # Type: boolean Default: t Show progress bar in status bar. lsp-lua-window-status-bar # Type: boolean Default: t Show extension status in status bar. lsp-lua-workspace-ignore-dir # Type: lsp-string-vector Default: [.vscode] Ignored directories (Use .gitignore grammar). \"Lua.workspace.ignoreDir\" : [ \"temp/*.*\" , \"!temp/*.lua\" ] lsp-lua-workspace-ignore-submodules # Type: boolean Default: t Ignore submodules. lsp-lua-workspace-library # Type: alist Default: nil Load external library. This feature can load external Lua files, which can be used for definition, automatic completion and other functions. Note that the language server does not monitor changes in external files and needs to restart if the external files are modified. The following example shows loaded files in C:/lua and ../lib ,exclude ../lib/temp . \"Lua.workspace.library\" : { \"C:/lua\" : true , \"../lib\" : [ \"temp/*\" ] } lsp-lua-workspace-max-preload # Type: number Default: 1000 Max preloaded files. lsp-lua-workspace-preload-file-size # Type: number Default: 100 Skip files larger than this value (KB) when preloading. lsp-lua-workspace-use-git-ignore # Type: boolean Default: t Ignore files list in .gitignore .","title":"Lua (Lua Language Server)"},{"location":"page/lsp-lua-language-server/#lua","text":"","title":"Lua"},{"location":"page/lsp-lua-language-server/#server","text":"For more information about the LSP server, check lua-language-server .","title":"Server"},{"location":"page/lsp-lua-language-server/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-lua-language-server/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-lua-language-server/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-lua-language-server/#lsp-clients-lua-language-server-args","text":"Type: (repeat string) Default: (-E) Arguments to run the Lua Language server.","title":"lsp-clients-lua-language-server-args"},{"location":"page/lsp-lua-language-server/#lsp-clients-lua-language-server-bin","text":"Type: file Default: ~/.emacs.d/.cache/lsp/lua-language-server/bin/lua-language-server Location of Lua Language Server.","title":"lsp-clients-lua-language-server-bin"},{"location":"page/lsp-lua-language-server/#lsp-clients-lua-language-server-command","text":"Type: (repeat string) Default: nil Command to start Lua Language server.","title":"lsp-clients-lua-language-server-command"},{"location":"page/lsp-lua-language-server/#lsp-clients-lua-language-server-install-dir","text":"Type: directory Default: ~/.emacs.d/.cache/lsp/lua-language-server/ Installation directory for Lua Language Server.","title":"lsp-clients-lua-language-server-install-dir"},{"location":"page/lsp-lua-language-server/#lsp-clients-lua-language-server-main-location","text":"Type: file Default: ~/.emacs.d/.cache/lsp/lua-language-server/main.lua Location of Lua Language Server main.lua.","title":"lsp-clients-lua-language-server-main-location"},{"location":"page/lsp-lua-language-server/#lsp-lua-color-mode","text":"Type: (choice (:tag Grammar Semantic)) Default: Semantic Color mode.","title":"lsp-lua-color-mode"},{"location":"page/lsp-lua-language-server/#lsp-lua-completion-call-snippet","text":"Type: (choice (:tag Disable Both Replace)) Default: Disable Shows function call snippets.","title":"lsp-lua-completion-call-snippet"},{"location":"page/lsp-lua-language-server/#lsp-lua-completion-display-context","text":"Type: number Default: 6 Previewing the relevant code snippet of the suggestion may help you understand the usage of the suggestion. The number set indicates the number of intercepted lines in the code fragment. If it is set to 0 , this feature can be disabled.","title":"lsp-lua-completion-display-context"},{"location":"page/lsp-lua-language-server/#lsp-lua-completion-enable","text":"Type: boolean Default: t Enable completion.","title":"lsp-lua-completion-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-completion-keyword-snippet","text":"Type: (choice (:tag Disable Both Replace)) Default: Replace Shows keyword syntax snippets.","title":"lsp-lua-completion-keyword-snippet"},{"location":"page/lsp-lua-language-server/#lsp-lua-completion-workspace-word","text":"Type: boolean Default: t Show words within the workspace.","title":"lsp-lua-completion-workspace-word"},{"location":"page/lsp-lua-language-server/#lsp-lua-develop-debugger-port","text":"Type: number Default: 11412 Listen port of debugger.","title":"lsp-lua-develop-debugger-port"},{"location":"page/lsp-lua-language-server/#lsp-lua-develop-debugger-wait","text":"Type: boolean Default: nil Suspend before debugger connects.","title":"lsp-lua-develop-debugger-wait"},{"location":"page/lsp-lua-language-server/#lsp-lua-develop-enable","text":"Type: boolean Default: nil Developer mode. Do not enable, performance will be affected.","title":"lsp-lua-develop-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-disable","text":"Type: lsp-string-vector Default: nil Disabled diagnostic (Use code in hover brackets). \"Lua.diagnostics.disable\" : [ \"unused-local\" , \"lowercase-global\" ]","title":"lsp-lua-diagnostics-disable"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-enable","text":"Type: boolean Default: t Enable diagnostics.","title":"lsp-lua-diagnostics-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-globals","text":"Type: lsp-string-vector Default: nil Defined global variables. \"Lua.diagnostics.globals\" : [ \"GLOBAL1\" , \"GLOBAL2\" ]","title":"lsp-lua-diagnostics-globals"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-needed-file-status","text":"Type: alist Default: nil If you want to check only opened files, choice Opened; else choice Any. \"Lua.diagnostics.neededFileStatus\" : { \"ambiguity-1\" : \"Any\" , \"circle-doc-class\" : \"Opened\" }","title":"lsp-lua-diagnostics-needed-file-status"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-severity","text":"Type: alist Default: nil Modified diagnostic severity. \"Lua.diagnostics.severity\" : { \"redefined-local\" : \"Warning\" , \"emmy-lua\" : \"Hint\" }","title":"lsp-lua-diagnostics-severity"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-workspace-delay","text":"Type: number Default: 0 Latency (milliseconds) for workspace diagnostics. When you start the workspace, or edit any file, the entire workspace will be re-diagnosed in the background. Set to negative to disable workspace diagnostics.","title":"lsp-lua-diagnostics-workspace-delay"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-workspace-rate","text":"Type: number Default: 100 Workspace diagnostics run rate (%). Decreasing this value reduces CPU usage, but also reduces the speed of workspace diagnostics. The diagnosis of the file you are currently editing is always done at full speed and is not affected by this setting.","title":"lsp-lua-diagnostics-workspace-rate"},{"location":"page/lsp-lua-language-server/#lsp-lua-files-associations","text":"Type: alist Default: nil Files.associations.","title":"lsp-lua-files-associations"},{"location":"page/lsp-lua-language-server/#lsp-lua-files-exclude","text":"Type: alist Default: nil Files.exclude.","title":"lsp-lua-files-exclude"},{"location":"page/lsp-lua-language-server/#lsp-lua-hint-enable","text":"Type: boolean Default: nil Enable hint.","title":"lsp-lua-hint-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-hint-param-name","text":"Type: boolean Default: t Hint parameter name when the parameter called is literal.","title":"lsp-lua-hint-param-name"},{"location":"page/lsp-lua-language-server/#lsp-lua-hint-param-type","text":"Type: boolean Default: t Show type hints at the parameter of the function.","title":"lsp-lua-hint-param-type"},{"location":"page/lsp-lua-language-server/#lsp-lua-hint-set-type","text":"Type: boolean Default: nil Hint type at assignment operation.","title":"lsp-lua-hint-set-type"},{"location":"page/lsp-lua-language-server/#lsp-lua-hover-enable","text":"Type: boolean Default: t Enable hover.","title":"lsp-lua-hover-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-hover-field-infer","text":"Type: number Default: 3000 When hovering to view a table, type infer will be performed for each field. When the accumulated time of type infer reaches the set value (MS), the type infer of subsequent fields will be skipped.","title":"lsp-lua-hover-field-infer"},{"location":"page/lsp-lua-language-server/#lsp-lua-hover-preview-fields","text":"Type: number Default: 100 When hovering to view a table, limits the maximum number of previews for fields.","title":"lsp-lua-hover-preview-fields"},{"location":"page/lsp-lua-language-server/#lsp-lua-hover-view-number","text":"Type: boolean Default: t Hover to view numeric content (only if literal is not decimal).","title":"lsp-lua-hover-view-number"},{"location":"page/lsp-lua-language-server/#lsp-lua-hover-view-string","text":"Type: boolean Default: t Hover to view the contents of a string (only if the literal contains an escape character).","title":"lsp-lua-hover-view-string"},{"location":"page/lsp-lua-language-server/#lsp-lua-hover-view-string-max","text":"Type: number Default: 1000 The maximum length of a hover to view the contents of a string.","title":"lsp-lua-hover-view-string-max"},{"location":"page/lsp-lua-language-server/#lsp-lua-intelli-sense-search-depth","text":"Type: number Default: 0 Set the search depth for IntelliSense. Increasing this value increases accuracy, but decreases performance. Different workspace have different tolerance for this setting. Please adjust it to the appropriate value.","title":"lsp-lua-intelli-sense-search-depth"},{"location":"page/lsp-lua-language-server/#lsp-lua-prefer-musl","text":"Type: boolean Default: nil Whether or not to download the musl-compiled server.","title":"lsp-lua-prefer-musl"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-file-encoding","text":"Type: (choice (:tag utf8 ansi)) Default: utf8 File encoding. The ansi option is only available under the Windows platform.","title":"lsp-lua-runtime-file-encoding"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-nonstandard-symbol","text":"Type: lsp-string-vector Default: nil Supports non-standard symbols. Make sure that your runtime environment supports these symbols.","title":"lsp-lua-runtime-nonstandard-symbol"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-path","text":"Type: lsp-string-vector Default: [?.lua ?/init.lua ?/?.lua] package.path .","title":"lsp-lua-runtime-path"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-plugin","text":"Type: file Default: nil (Proposed) Plugin path. Default is .vscode/lua/plugin.lua","title":"lsp-lua-runtime-plugin"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-special","text":"Type: alist Default: nil The custom global variables are regarded as some special built-in variables, and the language server will provide special support. \"Lua.runtime.special\" : { \"include\" : \"require\" }","title":"lsp-lua-runtime-special"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-unicode-name","text":"Type: boolean Default: nil Allows Unicode characters in name.","title":"lsp-lua-runtime-unicode-name"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-version","text":"Type: (choice (:tag Lua 5.1 Lua 5.2 Lua 5.3 Lua 5.4 LuaJIT)) Default: Lua 5.4 Lua runtime version.","title":"lsp-lua-runtime-version"},{"location":"page/lsp-lua-language-server/#lsp-lua-signature-help-enable","text":"Type: boolean Default: t Enable signature help.","title":"lsp-lua-signature-help-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-telemetry-enable","text":"Type: boolean Default: nil Enable telemetry to send your editor information and error logs over the network.","title":"lsp-lua-telemetry-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-window-progress-bar","text":"Type: boolean Default: t Show progress bar in status bar.","title":"lsp-lua-window-progress-bar"},{"location":"page/lsp-lua-language-server/#lsp-lua-window-status-bar","text":"Type: boolean Default: t Show extension status in status bar.","title":"lsp-lua-window-status-bar"},{"location":"page/lsp-lua-language-server/#lsp-lua-workspace-ignore-dir","text":"Type: lsp-string-vector Default: [.vscode] Ignored directories (Use .gitignore grammar). \"Lua.workspace.ignoreDir\" : [ \"temp/*.*\" , \"!temp/*.lua\" ]","title":"lsp-lua-workspace-ignore-dir"},{"location":"page/lsp-lua-language-server/#lsp-lua-workspace-ignore-submodules","text":"Type: boolean Default: t Ignore submodules.","title":"lsp-lua-workspace-ignore-submodules"},{"location":"page/lsp-lua-language-server/#lsp-lua-workspace-library","text":"Type: alist Default: nil Load external library. This feature can load external Lua files, which can be used for definition, automatic completion and other functions. Note that the language server does not monitor changes in external files and needs to restart if the external files are modified. The following example shows loaded files in C:/lua and ../lib ,exclude ../lib/temp . \"Lua.workspace.library\" : { \"C:/lua\" : true , \"../lib\" : [ \"temp/*\" ] }","title":"lsp-lua-workspace-library"},{"location":"page/lsp-lua-language-server/#lsp-lua-workspace-max-preload","text":"Type: number Default: 1000 Max preloaded files.","title":"lsp-lua-workspace-max-preload"},{"location":"page/lsp-lua-language-server/#lsp-lua-workspace-preload-file-size","text":"Type: number Default: 100 Skip files larger than this value (KB) when preloading.","title":"lsp-lua-workspace-preload-file-size"},{"location":"page/lsp-lua-language-server/#lsp-lua-workspace-use-git-ignore","text":"Type: boolean Default: t Ignore files list in .gitignore .","title":"lsp-lua-workspace-use-git-ignore"},{"location":"page/lsp-lua-lsp/","text":"Lua # Server # For more information about the LSP server, check lua-lsp . Installation # luarocks install --server=https://luarocks.org/dev lua-lsp --local For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-lua-lsp-server-install-dir # Type: file Default: nil Installation directory for Lua-Lsp Language Server. lsp-clients-luarocks-bin-dir # Type: directory Default: ~/.luarocks/bin/ LuaRocks bin directory.","title":"Lua (Lua-Lsp)"},{"location":"page/lsp-lua-lsp/#lua","text":"","title":"Lua"},{"location":"page/lsp-lua-lsp/#server","text":"For more information about the LSP server, check lua-lsp .","title":"Server"},{"location":"page/lsp-lua-lsp/#installation","text":"luarocks install --server=https://luarocks.org/dev lua-lsp --local For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-lua-lsp/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-lua-lsp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-lua-lsp/#lsp-clients-lua-lsp-server-install-dir","text":"Type: file Default: nil Installation directory for Lua-Lsp Language Server.","title":"lsp-clients-lua-lsp-server-install-dir"},{"location":"page/lsp-lua-lsp/#lsp-clients-luarocks-bin-dir","text":"Type: directory Default: ~/.luarocks/bin/ LuaRocks bin directory.","title":"lsp-clients-luarocks-bin-dir"},{"location":"page/lsp-lua-roblox/","text":"Lua Roblox # Server # For more information about the LSP server, check lua-roblox-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Lsp lua roblox"},{"location":"page/lsp-lua-roblox/#lua-roblox","text":"","title":"Lua Roblox"},{"location":"page/lsp-lua-roblox/#server","text":"For more information about the LSP server, check lua-roblox-language-server .","title":"Server"},{"location":"page/lsp-lua-roblox/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-lua-roblox/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-lua-roblox/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-magik/","text":"GE Smallworld Magik # Server # For more information about the LSP server, check magik-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET magik-ls RET . Automatic by lsp-mode with lsp-install-server`` Debugger: Yes # Available configurations # lsp-magik-download-url-lsp # Type: string Default: https://github.com/StevenLooman/magik-tools/releases/download/0.8.0/magik-language-server-0.8.0.jar URL of LSP server to download. lsp-magik-java-home # Type: string Default: nil Path to Java Runtime, Java 11 minimum. lsp-magik-java-path # Type: string Default: (closure (t) nil (cond ((eq system-type 'windows-nt) (or (lsp-resolve-value (executable-find (expand-file-name bin/java (getenv JAVA_HOME)))) (lsp-resolve-value (executable-find java)))) (t java))) Path of the java executable. lsp-magik-lint-override-config-file # Type: string Default: nil Override path to magiklintrc.properties. lsp-magik-ls-path # Type: string Default: /home/runner/.emacs.d/.cache/lsp/magik-ls/magik-language-server-0.8.0.jar Path of the language server. lsp-magik-smallworld-gis # Type: string Default: nil Path to Smallworld Core. lsp-magik-trace-server # Type: (choice (const off) (const message) (const verbose)) Default: off Traces the communication between VS Code and the Magik language server. lsp-magik-typing-enable-checks # Type: boolean Default: nil Enable typing checks. lsp-magik-typing-type-database-paths # Type: lsp-string-vector Default: [] Paths to type databases. lsp-magik-version # Type: string Default: 0.8.0 Version of LSP server.","title":"Magik"},{"location":"page/lsp-magik/#ge-smallworld-magik","text":"","title":"GE Smallworld Magik"},{"location":"page/lsp-magik/#server","text":"For more information about the LSP server, check magik-language-server .","title":"Server"},{"location":"page/lsp-magik/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET magik-ls RET . Automatic by lsp-mode with lsp-install-server``","title":"Installation"},{"location":"page/lsp-magik/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-magik/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-magik/#lsp-magik-download-url-lsp","text":"Type: string Default: https://github.com/StevenLooman/magik-tools/releases/download/0.8.0/magik-language-server-0.8.0.jar URL of LSP server to download.","title":"lsp-magik-download-url-lsp"},{"location":"page/lsp-magik/#lsp-magik-java-home","text":"Type: string Default: nil Path to Java Runtime, Java 11 minimum.","title":"lsp-magik-java-home"},{"location":"page/lsp-magik/#lsp-magik-java-path","text":"Type: string Default: (closure (t) nil (cond ((eq system-type 'windows-nt) (or (lsp-resolve-value (executable-find (expand-file-name bin/java (getenv JAVA_HOME)))) (lsp-resolve-value (executable-find java)))) (t java))) Path of the java executable.","title":"lsp-magik-java-path"},{"location":"page/lsp-magik/#lsp-magik-lint-override-config-file","text":"Type: string Default: nil Override path to magiklintrc.properties.","title":"lsp-magik-lint-override-config-file"},{"location":"page/lsp-magik/#lsp-magik-ls-path","text":"Type: string Default: /home/runner/.emacs.d/.cache/lsp/magik-ls/magik-language-server-0.8.0.jar Path of the language server.","title":"lsp-magik-ls-path"},{"location":"page/lsp-magik/#lsp-magik-smallworld-gis","text":"Type: string Default: nil Path to Smallworld Core.","title":"lsp-magik-smallworld-gis"},{"location":"page/lsp-magik/#lsp-magik-trace-server","text":"Type: (choice (const off) (const message) (const verbose)) Default: off Traces the communication between VS Code and the Magik language server.","title":"lsp-magik-trace-server"},{"location":"page/lsp-magik/#lsp-magik-typing-enable-checks","text":"Type: boolean Default: nil Enable typing checks.","title":"lsp-magik-typing-enable-checks"},{"location":"page/lsp-magik/#lsp-magik-typing-type-database-paths","text":"Type: lsp-string-vector Default: [] Paths to type databases.","title":"lsp-magik-typing-type-database-paths"},{"location":"page/lsp-magik/#lsp-magik-version","text":"Type: string Default: 0.8.0 Version of LSP server.","title":"lsp-magik-version"},{"location":"page/lsp-markdown/","text":"Markdown # Server # For more information about the LSP server, check unified-language-server (deprecated in favor of remark-language-server) . Installation # npm i -g unified-language-server Debugger: Not available # Available configurations # lsp-markdown-remark-check-text-with-mutator # Type: lsp-string-vector Default: [#remark-retext #parse-latin] Vector of additional mutators. For a complete list of plugins, check: https://github.com/unifiedjs/unified-language-server/blob/main/CONFIGURATION.md#re-using-settings lsp-markdown-remark-check-text-with-setting # Type: (choice ((const retext-english) (const remark-parse))) Default: retext-english Configure checkTextWith subproperty. For a complete list of plugins, check: https://github.com/unifiedjs/unified-language-server/blob/main/CONFIGURATION.md#re-using-settings lsp-markdown-remark-plugins # Type: lsp-string-vector Default: [[#remark-preset-lint-markdown-style-guide]] The JSON configuration object for plugins. For a complete list of plugins, check: https://github.com/unifiedjs/unified-language-server/blob/main/CONFIGURATION.md#re-using-settings lsp-markdown-server-command # Type: string Default: unified-language-server The binary (or full path to binary) which executes the server. lsp-markdown-server-command-args # Type: (repeat 'string) Default: (--parser=remark-parse --stdio) Command-line arguments for the markdown lsp server.","title":"Markdown"},{"location":"page/lsp-markdown/#markdown","text":"","title":"Markdown"},{"location":"page/lsp-markdown/#server","text":"For more information about the LSP server, check unified-language-server (deprecated in favor of remark-language-server) .","title":"Server"},{"location":"page/lsp-markdown/#installation","text":"npm i -g unified-language-server","title":"Installation"},{"location":"page/lsp-markdown/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-markdown/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-markdown/#lsp-markdown-remark-check-text-with-mutator","text":"Type: lsp-string-vector Default: [#remark-retext #parse-latin] Vector of additional mutators. For a complete list of plugins, check: https://github.com/unifiedjs/unified-language-server/blob/main/CONFIGURATION.md#re-using-settings","title":"lsp-markdown-remark-check-text-with-mutator"},{"location":"page/lsp-markdown/#lsp-markdown-remark-check-text-with-setting","text":"Type: (choice ((const retext-english) (const remark-parse))) Default: retext-english Configure checkTextWith subproperty. For a complete list of plugins, check: https://github.com/unifiedjs/unified-language-server/blob/main/CONFIGURATION.md#re-using-settings","title":"lsp-markdown-remark-check-text-with-setting"},{"location":"page/lsp-markdown/#lsp-markdown-remark-plugins","text":"Type: lsp-string-vector Default: [[#remark-preset-lint-markdown-style-guide]] The JSON configuration object for plugins. For a complete list of plugins, check: https://github.com/unifiedjs/unified-language-server/blob/main/CONFIGURATION.md#re-using-settings","title":"lsp-markdown-remark-plugins"},{"location":"page/lsp-markdown/#lsp-markdown-server-command","text":"Type: string Default: unified-language-server The binary (or full path to binary) which executes the server.","title":"lsp-markdown-server-command"},{"location":"page/lsp-markdown/#lsp-markdown-server-command-args","text":"Type: (repeat 'string) Default: (--parser=remark-parse --stdio) Command-line arguments for the markdown lsp server.","title":"lsp-markdown-server-command-args"},{"location":"page/lsp-marksman/","text":"Marksman # Server # For more information about the LSP server, check marksman . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-marksman-download-url # Type: string Default: https://github.com/artempyanykh/marksman/releases/latest/download/marksman-linux-x64 Automatic download url for Marksman. lsp-marksman-server-command # Type: string Default: marksman The binary (or full path to binary) which executes the server. lsp-marksman-server-command-args # Type: (repeat 'string) Default: nil Command-line arguments for the marksman lsp server. Not normally Needed. lsp-marksman-store-path # Type: file Default: ~/.emacs.d/.cache/lsp/marksman/marksman The path to the file in which marksman will be stored.","title":"Marksman"},{"location":"page/lsp-marksman/#marksman","text":"","title":"Marksman"},{"location":"page/lsp-marksman/#server","text":"For more information about the LSP server, check marksman .","title":"Server"},{"location":"page/lsp-marksman/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-marksman/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-marksman/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-marksman/#lsp-marksman-download-url","text":"Type: string Default: https://github.com/artempyanykh/marksman/releases/latest/download/marksman-linux-x64 Automatic download url for Marksman.","title":"lsp-marksman-download-url"},{"location":"page/lsp-marksman/#lsp-marksman-server-command","text":"Type: string Default: marksman The binary (or full path to binary) which executes the server.","title":"lsp-marksman-server-command"},{"location":"page/lsp-marksman/#lsp-marksman-server-command-args","text":"Type: (repeat 'string) Default: nil Command-line arguments for the marksman lsp server. Not normally Needed.","title":"lsp-marksman-server-command-args"},{"location":"page/lsp-marksman/#lsp-marksman-store-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/marksman/marksman The path to the file in which marksman will be stored.","title":"lsp-marksman-store-path"},{"location":"page/lsp-mdx/","text":"mdx # Server # For more information about the LSP server, check mdx-analyzer . Installation # npm install -g @mdx-js/language-server Debugger: Not available # Available configurations # lsp-mdx-server-command # Type: string Default: mdx-language-server The binary (or full path to binary) which executes the server. lsp-mdx-server-command-args # Type: (repeat 'string) Default: (--stdio) Command-line arguments for the mdx lsp server.","title":"MDX"},{"location":"page/lsp-mdx/#mdx","text":"","title":"mdx"},{"location":"page/lsp-mdx/#server","text":"For more information about the LSP server, check mdx-analyzer .","title":"Server"},{"location":"page/lsp-mdx/#installation","text":"npm install -g @mdx-js/language-server","title":"Installation"},{"location":"page/lsp-mdx/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-mdx/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-mdx/#lsp-mdx-server-command","text":"Type: string Default: mdx-language-server The binary (or full path to binary) which executes the server.","title":"lsp-mdx-server-command"},{"location":"page/lsp-mdx/#lsp-mdx-server-command-args","text":"Type: (repeat 'string) Default: (--stdio) Command-line arguments for the mdx lsp server.","title":"lsp-mdx-server-command-args"},{"location":"page/lsp-millet/","text":"Standard ML (Millet) # Server # For more information about the LSP server, check millet . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Lsp millet"},{"location":"page/lsp-millet/#standard-ml-millet","text":"","title":"Standard ML (Millet)"},{"location":"page/lsp-millet/#server","text":"For more information about the LSP server, check millet .","title":"Server"},{"location":"page/lsp-millet/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-millet/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-millet/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-mint/","text":"mint-lang # Server # For more information about the LSP server, check mint . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-mint-executable # Type: file Default: (mint ls) Command to start the mint language server.","title":"Lsp mint"},{"location":"page/lsp-mint/#mint-lang","text":"","title":"mint-lang"},{"location":"page/lsp-mint/#server","text":"For more information about the LSP server, check mint .","title":"Server"},{"location":"page/lsp-mint/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-mint/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-mint/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-mint/#lsp-clients-mint-executable","text":"Type: file Default: (mint ls) Command to start the mint language server.","title":"lsp-clients-mint-executable"},{"location":"page/lsp-move/","text":"Move Language # Server # For more information about the LSP server, check move-analyzer . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-move-analyzer-args # Type: (repeat string) Default: nil Extra arguments for the move-analyzer executable. lsp-clients-move-analyzer-executable # Type: file Default: move-analyzer The move-analyzer executable to use. Leave as just the executable name to use the default behavior of finding the executable with exec-path .","title":"Move"},{"location":"page/lsp-move/#move-language","text":"","title":"Move Language"},{"location":"page/lsp-move/#server","text":"For more information about the LSP server, check move-analyzer .","title":"Server"},{"location":"page/lsp-move/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-move/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-move/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-move/#lsp-clients-move-analyzer-args","text":"Type: (repeat string) Default: nil Extra arguments for the move-analyzer executable.","title":"lsp-clients-move-analyzer-args"},{"location":"page/lsp-move/#lsp-clients-move-analyzer-executable","text":"Type: file Default: move-analyzer The move-analyzer executable to use. Leave as just the executable name to use the default behavior of finding the executable with exec-path .","title":"lsp-clients-move-analyzer-executable"},{"location":"page/lsp-nginx/","text":"Nginx # Server # For more information about the LSP server, check nginx-lsp . Installation # pip install -U nginx-language-server Debugger: Not available # Available configurations # lsp-nginx-server-command # Type: (repeat string) Default: (nginx-language-server) Command to start Nginx Language Server.","title":"Nginx"},{"location":"page/lsp-nginx/#nginx","text":"","title":"Nginx"},{"location":"page/lsp-nginx/#server","text":"For more information about the LSP server, check nginx-lsp .","title":"Server"},{"location":"page/lsp-nginx/#installation","text":"pip install -U nginx-language-server","title":"Installation"},{"location":"page/lsp-nginx/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-nginx/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-nginx/#lsp-nginx-server-command","text":"Type: (repeat string) Default: (nginx-language-server) Command to start Nginx Language Server.","title":"lsp-nginx-server-command"},{"location":"page/lsp-nim/","text":"Nim # Server # For more information about the LSP server, check nimlsp . Installation # nimble install nimlsp Debugger: Not available # Available configurations # lsp-nim-auto-check-file # Type: boolean Default: t Check the file on the fly lsp-nim-auto-check-project # Type: boolean Default: t Check the project after saving the file lsp-nim-langserver # Type: number Default: nimlangserver Path to nimlangserver lsp-nim-lsp # Type: number Default: nimlsp Path to nimlsp lsp-nim-nimsuggest-path # Type: number Default: nimsuggest Path to nimsuggest to use. lsp-nim-project-mapping # Type: (lsp-repeatable-vector plist) Default: [] Nimsuggest project mapping. Sample value [(:projectFile \"root.nim\" :fileRegex \".*.nim\")] lsp-nim-timeout # Type: number Default: 120000 Timeout for restarting nimsuggest","title":"Nim"},{"location":"page/lsp-nim/#nim","text":"","title":"Nim"},{"location":"page/lsp-nim/#server","text":"For more information about the LSP server, check nimlsp .","title":"Server"},{"location":"page/lsp-nim/#installation","text":"nimble install nimlsp","title":"Installation"},{"location":"page/lsp-nim/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-nim/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-nim/#lsp-nim-auto-check-file","text":"Type: boolean Default: t Check the file on the fly","title":"lsp-nim-auto-check-file"},{"location":"page/lsp-nim/#lsp-nim-auto-check-project","text":"Type: boolean Default: t Check the project after saving the file","title":"lsp-nim-auto-check-project"},{"location":"page/lsp-nim/#lsp-nim-langserver","text":"Type: number Default: nimlangserver Path to nimlangserver","title":"lsp-nim-langserver"},{"location":"page/lsp-nim/#lsp-nim-lsp","text":"Type: number Default: nimlsp Path to nimlsp","title":"lsp-nim-lsp"},{"location":"page/lsp-nim/#lsp-nim-nimsuggest-path","text":"Type: number Default: nimsuggest Path to nimsuggest to use.","title":"lsp-nim-nimsuggest-path"},{"location":"page/lsp-nim/#lsp-nim-project-mapping","text":"Type: (lsp-repeatable-vector plist) Default: [] Nimsuggest project mapping. Sample value [(:projectFile \"root.nim\" :fileRegex \".*.nim\")]","title":"lsp-nim-project-mapping"},{"location":"page/lsp-nim/#lsp-nim-timeout","text":"Type: number Default: 120000 Timeout for restarting nimsuggest","title":"lsp-nim-timeout"},{"location":"page/lsp-nix-nil/","text":"Nix # Server # For more information about the LSP server, check nix-nil . Installation # nix-env -i nil || nix profile install nixpkgs#nil Debugger: Not available # Available configurations # lsp-nix-nil-exclude-files-diagnostic # Type: lsp-string-vector Default: nil Files to exclude from showing diagnostics. lsp-nix-nil-formatter # Type: lsp-string-vector Default: nil External formatter command with arguments. Example [nixpkgs-fmt]. lsp-nix-nil-ignored-diagnostics # Type: lsp-string-vector Default: nil Ignored diagnostic kinds. lsp-nix-nil-server-path # Type: string Default: nil Executable path for the server.","title":"Nix (nil)"},{"location":"page/lsp-nix-nil/#nix","text":"","title":"Nix"},{"location":"page/lsp-nix-nil/#server","text":"For more information about the LSP server, check nix-nil .","title":"Server"},{"location":"page/lsp-nix-nil/#installation","text":"nix-env -i nil || nix profile install nixpkgs#nil","title":"Installation"},{"location":"page/lsp-nix-nil/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-nix-nil/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-nix-nil/#lsp-nix-nil-exclude-files-diagnostic","text":"Type: lsp-string-vector Default: nil Files to exclude from showing diagnostics.","title":"lsp-nix-nil-exclude-files-diagnostic"},{"location":"page/lsp-nix-nil/#lsp-nix-nil-formatter","text":"Type: lsp-string-vector Default: nil External formatter command with arguments. Example [nixpkgs-fmt].","title":"lsp-nix-nil-formatter"},{"location":"page/lsp-nix-nil/#lsp-nix-nil-ignored-diagnostics","text":"Type: lsp-string-vector Default: nil Ignored diagnostic kinds.","title":"lsp-nix-nil-ignored-diagnostics"},{"location":"page/lsp-nix-nil/#lsp-nix-nil-server-path","text":"Type: string Default: nil Executable path for the server.","title":"lsp-nix-nil-server-path"},{"location":"page/lsp-nix/","text":"Nix # Server # For more information about the LSP server, check rnix-lsp . Installation # nix-env -i rnix-lsp Debugger: Not available # Available configurations #","title":"Nix (rnix-lsp)"},{"location":"page/lsp-nix/#nix","text":"","title":"Nix"},{"location":"page/lsp-nix/#server","text":"For more information about the LSP server, check rnix-lsp .","title":"Server"},{"location":"page/lsp-nix/#installation","text":"nix-env -i rnix-lsp","title":"Installation"},{"location":"page/lsp-nix/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-nix/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ocaml-lsp-server/","text":"OCaml # Server # For more information about the LSP server, check ocaml-lsp-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"OCaml (ocaml-lsp)"},{"location":"page/lsp-ocaml-lsp-server/#ocaml","text":"","title":"OCaml"},{"location":"page/lsp-ocaml-lsp-server/#server","text":"For more information about the LSP server, check ocaml-lsp-server .","title":"Server"},{"location":"page/lsp-ocaml-lsp-server/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-ocaml-lsp-server/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ocaml-lsp-server/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ocaml/","text":"OCaml # Server # For more information about the LSP server, check ocaml-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-cut-signature # Type: (choice (symbol :tag Default behaviour 'cut) (symbol :tag Display all the lines with spaces 'space)) Default: space If non-nil, signatures returned on hover will not be split on newline. lsp-ocaml-lang-server-command # Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: (ocaml-language-server --stdio) Command to start ocaml-language-server. lsp-ocaml-lsp-server-command # Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: (ocamllsp) Command to start ocaml-language-server.","title":"Lsp ocaml"},{"location":"page/lsp-ocaml/#ocaml","text":"","title":"OCaml"},{"location":"page/lsp-ocaml/#server","text":"For more information about the LSP server, check ocaml-language-server .","title":"Server"},{"location":"page/lsp-ocaml/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-ocaml/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ocaml/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ocaml/#lsp-cut-signature","text":"Type: (choice (symbol :tag Default behaviour 'cut) (symbol :tag Display all the lines with spaces 'space)) Default: space If non-nil, signatures returned on hover will not be split on newline.","title":"lsp-cut-signature"},{"location":"page/lsp-ocaml/#lsp-ocaml-lang-server-command","text":"Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: (ocaml-language-server --stdio) Command to start ocaml-language-server.","title":"lsp-ocaml-lang-server-command"},{"location":"page/lsp-ocaml/#lsp-ocaml-lsp-server-command","text":"Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: (ocamllsp) Command to start ocaml-language-server.","title":"lsp-ocaml-lsp-server-command"},{"location":"page/lsp-openscad/","text":"OpenSCAD # Server # For more information about the LSP server, check openscad-lsp . Installation # cargo install openscad-lsp For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-openscad-format-exe # Type: string Default: clang-format Path to the clang-format executable. lsp-openscad-format-style # Type: string Default: file Style argument to use with clang-format. lsp-openscad-search-paths # Type: string Default: `` Customized search path. lsp-openscad-server # Type: file Default: openscad-lsp Path to the openscad language server. lsp-openscad-server-connection-type # Type: symbol Default: tcp Type of connection to use with the OpenSCAD Language Server: tcp or stdio.","title":"OpenSCAD"},{"location":"page/lsp-openscad/#openscad","text":"","title":"OpenSCAD"},{"location":"page/lsp-openscad/#server","text":"For more information about the LSP server, check openscad-lsp .","title":"Server"},{"location":"page/lsp-openscad/#installation","text":"cargo install openscad-lsp For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-openscad/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-openscad/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-openscad/#lsp-openscad-format-exe","text":"Type: string Default: clang-format Path to the clang-format executable.","title":"lsp-openscad-format-exe"},{"location":"page/lsp-openscad/#lsp-openscad-format-style","text":"Type: string Default: file Style argument to use with clang-format.","title":"lsp-openscad-format-style"},{"location":"page/lsp-openscad/#lsp-openscad-search-paths","text":"Type: string Default: `` Customized search path.","title":"lsp-openscad-search-paths"},{"location":"page/lsp-openscad/#lsp-openscad-server","text":"Type: file Default: openscad-lsp Path to the openscad language server.","title":"lsp-openscad-server"},{"location":"page/lsp-openscad/#lsp-openscad-server-connection-type","text":"Type: symbol Default: tcp Type of connection to use with the OpenSCAD Language Server: tcp or stdio.","title":"lsp-openscad-server-connection-type"},{"location":"page/lsp-pascal/","text":"Pascal/Object Pascal # Server # For more information about the LSP server, check pascal-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Pascal/Object Pascal"},{"location":"page/lsp-pascal/#pascalobject-pascal","text":"","title":"Pascal/Object Pascal"},{"location":"page/lsp-pascal/#server","text":"For more information about the LSP server, check pascal-language-server .","title":"Server"},{"location":"page/lsp-pascal/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-pascal/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-pascal/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-perl/","text":"Perl # Server # For more information about the LSP server, check Perl::LanguageServer . Installation # cpan Perl::LanguageServer Debugger: Not available # Available configurations # lsp-perl-file-filter # Type: lsp-string-vector Default: nil A vector of directories filtering perl file. Defaults to [\".pm\" \".pl\"] if nil. lsp-perl-ignore-dirs # Type: lsp-string-vector Default: nil A vector of directories to ignore. Defaults to [\".vscode\" \".git\" \".svn\"] if nil. lsp-perl-language-server-client-version # Type: string Default: 2.1.0 Choose client version. lsp-perl-language-server-path # Type: string Default: perl Path to perl interpreter. lsp-perl-language-server-port # Type: integer Default: 13603 Choose listen port. lsp-perl-log-level # Type: integer Default: nil Log level 0-2. Defaults to 0. lsp-perl-perl-cmd # Type: string Default: nil Path to perl interpreter used in Perl Language Server. Defaults to perl if nil. lsp-perl-perl-inc # Type: lsp-string-vector Default: nil A vector of paths to add to perl library path. lsp-perl-show-local-vars # Type: boolean Default: nil If true, show also local variables in symbol view. Defaults to false if nil","title":"Perl (Perl::LanguageServer)"},{"location":"page/lsp-perl/#perl","text":"","title":"Perl"},{"location":"page/lsp-perl/#server","text":"For more information about the LSP server, check Perl::LanguageServer .","title":"Server"},{"location":"page/lsp-perl/#installation","text":"cpan Perl::LanguageServer","title":"Installation"},{"location":"page/lsp-perl/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-perl/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-perl/#lsp-perl-file-filter","text":"Type: lsp-string-vector Default: nil A vector of directories filtering perl file. Defaults to [\".pm\" \".pl\"] if nil.","title":"lsp-perl-file-filter"},{"location":"page/lsp-perl/#lsp-perl-ignore-dirs","text":"Type: lsp-string-vector Default: nil A vector of directories to ignore. Defaults to [\".vscode\" \".git\" \".svn\"] if nil.","title":"lsp-perl-ignore-dirs"},{"location":"page/lsp-perl/#lsp-perl-language-server-client-version","text":"Type: string Default: 2.1.0 Choose client version.","title":"lsp-perl-language-server-client-version"},{"location":"page/lsp-perl/#lsp-perl-language-server-path","text":"Type: string Default: perl Path to perl interpreter.","title":"lsp-perl-language-server-path"},{"location":"page/lsp-perl/#lsp-perl-language-server-port","text":"Type: integer Default: 13603 Choose listen port.","title":"lsp-perl-language-server-port"},{"location":"page/lsp-perl/#lsp-perl-log-level","text":"Type: integer Default: nil Log level 0-2. Defaults to 0.","title":"lsp-perl-log-level"},{"location":"page/lsp-perl/#lsp-perl-perl-cmd","text":"Type: string Default: nil Path to perl interpreter used in Perl Language Server. Defaults to perl if nil.","title":"lsp-perl-perl-cmd"},{"location":"page/lsp-perl/#lsp-perl-perl-inc","text":"Type: lsp-string-vector Default: nil A vector of paths to add to perl library path.","title":"lsp-perl-perl-inc"},{"location":"page/lsp-perl/#lsp-perl-show-local-vars","text":"Type: boolean Default: nil If true, show also local variables in symbol view. Defaults to false if nil","title":"lsp-perl-show-local-vars"},{"location":"page/lsp-perlnavigator/","text":"Perl Navigator # Server # For more information about the LSP server, check perlnavigator . Installation # https://github.com/bscan/PerlNavigator/releases Debugger: Not available # Available configurations # lsp-perlnavigator-autoinstall-dir # Type: directory Default: ~/.emacs.d/.cache/lsp/perlnavigator Automatic installation directory for Perl Navigator. lsp-perlnavigator-download-url # Type: string Default: https://github.com/bscan/PerlNavigator/releases/latest/download/perlnavigator-linux-x86_64.zip Automatic download url for PerlNavigator. lsp-perlnavigator-enable-warnings # Type: boolean Default: t Enable warnings using -Mwarnings command switch. lsp-perlnavigator-executable # Type: file Default: perlnavigator Location of the perlnavigator binary. lsp-perlnavigator-include-paths # Type: lsp-string-vector Default: nil Array of paths added to @INC. You can use $workspaceRoot as a placeholder. lsp-perlnavigator-logging # Type: boolean Default: t Log to stdout from the navigator. Viewable in the Perl Navigator LSP log. lsp-perlnavigator-perl-path # Type: string Default: perl Full path to the perl executable (no aliases, .bat files or ~/). lsp-perlnavigator-perlcritic-enabled # Type: boolean Default: t Enable perl critic. lsp-perlnavigator-perlcritic-profile # Type: string Default: nil Path to perl critic profile. Otherwise perlcritic itself will default to ~/.perlcriticrc. (no aliases, .bat files or ~/). lsp-perlnavigator-perltidy-profile # Type: string Default: nil Path to perl tidy profile (no aliases, .bat files or ~/). lsp-perlnavigator-severity1 # Type: (choice (:tag error warning info hint none)) Default: hint Editor Diagnostic severity level for Critic severity 1. lsp-perlnavigator-severity2 # Type: (choice (:tag error warning info hint none)) Default: hint Editor Diagnostic severity level for Critic severity 2. lsp-perlnavigator-severity3 # Type: (choice (:tag error warning info hint none)) Default: hint Editor Diagnostic severity level for Critic severity 3. lsp-perlnavigator-severity4 # Type: (choice (:tag error warning info hint none)) Default: info Editor Diagnostic severity level for Critic severity 4. lsp-perlnavigator-severity5 # Type: (choice (:tag error warning info hint none)) Default: warning Editor Diagnostic severity level for Critic severity 5. lsp-perlnavigator-trace-server # Type: (choice (:tag off messages verbose)) Default: messages Traces the communication between VS Code and the language server.","title":"Perl (Navigator)"},{"location":"page/lsp-perlnavigator/#perl-navigator","text":"","title":"Perl Navigator"},{"location":"page/lsp-perlnavigator/#server","text":"For more information about the LSP server, check perlnavigator .","title":"Server"},{"location":"page/lsp-perlnavigator/#installation","text":"https://github.com/bscan/PerlNavigator/releases","title":"Installation"},{"location":"page/lsp-perlnavigator/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-perlnavigator/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-autoinstall-dir","text":"Type: directory Default: ~/.emacs.d/.cache/lsp/perlnavigator Automatic installation directory for Perl Navigator.","title":"lsp-perlnavigator-autoinstall-dir"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-download-url","text":"Type: string Default: https://github.com/bscan/PerlNavigator/releases/latest/download/perlnavigator-linux-x86_64.zip Automatic download url for PerlNavigator.","title":"lsp-perlnavigator-download-url"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-enable-warnings","text":"Type: boolean Default: t Enable warnings using -Mwarnings command switch.","title":"lsp-perlnavigator-enable-warnings"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-executable","text":"Type: file Default: perlnavigator Location of the perlnavigator binary.","title":"lsp-perlnavigator-executable"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-include-paths","text":"Type: lsp-string-vector Default: nil Array of paths added to @INC. You can use $workspaceRoot as a placeholder.","title":"lsp-perlnavigator-include-paths"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-logging","text":"Type: boolean Default: t Log to stdout from the navigator. Viewable in the Perl Navigator LSP log.","title":"lsp-perlnavigator-logging"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-perl-path","text":"Type: string Default: perl Full path to the perl executable (no aliases, .bat files or ~/).","title":"lsp-perlnavigator-perl-path"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-perlcritic-enabled","text":"Type: boolean Default: t Enable perl critic.","title":"lsp-perlnavigator-perlcritic-enabled"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-perlcritic-profile","text":"Type: string Default: nil Path to perl critic profile. Otherwise perlcritic itself will default to ~/.perlcriticrc. (no aliases, .bat files or ~/).","title":"lsp-perlnavigator-perlcritic-profile"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-perltidy-profile","text":"Type: string Default: nil Path to perl tidy profile (no aliases, .bat files or ~/).","title":"lsp-perlnavigator-perltidy-profile"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-severity1","text":"Type: (choice (:tag error warning info hint none)) Default: hint Editor Diagnostic severity level for Critic severity 1.","title":"lsp-perlnavigator-severity1"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-severity2","text":"Type: (choice (:tag error warning info hint none)) Default: hint Editor Diagnostic severity level for Critic severity 2.","title":"lsp-perlnavigator-severity2"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-severity3","text":"Type: (choice (:tag error warning info hint none)) Default: hint Editor Diagnostic severity level for Critic severity 3.","title":"lsp-perlnavigator-severity3"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-severity4","text":"Type: (choice (:tag error warning info hint none)) Default: info Editor Diagnostic severity level for Critic severity 4.","title":"lsp-perlnavigator-severity4"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-severity5","text":"Type: (choice (:tag error warning info hint none)) Default: warning Editor Diagnostic severity level for Critic severity 5.","title":"lsp-perlnavigator-severity5"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-trace-server","text":"Type: (choice (:tag off messages verbose)) Default: messages Traces the communication between VS Code and the language server.","title":"lsp-perlnavigator-trace-server"},{"location":"page/lsp-php/","text":"PHP # Server # For more information about the LSP server, check php-language-server . Installation # composer require felixfbecker/language-server For more instructions on how to install manually, check here . Debugger: Yes # Available configurations # lsp-clients-php-server-command # Type: (repeat string) Default: nil Install directory for php-language-server. lsp-php-composer-dir # Type: string Default: nil Home directory of composer. lsp-clients-php-server-command # Type: (repeat string) Default: nil Install directory for php-language-server. lsp-php-composer-dir # Type: string Default: nil Home directory of composer.","title":"PHP (felixbecker)"},{"location":"page/lsp-php/#php","text":"","title":"PHP"},{"location":"page/lsp-php/#server","text":"For more information about the LSP server, check php-language-server .","title":"Server"},{"location":"page/lsp-php/#installation","text":"composer require felixfbecker/language-server For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-php/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-php/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-php/#lsp-clients-php-server-command","text":"Type: (repeat string) Default: nil Install directory for php-language-server.","title":"lsp-clients-php-server-command"},{"location":"page/lsp-php/#lsp-php-composer-dir","text":"Type: string Default: nil Home directory of composer.","title":"lsp-php-composer-dir"},{"location":"page/lsp-php/#lsp-clients-php-server-command_1","text":"Type: (repeat string) Default: nil Install directory for php-language-server.","title":"lsp-clients-php-server-command"},{"location":"page/lsp-php/#lsp-php-composer-dir_1","text":"Type: string Default: nil Home directory of composer.","title":"lsp-php-composer-dir"},{"location":"page/lsp-phpactor/","text":"Phpactor # Server # For more information about the LSP server, check phpactor . Installation # For more instructions on how to install manually, check here . Debugger: yes # Available configurations # lsp-clients-php-server-command # Type: (repeat string) Default: nil Install directory for php-language-server. lsp-php-composer-dir # Type: string Default: nil Home directory of composer. lsp-phpactor-extension-alist # Type: (alist :key-type string :value-type string) Default: ((Phpstan . phpactor/language-server-phpstan-extension) (Behat . phpactor/behat-extension) (PHPUnit . phpactor/phpunit-extension)) Alist mapping extension names to composer packages. These extensions can be installed using lsp-phpactor-install-extension . lsp-phpactor-path # Type: string Default: nil Path to the phpactor command.","title":"PHP (phpactor)"},{"location":"page/lsp-phpactor/#phpactor","text":"","title":"Phpactor"},{"location":"page/lsp-phpactor/#server","text":"For more information about the LSP server, check phpactor .","title":"Server"},{"location":"page/lsp-phpactor/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-phpactor/#debugger-yes","text":"","title":"Debugger: yes"},{"location":"page/lsp-phpactor/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-phpactor/#lsp-clients-php-server-command","text":"Type: (repeat string) Default: nil Install directory for php-language-server.","title":"lsp-clients-php-server-command"},{"location":"page/lsp-phpactor/#lsp-php-composer-dir","text":"Type: string Default: nil Home directory of composer.","title":"lsp-php-composer-dir"},{"location":"page/lsp-phpactor/#lsp-phpactor-extension-alist","text":"Type: (alist :key-type string :value-type string) Default: ((Phpstan . phpactor/language-server-phpstan-extension) (Behat . phpactor/behat-extension) (PHPUnit . phpactor/phpunit-extension)) Alist mapping extension names to composer packages. These extensions can be installed using lsp-phpactor-install-extension .","title":"lsp-phpactor-extension-alist"},{"location":"page/lsp-phpactor/#lsp-phpactor-path","text":"Type: string Default: nil Path to the phpactor command.","title":"lsp-phpactor-path"},{"location":"page/lsp-pls/","text":"PLS # Server # For more information about the LSP server, check Perl Language Server . Installation # cpan PLS Debugger: Not available # Available configurations # lsp-pls-arguments # Type: (repeat 'string) Default: nil Additional arguments needed to execute PLS. lsp-pls-executable # Type: (string) Default: pls Full path to the PLS executable. lsp-pls-include # Type: (repeat 'string) Default: nil Paths to be added to your @INC. lsp-pls-perlcritic-enabled # Type: (boolean) Default: t Enable perlcritic checking. lsp-pls-perlcritic-rc # Type: (string) Default: nil Path to your .perlcriticrc file. Default is \"~/.perlcriticrc\" when not configured. lsp-pls-perltidy-rc # Type: (string) Default: nil Path to your .perltidyrc file. Default is \"~/.perltidyrc\" when not configured. lsp-pls-syntax-args # Type: (repeat 'string) Default: nil Additional arguments to pass to Perl when syntax checking. This is useful if there is a BEGIN block in your code that changes behavior depending on the contents of @ARGV. lsp-pls-syntax-enabled # Type: (boolean) Default: t Enable syntax checking. lsp-pls-syntax-perl # Type: (string) Default: nil Full path to an alternate perl used for syntax checking. By default, the perl used to run PLS will be used. lsp-pls-working-dir # Type: (string) Default: nil Working directory to run PLS in. Defaults to the workspace root when not configured.","title":"Perl (PLS)"},{"location":"page/lsp-pls/#pls","text":"","title":"PLS"},{"location":"page/lsp-pls/#server","text":"For more information about the LSP server, check Perl Language Server .","title":"Server"},{"location":"page/lsp-pls/#installation","text":"cpan PLS","title":"Installation"},{"location":"page/lsp-pls/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-pls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-pls/#lsp-pls-arguments","text":"Type: (repeat 'string) Default: nil Additional arguments needed to execute PLS.","title":"lsp-pls-arguments"},{"location":"page/lsp-pls/#lsp-pls-executable","text":"Type: (string) Default: pls Full path to the PLS executable.","title":"lsp-pls-executable"},{"location":"page/lsp-pls/#lsp-pls-include","text":"Type: (repeat 'string) Default: nil Paths to be added to your @INC.","title":"lsp-pls-include"},{"location":"page/lsp-pls/#lsp-pls-perlcritic-enabled","text":"Type: (boolean) Default: t Enable perlcritic checking.","title":"lsp-pls-perlcritic-enabled"},{"location":"page/lsp-pls/#lsp-pls-perlcritic-rc","text":"Type: (string) Default: nil Path to your .perlcriticrc file. Default is \"~/.perlcriticrc\" when not configured.","title":"lsp-pls-perlcritic-rc"},{"location":"page/lsp-pls/#lsp-pls-perltidy-rc","text":"Type: (string) Default: nil Path to your .perltidyrc file. Default is \"~/.perltidyrc\" when not configured.","title":"lsp-pls-perltidy-rc"},{"location":"page/lsp-pls/#lsp-pls-syntax-args","text":"Type: (repeat 'string) Default: nil Additional arguments to pass to Perl when syntax checking. This is useful if there is a BEGIN block in your code that changes behavior depending on the contents of @ARGV.","title":"lsp-pls-syntax-args"},{"location":"page/lsp-pls/#lsp-pls-syntax-enabled","text":"Type: (boolean) Default: t Enable syntax checking.","title":"lsp-pls-syntax-enabled"},{"location":"page/lsp-pls/#lsp-pls-syntax-perl","text":"Type: (string) Default: nil Full path to an alternate perl used for syntax checking. By default, the perl used to run PLS will be used.","title":"lsp-pls-syntax-perl"},{"location":"page/lsp-pls/#lsp-pls-working-dir","text":"Type: (string) Default: nil Working directory to run PLS in. Defaults to the workspace root when not configured.","title":"lsp-pls-working-dir"},{"location":"page/lsp-prolog/","text":"Prolog # Server # For more information about the LSP server, check lsp_server . Installation # swipl -g 'pack_install(lsp_server).' Debugger: Not available # Available configurations #","title":"Prolog"},{"location":"page/lsp-prolog/#prolog","text":"","title":"Prolog"},{"location":"page/lsp-prolog/#server","text":"For more information about the LSP server, check lsp_server .","title":"Server"},{"location":"page/lsp-prolog/#installation","text":"swipl -g 'pack_install(lsp_server).'","title":"Installation"},{"location":"page/lsp-prolog/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-prolog/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-purescript/","text":"PureScript # Server # For more information about the LSP server, check purescript-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET pursls RET . npm i -g purescript-language-server For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-purescript-add-npm-path # Type: boolean Default: nil Whether to add the local npm bin directory to the PATH. lsp-purescript-add-spago-sources # Type: boolean Default: t Whether to add spago sources to the globs. Passed to the IDE server for source locations. lsp-purescript-formatter # Type: (choice (:tag none purty purs-tidy pose)) Default: purty Tool to use to for formatting. Must be installed and on PATH (or npm installed with addNpmPath set) lsp-purescript-server-args # Type: (repeat string) Default: (--stdio) Arguments to pass to the server. lsp-purescript-server-executable # Type: string Default: nil Path to server executable.","title":"PureScript"},{"location":"page/lsp-purescript/#purescript","text":"","title":"PureScript"},{"location":"page/lsp-purescript/#server","text":"For more information about the LSP server, check purescript-language-server .","title":"Server"},{"location":"page/lsp-purescript/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET pursls RET . npm i -g purescript-language-server For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-purescript/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-purescript/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-purescript/#lsp-purescript-add-npm-path","text":"Type: boolean Default: nil Whether to add the local npm bin directory to the PATH.","title":"lsp-purescript-add-npm-path"},{"location":"page/lsp-purescript/#lsp-purescript-add-spago-sources","text":"Type: boolean Default: t Whether to add spago sources to the globs. Passed to the IDE server for source locations.","title":"lsp-purescript-add-spago-sources"},{"location":"page/lsp-purescript/#lsp-purescript-formatter","text":"Type: (choice (:tag none purty purs-tidy pose)) Default: purty Tool to use to for formatting. Must be installed and on PATH (or npm installed with addNpmPath set)","title":"lsp-purescript-formatter"},{"location":"page/lsp-purescript/#lsp-purescript-server-args","text":"Type: (repeat string) Default: (--stdio) Arguments to pass to the server.","title":"lsp-purescript-server-args"},{"location":"page/lsp-purescript/#lsp-purescript-server-executable","text":"Type: string Default: nil Path to server executable.","title":"lsp-purescript-server-executable"},{"location":"page/lsp-pwsh/","text":"Powershell # Server # For more information about the LSP server, check PowerShellEditorServices . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET pwsh-ls RET . Automatic Debugger: Yes # Available configurations # lsp-pwsh-code-folding-enable # Type: boolean Default: t Enables syntax based code folding. When disabled, the default indentation based code folding is used. lsp-pwsh-code-folding-show-last-line # Type: boolean Default: t Shows the last line of a folded section. Similar to the default VSCode folding style. When disabled, the entire folded region is hidden. lsp-pwsh-code-formatting-align-property-value-pairs # Type: boolean Default: t Align assignment statements in a hashtable or a DSC Configuration. lsp-pwsh-code-formatting-ignore-one-line-block # Type: boolean Default: t Does not reformat one-line code blocks, such as \"if (...) {...} else {...}\". lsp-pwsh-code-formatting-new-line-after-close-brace # Type: boolean Default: t Adds a newline (line break) after a closing brace. lsp-pwsh-code-formatting-new-line-after-open-brace # Type: boolean Default: t Adds a newline (line break) after an open brace. lsp-pwsh-code-formatting-open-brace-on-same-line # Type: boolean Default: t Places open brace on the same line as its associated statement. lsp-pwsh-code-formatting-pipeline-indentation-style # Type: (choice (:tag IncreaseIndentationForFirstPipeline IncreaseIndentationAfterEveryPipeline NoIndentation)) Default: NoIndentation Multi-line pipeline style settings. lsp-pwsh-code-formatting-preset # Type: (choice (:tag Custom Allman OTBS Stroustrup)) Default: Custom Sets the codeformatting options to follow the given indent style. Sets in a way that is compatible with PowerShell syntax. For more information about the brace styles please refer to https://github.com/PoshCode/PowerShellPracticeAndStyle/issues/81. lsp-pwsh-code-formatting-use-correct-casing # Type: boolean Default: nil Use correct casing for cmdlets. lsp-pwsh-code-formatting-whitespace-after-separator # Type: boolean Default: t Adds a space after a separator ( , and ; ). lsp-pwsh-code-formatting-whitespace-around-operator # Type: boolean Default: t Adds spaces before and after an operator ( = , + , - , etc.). lsp-pwsh-code-formatting-whitespace-around-pipe # Type: boolean Default: t Adds a space before and after the pipeline operator ( | ). lsp-pwsh-code-formatting-whitespace-before-open-brace # Type: boolean Default: t Adds a space between a keyword and its associated scriptblock expression. lsp-pwsh-code-formatting-whitespace-before-open-paren # Type: boolean Default: t Adds a space between a keyword (if, elseif, while, switch, etc) and its associated conditional expression. lsp-pwsh-code-formatting-whitespace-inside-brace # Type: boolean Default: t Adds a space after an opening brace ( { ) and before a closing brace ( } ). lsp-pwsh-developer-editor-services-log-level # Type: (choice (:tag Diagnostic Verbose Normal Warning Error)) Default: Normal Sets the log level for the PowerShell Editor Services host executable. Valid values are Diagnostic , Verbose , Normal , Warning , and Error lsp-pwsh-developer-editor-services-wait-for-debugger # Type: boolean Default: nil Launches the language service with the /waitForDebugger flag to force it to wait for a .NET debugger to attach before proceeding. lsp-pwsh-developer-feature-flags # Type: (repeat string) Default: nil An array of strings that enable experimental features in the PowerShell extension. lsp-pwsh-dir # Type: string Default: /home/runner/.emacs.d/.cache/lsp/pwsh Path to PowerShellEditorServices without last slash. lsp-pwsh-exe # Type: string Default: /usr/bin/pwsh PowerShell executable. lsp-pwsh-ext-path # Type: string Default: /home/runner/.emacs.d/.cache/lsp/pwsh The path to powershell vscode extension. lsp-pwsh-github-asset-url # Type: string Default: https://github.com/%s/%s/releases/latest/download/%s GitHub latest asset template url. lsp-pwsh-help-completion # Type: (choice (:tag Disabled BlockComment LineComment)) Default: BlockComment Controls the comment-based help completion behavior triggered by typing ## . Set the generated help style with BlockComment or LineComment . Disable the feature with Disabled . lsp-pwsh-script-analysis-enable # Type: boolean Default: t Enables real-time script analysis from PowerShell Script Analyzer. Uses the newest installed version of the PSScriptAnalyzer module or the version bundled with this extension, if it is newer. lsp-pwsh-script-analysis-settings-path # Type: string Default: `` Specifies the path to a PowerShell Script Analyzer settings file. To override the default settings for all projects, enter an absolute path, or enter a path relative to your workspace.","title":"Powershell"},{"location":"page/lsp-pwsh/#powershell","text":"","title":"Powershell"},{"location":"page/lsp-pwsh/#server","text":"For more information about the LSP server, check PowerShellEditorServices .","title":"Server"},{"location":"page/lsp-pwsh/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET pwsh-ls RET . Automatic","title":"Installation"},{"location":"page/lsp-pwsh/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-pwsh/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-folding-enable","text":"Type: boolean Default: t Enables syntax based code folding. When disabled, the default indentation based code folding is used.","title":"lsp-pwsh-code-folding-enable"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-folding-show-last-line","text":"Type: boolean Default: t Shows the last line of a folded section. Similar to the default VSCode folding style. When disabled, the entire folded region is hidden.","title":"lsp-pwsh-code-folding-show-last-line"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-align-property-value-pairs","text":"Type: boolean Default: t Align assignment statements in a hashtable or a DSC Configuration.","title":"lsp-pwsh-code-formatting-align-property-value-pairs"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-ignore-one-line-block","text":"Type: boolean Default: t Does not reformat one-line code blocks, such as \"if (...) {...} else {...}\".","title":"lsp-pwsh-code-formatting-ignore-one-line-block"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-new-line-after-close-brace","text":"Type: boolean Default: t Adds a newline (line break) after a closing brace.","title":"lsp-pwsh-code-formatting-new-line-after-close-brace"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-new-line-after-open-brace","text":"Type: boolean Default: t Adds a newline (line break) after an open brace.","title":"lsp-pwsh-code-formatting-new-line-after-open-brace"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-open-brace-on-same-line","text":"Type: boolean Default: t Places open brace on the same line as its associated statement.","title":"lsp-pwsh-code-formatting-open-brace-on-same-line"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-pipeline-indentation-style","text":"Type: (choice (:tag IncreaseIndentationForFirstPipeline IncreaseIndentationAfterEveryPipeline NoIndentation)) Default: NoIndentation Multi-line pipeline style settings.","title":"lsp-pwsh-code-formatting-pipeline-indentation-style"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-preset","text":"Type: (choice (:tag Custom Allman OTBS Stroustrup)) Default: Custom Sets the codeformatting options to follow the given indent style. Sets in a way that is compatible with PowerShell syntax. For more information about the brace styles please refer to https://github.com/PoshCode/PowerShellPracticeAndStyle/issues/81.","title":"lsp-pwsh-code-formatting-preset"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-use-correct-casing","text":"Type: boolean Default: nil Use correct casing for cmdlets.","title":"lsp-pwsh-code-formatting-use-correct-casing"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-whitespace-after-separator","text":"Type: boolean Default: t Adds a space after a separator ( , and ; ).","title":"lsp-pwsh-code-formatting-whitespace-after-separator"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-whitespace-around-operator","text":"Type: boolean Default: t Adds spaces before and after an operator ( = , + , - , etc.).","title":"lsp-pwsh-code-formatting-whitespace-around-operator"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-whitespace-around-pipe","text":"Type: boolean Default: t Adds a space before and after the pipeline operator ( | ).","title":"lsp-pwsh-code-formatting-whitespace-around-pipe"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-whitespace-before-open-brace","text":"Type: boolean Default: t Adds a space between a keyword and its associated scriptblock expression.","title":"lsp-pwsh-code-formatting-whitespace-before-open-brace"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-whitespace-before-open-paren","text":"Type: boolean Default: t Adds a space between a keyword (if, elseif, while, switch, etc) and its associated conditional expression.","title":"lsp-pwsh-code-formatting-whitespace-before-open-paren"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-whitespace-inside-brace","text":"Type: boolean Default: t Adds a space after an opening brace ( { ) and before a closing brace ( } ).","title":"lsp-pwsh-code-formatting-whitespace-inside-brace"},{"location":"page/lsp-pwsh/#lsp-pwsh-developer-editor-services-log-level","text":"Type: (choice (:tag Diagnostic Verbose Normal Warning Error)) Default: Normal Sets the log level for the PowerShell Editor Services host executable. Valid values are Diagnostic , Verbose , Normal , Warning , and Error","title":"lsp-pwsh-developer-editor-services-log-level"},{"location":"page/lsp-pwsh/#lsp-pwsh-developer-editor-services-wait-for-debugger","text":"Type: boolean Default: nil Launches the language service with the /waitForDebugger flag to force it to wait for a .NET debugger to attach before proceeding.","title":"lsp-pwsh-developer-editor-services-wait-for-debugger"},{"location":"page/lsp-pwsh/#lsp-pwsh-developer-feature-flags","text":"Type: (repeat string) Default: nil An array of strings that enable experimental features in the PowerShell extension.","title":"lsp-pwsh-developer-feature-flags"},{"location":"page/lsp-pwsh/#lsp-pwsh-dir","text":"Type: string Default: /home/runner/.emacs.d/.cache/lsp/pwsh Path to PowerShellEditorServices without last slash.","title":"lsp-pwsh-dir"},{"location":"page/lsp-pwsh/#lsp-pwsh-exe","text":"Type: string Default: /usr/bin/pwsh PowerShell executable.","title":"lsp-pwsh-exe"},{"location":"page/lsp-pwsh/#lsp-pwsh-ext-path","text":"Type: string Default: /home/runner/.emacs.d/.cache/lsp/pwsh The path to powershell vscode extension.","title":"lsp-pwsh-ext-path"},{"location":"page/lsp-pwsh/#lsp-pwsh-github-asset-url","text":"Type: string Default: https://github.com/%s/%s/releases/latest/download/%s GitHub latest asset template url.","title":"lsp-pwsh-github-asset-url"},{"location":"page/lsp-pwsh/#lsp-pwsh-help-completion","text":"Type: (choice (:tag Disabled BlockComment LineComment)) Default: BlockComment Controls the comment-based help completion behavior triggered by typing ## . Set the generated help style with BlockComment or LineComment . Disable the feature with Disabled .","title":"lsp-pwsh-help-completion"},{"location":"page/lsp-pwsh/#lsp-pwsh-script-analysis-enable","text":"Type: boolean Default: t Enables real-time script analysis from PowerShell Script Analyzer. Uses the newest installed version of the PSScriptAnalyzer module or the version bundled with this extension, if it is newer.","title":"lsp-pwsh-script-analysis-enable"},{"location":"page/lsp-pwsh/#lsp-pwsh-script-analysis-settings-path","text":"Type: string Default: `` Specifies the path to a PowerShell Script Analyzer settings file. To override the default settings for all projects, enter an absolute path, or enter a path relative to your workspace.","title":"lsp-pwsh-script-analysis-settings-path"},{"location":"page/lsp-pyls/","text":"Python (deprecated Palantir version) # Server # For more information about the LSP server, check pyls . Installation # pip install 'python-language-server[all]' Debugger: Yes # Available configurations # lsp-clients-python-library-directories # Type: (repeat string) Default: (/usr/) List of directories which will be considered to be libraries. lsp-pyls-configuration-sources # Type: (repeat string) Default: [pycodestyle] List of configuration sources to use. lsp-pyls-disable-warning # Type: boolean Default: nil Disable Palantir python-language-server deprecation warning lsp-pyls-plugins-autopep8-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-flake8-config # Type: string Default: nil A path to a config file that will be the only config file read and used. This will cause Flake8 to ignore all other config files that exist. NOTE: other parameters as lsp-pyls-plugins-flake8-max-line-length take precedence over parameters referenced in config. lsp-pyls-plugins-flake8-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pyls-plugins-flake8-exclude # Type: (repeat string) Default: nil List of glob patterns to exclude from checks. lsp-pyls-plugins-flake8-filename # Type: (repeat string) Default: nil List of glob patterns to include for checks. lsp-pyls-plugins-flake8-hang-closing # Type: boolean Default: nil Toggle whether pycodestyle should enforce matching the indentation of the opening bracket`s line. When you specify this, it will prefer that you hang the closing bracket rather than match the indentation. lsp-pyls-plugins-flake8-ignore # Type: (repeat string) Default: nil A list of codes to ignore. lsp-pyls-plugins-flake8-max-line-length # Type: integer Default: nil Set the maximum length that any line (with some exceptions) may be. Exceptions include lines that are either strings or comments which are entirely URLs. lsp-pyls-plugins-flake8-select # Type: (repeat string) Default: nil Specify the list of error codes you wish Flake8 to report. Similarly to lsp-pyls-plugins-flake8-ignore . You can specify a portion of an error code to get all that start with that string. For example, you can use E, E4, E43, and E431 lsp-pyls-plugins-jedi-completion-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-jedi-completion-fuzzy # Type: boolean Default: nil If enabled, uses fuzzy completion in jedi. Requires pyls >= 0.32.0 Can hit performance, as well as lsp-mode implements its own fuzzy search on completion items. lsp-pyls-plugins-jedi-completion-include-class-objects # Type: boolean Default: t If enabled, adds class objects to completion in order to avoid snippet with init args. Has no effect if lsp-pyls-plugins-jedi-completion-include-params is disabled. Requires pyls >= 0.33.0 lsp-pyls-plugins-jedi-completion-include-params # Type: boolean Default: t Auto-completes methods and classes with tabstops for each parameter. lsp-pyls-plugins-jedi-definition-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-jedi-definition-follow-builtin-imports # Type: boolean Default: t If follow_imports is True will decide if it follow builtin imports. lsp-pyls-plugins-jedi-definition-follow-imports # Type: boolean Default: t The goto call will follow imports. lsp-pyls-plugins-jedi-environment # Type: string Default: nil Specify the environment that jedi runs on where /bin/python should be the python executable. This option will be prioritized over lsp-pyls-plugins-jedi-use-pyenv-environment . lsp-pyls-plugins-jedi-hover-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-jedi-references-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-jedi-signature-help-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-jedi-symbols-all-scopes # Type: boolean Default: t If True lists the names of all scopes instead of only the module namespace. lsp-pyls-plugins-jedi-symbols-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-jedi-use-pyenv-environment # Type: boolean Default: nil If enabled, pass the environment got by pyenv to jedi lsp-pyls-plugins-mccabe-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-mccabe-threshold # Type: number Default: 15 The minimum threshold that triggers warnings about cyclomatic complexity. lsp-pyls-plugins-preload-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-preload-modules # Type: (repeat string) Default: nil List of modules to import on startup lsp-pyls-plugins-pycodestyle-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-pycodestyle-exclude # Type: (repeat string) Default: nil Exclude files or directories which match these patterns. lsp-pyls-plugins-pycodestyle-filename # Type: (repeat string) Default: nil When parsing directories, only check filenames matching these patterns. lsp-pyls-plugins-pycodestyle-hang-closing # Type: boolean Default: nil Hang closing bracket instead of matching indentation of opening bracket`s line. lsp-pyls-plugins-pycodestyle-ignore # Type: (repeat string) Default: nil Ignore errors and warnings lsp-pyls-plugins-pycodestyle-max-line-length # Type: number Default: nil Set maximum allowed line length. lsp-pyls-plugins-pycodestyle-select # Type: (repeat string) Default: nil Select errors and warnings lsp-pyls-plugins-pydocstyle-add-ignore # Type: (repeat string) Default: nil Ignore errors and warnings in addition to the specified convention. lsp-pyls-plugins-pydocstyle-add-select # Type: (repeat string) Default: nil Select errors and warnings in addition to the specified convention. lsp-pyls-plugins-pydocstyle-convention # Type: (choice (:tag pep257 numpy)) Default: nil Choose the basic list of checked errors by specifying an existing convention. lsp-pyls-plugins-pydocstyle-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pyls-plugins-pydocstyle-ignore # Type: (repeat string) Default: nil Ignore errors and warnings lsp-pyls-plugins-pydocstyle-match # Type: string Default: (?!test_).*\\.py Check only files that exactly match the given regular expression; default is to match files that don t start with test_ but end with .py`. lsp-pyls-plugins-pydocstyle-match-dir # Type: string Default: [^\\.].* Search only dirs that exactly match the given regular expression; default is to match dirs which do not begin with a dot. lsp-pyls-plugins-pydocstyle-select # Type: (repeat string) Default: nil Select errors and warnings lsp-pyls-plugins-pyflakes-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-pylint-args # Type: lsp-string-vector Default: [] Arguments, passed to pylint lsp-pyls-plugins-pylint-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pyls-plugins-rope-completion-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pyls-plugins-yapf-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pyls-rename-backend # Type: (choice (const :tag jedi jedi) (const :tag rope rope)) Default: jedi Choose renaming backend. Jedi is preferred but only works for python >= 3.6 and pyls >= 0.32.0 Beware that Jedi is lazy and doesn`t scan the whole project. So it will rename only references it can find. lsp-pyls-rope-extension-modules # Type: string Default: nil Builtin and c-extension modules that are allowed to be imported and inspected by rope. lsp-pyls-rope-rope-folder # Type: (repeat string) Default: nil The name of the folder in which rope stores project configurations and data. Pass nil for not using such a folder at all. lsp-pyls-server-command # Type: (repeat string) Default: (pyls) Command to start pyls.","title":"Python (Palantir deprecated)"},{"location":"page/lsp-pyls/#python-deprecated-palantir-version","text":"","title":"Python (deprecated Palantir version)"},{"location":"page/lsp-pyls/#server","text":"For more information about the LSP server, check pyls .","title":"Server"},{"location":"page/lsp-pyls/#installation","text":"pip install 'python-language-server[all]'","title":"Installation"},{"location":"page/lsp-pyls/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-pyls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-pyls/#lsp-clients-python-library-directories","text":"Type: (repeat string) Default: (/usr/) List of directories which will be considered to be libraries.","title":"lsp-clients-python-library-directories"},{"location":"page/lsp-pyls/#lsp-pyls-configuration-sources","text":"Type: (repeat string) Default: [pycodestyle] List of configuration sources to use.","title":"lsp-pyls-configuration-sources"},{"location":"page/lsp-pyls/#lsp-pyls-disable-warning","text":"Type: boolean Default: nil Disable Palantir python-language-server deprecation warning","title":"lsp-pyls-disable-warning"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-autopep8-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-autopep8-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-config","text":"Type: string Default: nil A path to a config file that will be the only config file read and used. This will cause Flake8 to ignore all other config files that exist. NOTE: other parameters as lsp-pyls-plugins-flake8-max-line-length take precedence over parameters referenced in config.","title":"lsp-pyls-plugins-flake8-config"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pyls-plugins-flake8-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-exclude","text":"Type: (repeat string) Default: nil List of glob patterns to exclude from checks.","title":"lsp-pyls-plugins-flake8-exclude"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-filename","text":"Type: (repeat string) Default: nil List of glob patterns to include for checks.","title":"lsp-pyls-plugins-flake8-filename"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-hang-closing","text":"Type: boolean Default: nil Toggle whether pycodestyle should enforce matching the indentation of the opening bracket`s line. When you specify this, it will prefer that you hang the closing bracket rather than match the indentation.","title":"lsp-pyls-plugins-flake8-hang-closing"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-ignore","text":"Type: (repeat string) Default: nil A list of codes to ignore.","title":"lsp-pyls-plugins-flake8-ignore"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-max-line-length","text":"Type: integer Default: nil Set the maximum length that any line (with some exceptions) may be. Exceptions include lines that are either strings or comments which are entirely URLs.","title":"lsp-pyls-plugins-flake8-max-line-length"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-select","text":"Type: (repeat string) Default: nil Specify the list of error codes you wish Flake8 to report. Similarly to lsp-pyls-plugins-flake8-ignore . You can specify a portion of an error code to get all that start with that string. For example, you can use E, E4, E43, and E431","title":"lsp-pyls-plugins-flake8-select"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-completion-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-jedi-completion-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-completion-fuzzy","text":"Type: boolean Default: nil If enabled, uses fuzzy completion in jedi. Requires pyls >= 0.32.0 Can hit performance, as well as lsp-mode implements its own fuzzy search on completion items.","title":"lsp-pyls-plugins-jedi-completion-fuzzy"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-completion-include-class-objects","text":"Type: boolean Default: t If enabled, adds class objects to completion in order to avoid snippet with init args. Has no effect if lsp-pyls-plugins-jedi-completion-include-params is disabled. Requires pyls >= 0.33.0","title":"lsp-pyls-plugins-jedi-completion-include-class-objects"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-completion-include-params","text":"Type: boolean Default: t Auto-completes methods and classes with tabstops for each parameter.","title":"lsp-pyls-plugins-jedi-completion-include-params"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-definition-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-jedi-definition-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-definition-follow-builtin-imports","text":"Type: boolean Default: t If follow_imports is True will decide if it follow builtin imports.","title":"lsp-pyls-plugins-jedi-definition-follow-builtin-imports"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-definition-follow-imports","text":"Type: boolean Default: t The goto call will follow imports.","title":"lsp-pyls-plugins-jedi-definition-follow-imports"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-environment","text":"Type: string Default: nil Specify the environment that jedi runs on where /bin/python should be the python executable. This option will be prioritized over lsp-pyls-plugins-jedi-use-pyenv-environment .","title":"lsp-pyls-plugins-jedi-environment"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-hover-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-jedi-hover-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-references-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-jedi-references-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-signature-help-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-jedi-signature-help-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-symbols-all-scopes","text":"Type: boolean Default: t If True lists the names of all scopes instead of only the module namespace.","title":"lsp-pyls-plugins-jedi-symbols-all-scopes"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-symbols-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-jedi-symbols-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-use-pyenv-environment","text":"Type: boolean Default: nil If enabled, pass the environment got by pyenv to jedi","title":"lsp-pyls-plugins-jedi-use-pyenv-environment"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-mccabe-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-mccabe-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-mccabe-threshold","text":"Type: number Default: 15 The minimum threshold that triggers warnings about cyclomatic complexity.","title":"lsp-pyls-plugins-mccabe-threshold"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-preload-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-preload-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-preload-modules","text":"Type: (repeat string) Default: nil List of modules to import on startup","title":"lsp-pyls-plugins-preload-modules"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-pycodestyle-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-exclude","text":"Type: (repeat string) Default: nil Exclude files or directories which match these patterns.","title":"lsp-pyls-plugins-pycodestyle-exclude"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-filename","text":"Type: (repeat string) Default: nil When parsing directories, only check filenames matching these patterns.","title":"lsp-pyls-plugins-pycodestyle-filename"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-hang-closing","text":"Type: boolean Default: nil Hang closing bracket instead of matching indentation of opening bracket`s line.","title":"lsp-pyls-plugins-pycodestyle-hang-closing"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-ignore","text":"Type: (repeat string) Default: nil Ignore errors and warnings","title":"lsp-pyls-plugins-pycodestyle-ignore"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-max-line-length","text":"Type: number Default: nil Set maximum allowed line length.","title":"lsp-pyls-plugins-pycodestyle-max-line-length"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-select","text":"Type: (repeat string) Default: nil Select errors and warnings","title":"lsp-pyls-plugins-pycodestyle-select"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-add-ignore","text":"Type: (repeat string) Default: nil Ignore errors and warnings in addition to the specified convention.","title":"lsp-pyls-plugins-pydocstyle-add-ignore"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-add-select","text":"Type: (repeat string) Default: nil Select errors and warnings in addition to the specified convention.","title":"lsp-pyls-plugins-pydocstyle-add-select"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-convention","text":"Type: (choice (:tag pep257 numpy)) Default: nil Choose the basic list of checked errors by specifying an existing convention.","title":"lsp-pyls-plugins-pydocstyle-convention"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pyls-plugins-pydocstyle-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-ignore","text":"Type: (repeat string) Default: nil Ignore errors and warnings","title":"lsp-pyls-plugins-pydocstyle-ignore"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-match","text":"Type: string Default: (?!test_).*\\.py Check only files that exactly match the given regular expression; default is to match files that don t start with test_ but end with .py`.","title":"lsp-pyls-plugins-pydocstyle-match"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-match-dir","text":"Type: string Default: [^\\.].* Search only dirs that exactly match the given regular expression; default is to match dirs which do not begin with a dot.","title":"lsp-pyls-plugins-pydocstyle-match-dir"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-select","text":"Type: (repeat string) Default: nil Select errors and warnings","title":"lsp-pyls-plugins-pydocstyle-select"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pyflakes-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-pyflakes-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pylint-args","text":"Type: lsp-string-vector Default: [] Arguments, passed to pylint","title":"lsp-pyls-plugins-pylint-args"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pylint-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pyls-plugins-pylint-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-rope-completion-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pyls-plugins-rope-completion-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-yapf-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pyls-plugins-yapf-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-rename-backend","text":"Type: (choice (const :tag jedi jedi) (const :tag rope rope)) Default: jedi Choose renaming backend. Jedi is preferred but only works for python >= 3.6 and pyls >= 0.32.0 Beware that Jedi is lazy and doesn`t scan the whole project. So it will rename only references it can find.","title":"lsp-pyls-rename-backend"},{"location":"page/lsp-pyls/#lsp-pyls-rope-extension-modules","text":"Type: string Default: nil Builtin and c-extension modules that are allowed to be imported and inspected by rope.","title":"lsp-pyls-rope-extension-modules"},{"location":"page/lsp-pyls/#lsp-pyls-rope-rope-folder","text":"Type: (repeat string) Default: nil The name of the folder in which rope stores project configurations and data. Pass nil for not using such a folder at all.","title":"lsp-pyls-rope-rope-folder"},{"location":"page/lsp-pyls/#lsp-pyls-server-command","text":"Type: (repeat string) Default: (pyls) Command to start pyls.","title":"lsp-pyls-server-command"},{"location":"page/lsp-pylsp/","text":"Python # Server # For more information about the LSP server, check pylsp . Installation # pip install 'python-lsp-server[all]' Debugger: Yes # Available configurations # lsp-clients-pylsp-library-directories # Type: (repeat string) Default: (/usr/) List of directories which will be considered to be libraries. lsp-pylsp-configuration-sources # Type: lsp-string-vector Default: [flake8] List of configuration sources to use. lsp-pylsp-plugins-autopep8-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-black-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-flake8-config # Type: string Default: nil A path to a config file that will be the only config file read and used. This will cause Flake8 to ignore all other config files that exist. NOTE: other parameters as lsp-pylsp-plugins-flake8-max-line-length take precedence over parameters referenced in config. lsp-pylsp-plugins-flake8-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-flake8-exclude # Type: lsp-string-vector Default: nil List of glob patterns to exclude from checks. lsp-pylsp-plugins-flake8-filename # Type: lsp-string-vector Default: nil List of glob patterns to include for checks. lsp-pylsp-plugins-flake8-hang-closing # Type: boolean Default: nil Toggle whether pycodestyle should enforce matching the indentation of the opening bracket`s line. When you specify this, it will prefer that you hang the closing bracket rather than match the indentation. lsp-pylsp-plugins-flake8-ignore # Type: lsp-string-vector Default: nil A list of codes to ignore. lsp-pylsp-plugins-flake8-max-line-length # Type: integer Default: nil Set the maximum length that any line (with some exceptions) may be. Exceptions include lines that are either strings or comments which are entirely URLs. lsp-pylsp-plugins-flake8-select # Type: lsp-string-vector Default: nil Specify the list of error codes you wish Flake8 to report. Similarly to lsp-pylsp-plugins-flake8-ignore . You can specify a portion of an error code to get all that start with that string. For example, you can use E, E4, E43, and E431 lsp-pylsp-plugins-isort-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-jedi-completion-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-jedi-completion-fuzzy # Type: boolean Default: nil If enabled, uses fuzzy completion in jedi. Requires pylsp >= 0.32.0 Can hit performance, as well as lsp-mode implements its own fuzzy search on completion items. lsp-pylsp-plugins-jedi-completion-include-class-objects # Type: boolean Default: t If enabled, adds class objects to completion in order to avoid snippet with init args. Has no effect if lsp-pylsp-plugins-jedi-completion-include-params is disabled. Requires pylsp >= 0.33.0 lsp-pylsp-plugins-jedi-completion-include-params # Type: boolean Default: t Auto-completes methods and classes with tabstops for each parameter. lsp-pylsp-plugins-jedi-definition-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-jedi-definition-follow-builtin-imports # Type: boolean Default: t If follow_imports is True will decide if it follow builtin imports. lsp-pylsp-plugins-jedi-definition-follow-imports # Type: boolean Default: t The goto call will follow imports. lsp-pylsp-plugins-jedi-environment # Type: string Default: nil Specify the environment that jedi runs on where /bin/python should be the python executable. This option will be prioritized over lsp-pylsp-plugins-jedi-use-pyenv-environment . lsp-pylsp-plugins-jedi-hover-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-jedi-references-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-jedi-signature-help-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-jedi-symbols-all-scopes # Type: boolean Default: t If True lists the names of all scopes instead of only the module namespace. lsp-pylsp-plugins-jedi-symbols-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-jedi-use-pyenv-environment # Type: boolean Default: nil If enabled, pass the environment got by pyenv to jedi lsp-pylsp-plugins-mccabe-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-mccabe-threshold # Type: number Default: 15 The minimum threshold that triggers warnings about cyclomatic complexity. lsp-pylsp-plugins-preload-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-preload-modules # Type: lsp-string-vector Default: nil List of modules to import on startup lsp-pylsp-plugins-pycodestyle-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-pycodestyle-exclude # Type: lsp-string-vector Default: nil Exclude files or directories which match these patterns. lsp-pylsp-plugins-pycodestyle-filename # Type: lsp-string-vector Default: nil When parsing directories, only check filenames matching these patterns. lsp-pylsp-plugins-pycodestyle-hang-closing # Type: boolean Default: nil Hang closing bracket instead of matching indentation of opening bracket`s line. lsp-pylsp-plugins-pycodestyle-ignore # Type: lsp-string-vector Default: nil Ignore errors and warnings lsp-pylsp-plugins-pycodestyle-max-line-length # Type: number Default: nil Set maximum allowed line length. lsp-pylsp-plugins-pycodestyle-select # Type: lsp-string-vector Default: nil Select errors and warnings lsp-pylsp-plugins-pydocstyle-add-ignore # Type: lsp-string-vector Default: nil Ignore errors and warnings in addition to the specified convention. lsp-pylsp-plugins-pydocstyle-add-select # Type: lsp-string-vector Default: nil Select errors and warnings in addition to the specified convention. lsp-pylsp-plugins-pydocstyle-convention # Type: (choice (:tag pep257 numpy)) Default: nil Choose the basic list of checked errors by specifying an existing convention. lsp-pylsp-plugins-pydocstyle-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-pydocstyle-ignore # Type: lsp-string-vector Default: nil Ignore errors and warnings lsp-pylsp-plugins-pydocstyle-match # Type: string Default: (?!test_).*\\.py Check only files that exactly match the given regular expression; default is to match files that don t start with test_ but end with .py`. lsp-pylsp-plugins-pydocstyle-match-dir # Type: string Default: [^\\.].* Search only dirs that exactly match the given regular expression; default is to match dirs which do not begin with a dot. lsp-pylsp-plugins-pydocstyle-select # Type: lsp-string-vector Default: nil Select errors and warnings lsp-pylsp-plugins-pyflakes-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-pylint-args # Type: lsp-string-vector Default: [] Arguments, passed to pylint lsp-pylsp-plugins-pylint-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-rope-autoimport-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-rope-autoimport-memory # Type: boolean Default: nil Make the autoimport database memory only. Drastically increases startup time. lsp-pylsp-plugins-rope-completion-eager # Type: boolean Default: nil Resolve documentation and detail eagerly. lsp-pylsp-plugins-rope-completion-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-yapf-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-rename-backend # Type: (choice (const :tag jedi jedi) (const :tag rope rope)) Default: jedi Choose renaming backend. Jedi is preferred but only works for python >= 3.6 and pylsp >= 0.32.0 Beware that Jedi is lazy and doesn`t scan the whole project. So it will rename only references it can find. lsp-pylsp-rope-extension-modules # Type: string Default: nil Builtin and c-extension modules that are allowed to be imported and inspected by rope. lsp-pylsp-rope-rope-folder # Type: lsp-string-vector Default: nil The name of the folder in which rope stores project configurations and data. Pass nil for not using such a folder at all. lsp-pylsp-server-command # Type: (repeat string) Default: (pylsp) Command to start pylsp.","title":"Python (Pylsp)"},{"location":"page/lsp-pylsp/#python","text":"","title":"Python"},{"location":"page/lsp-pylsp/#server","text":"For more information about the LSP server, check pylsp .","title":"Server"},{"location":"page/lsp-pylsp/#installation","text":"pip install 'python-lsp-server[all]'","title":"Installation"},{"location":"page/lsp-pylsp/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-pylsp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-pylsp/#lsp-clients-pylsp-library-directories","text":"Type: (repeat string) Default: (/usr/) List of directories which will be considered to be libraries.","title":"lsp-clients-pylsp-library-directories"},{"location":"page/lsp-pylsp/#lsp-pylsp-configuration-sources","text":"Type: lsp-string-vector Default: [flake8] List of configuration sources to use.","title":"lsp-pylsp-configuration-sources"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-autopep8-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-autopep8-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-black-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-black-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-config","text":"Type: string Default: nil A path to a config file that will be the only config file read and used. This will cause Flake8 to ignore all other config files that exist. NOTE: other parameters as lsp-pylsp-plugins-flake8-max-line-length take precedence over parameters referenced in config.","title":"lsp-pylsp-plugins-flake8-config"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-flake8-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-exclude","text":"Type: lsp-string-vector Default: nil List of glob patterns to exclude from checks.","title":"lsp-pylsp-plugins-flake8-exclude"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-filename","text":"Type: lsp-string-vector Default: nil List of glob patterns to include for checks.","title":"lsp-pylsp-plugins-flake8-filename"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-hang-closing","text":"Type: boolean Default: nil Toggle whether pycodestyle should enforce matching the indentation of the opening bracket`s line. When you specify this, it will prefer that you hang the closing bracket rather than match the indentation.","title":"lsp-pylsp-plugins-flake8-hang-closing"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-ignore","text":"Type: lsp-string-vector Default: nil A list of codes to ignore.","title":"lsp-pylsp-plugins-flake8-ignore"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-max-line-length","text":"Type: integer Default: nil Set the maximum length that any line (with some exceptions) may be. Exceptions include lines that are either strings or comments which are entirely URLs.","title":"lsp-pylsp-plugins-flake8-max-line-length"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-select","text":"Type: lsp-string-vector Default: nil Specify the list of error codes you wish Flake8 to report. Similarly to lsp-pylsp-plugins-flake8-ignore . You can specify a portion of an error code to get all that start with that string. For example, you can use E, E4, E43, and E431","title":"lsp-pylsp-plugins-flake8-select"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-isort-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-isort-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-completion-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-jedi-completion-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-completion-fuzzy","text":"Type: boolean Default: nil If enabled, uses fuzzy completion in jedi. Requires pylsp >= 0.32.0 Can hit performance, as well as lsp-mode implements its own fuzzy search on completion items.","title":"lsp-pylsp-plugins-jedi-completion-fuzzy"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-completion-include-class-objects","text":"Type: boolean Default: t If enabled, adds class objects to completion in order to avoid snippet with init args. Has no effect if lsp-pylsp-plugins-jedi-completion-include-params is disabled. Requires pylsp >= 0.33.0","title":"lsp-pylsp-plugins-jedi-completion-include-class-objects"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-completion-include-params","text":"Type: boolean Default: t Auto-completes methods and classes with tabstops for each parameter.","title":"lsp-pylsp-plugins-jedi-completion-include-params"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-definition-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-jedi-definition-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-definition-follow-builtin-imports","text":"Type: boolean Default: t If follow_imports is True will decide if it follow builtin imports.","title":"lsp-pylsp-plugins-jedi-definition-follow-builtin-imports"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-definition-follow-imports","text":"Type: boolean Default: t The goto call will follow imports.","title":"lsp-pylsp-plugins-jedi-definition-follow-imports"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-environment","text":"Type: string Default: nil Specify the environment that jedi runs on where /bin/python should be the python executable. This option will be prioritized over lsp-pylsp-plugins-jedi-use-pyenv-environment .","title":"lsp-pylsp-plugins-jedi-environment"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-hover-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-jedi-hover-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-references-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-jedi-references-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-signature-help-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-jedi-signature-help-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-symbols-all-scopes","text":"Type: boolean Default: t If True lists the names of all scopes instead of only the module namespace.","title":"lsp-pylsp-plugins-jedi-symbols-all-scopes"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-symbols-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-jedi-symbols-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-use-pyenv-environment","text":"Type: boolean Default: nil If enabled, pass the environment got by pyenv to jedi","title":"lsp-pylsp-plugins-jedi-use-pyenv-environment"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-mccabe-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-mccabe-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-mccabe-threshold","text":"Type: number Default: 15 The minimum threshold that triggers warnings about cyclomatic complexity.","title":"lsp-pylsp-plugins-mccabe-threshold"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-preload-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-preload-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-preload-modules","text":"Type: lsp-string-vector Default: nil List of modules to import on startup","title":"lsp-pylsp-plugins-preload-modules"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-pycodestyle-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-exclude","text":"Type: lsp-string-vector Default: nil Exclude files or directories which match these patterns.","title":"lsp-pylsp-plugins-pycodestyle-exclude"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-filename","text":"Type: lsp-string-vector Default: nil When parsing directories, only check filenames matching these patterns.","title":"lsp-pylsp-plugins-pycodestyle-filename"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-hang-closing","text":"Type: boolean Default: nil Hang closing bracket instead of matching indentation of opening bracket`s line.","title":"lsp-pylsp-plugins-pycodestyle-hang-closing"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-ignore","text":"Type: lsp-string-vector Default: nil Ignore errors and warnings","title":"lsp-pylsp-plugins-pycodestyle-ignore"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-max-line-length","text":"Type: number Default: nil Set maximum allowed line length.","title":"lsp-pylsp-plugins-pycodestyle-max-line-length"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-select","text":"Type: lsp-string-vector Default: nil Select errors and warnings","title":"lsp-pylsp-plugins-pycodestyle-select"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-add-ignore","text":"Type: lsp-string-vector Default: nil Ignore errors and warnings in addition to the specified convention.","title":"lsp-pylsp-plugins-pydocstyle-add-ignore"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-add-select","text":"Type: lsp-string-vector Default: nil Select errors and warnings in addition to the specified convention.","title":"lsp-pylsp-plugins-pydocstyle-add-select"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-convention","text":"Type: (choice (:tag pep257 numpy)) Default: nil Choose the basic list of checked errors by specifying an existing convention.","title":"lsp-pylsp-plugins-pydocstyle-convention"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-pydocstyle-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-ignore","text":"Type: lsp-string-vector Default: nil Ignore errors and warnings","title":"lsp-pylsp-plugins-pydocstyle-ignore"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-match","text":"Type: string Default: (?!test_).*\\.py Check only files that exactly match the given regular expression; default is to match files that don t start with test_ but end with .py`.","title":"lsp-pylsp-plugins-pydocstyle-match"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-match-dir","text":"Type: string Default: [^\\.].* Search only dirs that exactly match the given regular expression; default is to match dirs which do not begin with a dot.","title":"lsp-pylsp-plugins-pydocstyle-match-dir"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-select","text":"Type: lsp-string-vector Default: nil Select errors and warnings","title":"lsp-pylsp-plugins-pydocstyle-select"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pyflakes-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-pyflakes-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pylint-args","text":"Type: lsp-string-vector Default: [] Arguments, passed to pylint","title":"lsp-pylsp-plugins-pylint-args"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pylint-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-pylint-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-rope-autoimport-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-rope-autoimport-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-rope-autoimport-memory","text":"Type: boolean Default: nil Make the autoimport database memory only. Drastically increases startup time.","title":"lsp-pylsp-plugins-rope-autoimport-memory"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-rope-completion-eager","text":"Type: boolean Default: nil Resolve documentation and detail eagerly.","title":"lsp-pylsp-plugins-rope-completion-eager"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-rope-completion-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-rope-completion-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-yapf-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-yapf-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-rename-backend","text":"Type: (choice (const :tag jedi jedi) (const :tag rope rope)) Default: jedi Choose renaming backend. Jedi is preferred but only works for python >= 3.6 and pylsp >= 0.32.0 Beware that Jedi is lazy and doesn`t scan the whole project. So it will rename only references it can find.","title":"lsp-pylsp-rename-backend"},{"location":"page/lsp-pylsp/#lsp-pylsp-rope-extension-modules","text":"Type: string Default: nil Builtin and c-extension modules that are allowed to be imported and inspected by rope.","title":"lsp-pylsp-rope-extension-modules"},{"location":"page/lsp-pylsp/#lsp-pylsp-rope-rope-folder","text":"Type: lsp-string-vector Default: nil The name of the folder in which rope stores project configurations and data. Pass nil for not using such a folder at all.","title":"lsp-pylsp-rope-rope-folder"},{"location":"page/lsp-pylsp/#lsp-pylsp-server-command","text":"Type: (repeat string) Default: (pylsp) Command to start pylsp.","title":"lsp-pylsp-server-command"},{"location":"page/lsp-pyright/","text":"Python (Pyright) # Server # For more information about the LSP server, check pyright-langserver . Installation # For more instructions on how to install manually, check here . Debugger: Yes # Available configurations #","title":"Lsp pyright"},{"location":"page/lsp-pyright/#python-pyright","text":"","title":"Python (Pyright)"},{"location":"page/lsp-pyright/#server","text":"For more information about the LSP server, check pyright-langserver .","title":"Server"},{"location":"page/lsp-pyright/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-pyright/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-pyright/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-python-ms/","text":"Python (Microsoft) # Server # For more information about the LSP server, check Microsoft Python Language Server . Installation # For more instructions on how to install manually, check here . Debugger: Yes # Available configurations #","title":"Lsp python ms"},{"location":"page/lsp-python-ms/#python-microsoft","text":"","title":"Python (Microsoft)"},{"location":"page/lsp-python-ms/#server","text":"For more information about the LSP server, check Microsoft Python Language Server .","title":"Server"},{"location":"page/lsp-python-ms/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-python-ms/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-python-ms/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-r/","text":"R # Server # For more information about the LSP server, check languageserver . Installation # install.packages(\u201clanguageserver\u201d) For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-r-server-command # Type: (repeat string) Default: (R --slave -e languageserver::run()) Command to start the R language server.","title":"R"},{"location":"page/lsp-r/#r","text":"","title":"R"},{"location":"page/lsp-r/#server","text":"For more information about the LSP server, check languageserver .","title":"Server"},{"location":"page/lsp-r/#installation","text":"install.packages(\u201clanguageserver\u201d) For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-r/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-r/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-r/#lsp-clients-r-server-command","text":"Type: (repeat string) Default: (R --slave -e languageserver::run()) Command to start the R language server.","title":"lsp-clients-r-server-command"},{"location":"page/lsp-racket-langserver/","text":"Racket (jeapostrophe) # Server # For more information about the LSP server, check racket-langserver . Installation # raco pkg install racket-langserver Debugger: Not available # Available configurations # lsp-racket-langserver-command # Type: string Default: (racket --lib racket-langserver) Command to start the server.","title":"Racket (jeapostrophe)"},{"location":"page/lsp-racket-langserver/#racket-jeapostrophe","text":"","title":"Racket (jeapostrophe)"},{"location":"page/lsp-racket-langserver/#server","text":"For more information about the LSP server, check racket-langserver .","title":"Server"},{"location":"page/lsp-racket-langserver/#installation","text":"raco pkg install racket-langserver","title":"Installation"},{"location":"page/lsp-racket-langserver/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-racket-langserver/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-racket-langserver/#lsp-racket-langserver-command","text":"Type: string Default: (racket --lib racket-langserver) Command to start the server.","title":"lsp-racket-langserver-command"},{"location":"page/lsp-racket-language-server/","text":"Racket (Theia) # Server # For more information about the LSP server, check racket-language-server . Installation # raco pkg install racket-language-server Debugger: Not available # Available configurations # lsp-racket-language-server-path # Type: string Default: racket-language-server Executable path for the server.","title":"Racket (Theia)"},{"location":"page/lsp-racket-language-server/#racket-theia","text":"","title":"Racket (Theia)"},{"location":"page/lsp-racket-language-server/#server","text":"For more information about the LSP server, check racket-language-server .","title":"Server"},{"location":"page/lsp-racket-language-server/#installation","text":"raco pkg install racket-language-server","title":"Installation"},{"location":"page/lsp-racket-language-server/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-racket-language-server/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-racket-language-server/#lsp-racket-language-server-path","text":"Type: string Default: racket-language-server Executable path for the server.","title":"lsp-racket-language-server-path"},{"location":"page/lsp-remark/","text":"Remark # Server # For more information about the LSP server, check remark-language-server . Installation # npm i -g remark-language-server Debugger: Not available # Available configurations # lsp-remark-server-command # Type: string Default: remark-language-server The binary (or full path to binary) which executes the server. lsp-remark-server-command-args # Type: (repeat 'string) Default: (--stdio) Command-line arguments for the markdown lsp server.","title":"Lsp remark"},{"location":"page/lsp-remark/#remark","text":"","title":"Remark"},{"location":"page/lsp-remark/#server","text":"For more information about the LSP server, check remark-language-server .","title":"Server"},{"location":"page/lsp-remark/#installation","text":"npm i -g remark-language-server","title":"Installation"},{"location":"page/lsp-remark/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-remark/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-remark/#lsp-remark-server-command","text":"Type: string Default: remark-language-server The binary (or full path to binary) which executes the server.","title":"lsp-remark-server-command"},{"location":"page/lsp-remark/#lsp-remark-server-command-args","text":"Type: (repeat 'string) Default: (--stdio) Command-line arguments for the markdown lsp server.","title":"lsp-remark-server-command-args"},{"location":"page/lsp-robot/","text":"robot framework # Server # For more information about the LSP server, check rf-intellisense . Installation # pip install robotframework --user For more instructions on how to install manually, check here . Debugger: Yes # Available configurations #","title":"Lsp robot"},{"location":"page/lsp-robot/#robot-framework","text":"","title":"robot framework"},{"location":"page/lsp-robot/#server","text":"For more information about the LSP server, check rf-intellisense .","title":"Server"},{"location":"page/lsp-robot/#installation","text":"pip install robotframework --user For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-robot/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-robot/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-rubocop/","text":"Ruby (RuboCop) # Server # For more information about the LSP server, check rubocop . Installation # gem install rubocop For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-rubocop-server-path # Type: file Default: nil Path of the RuboCop built-in language server executable. If specified, lsp-rubocop-use-bundler is ignored. lsp-rubocop-use-bundler # Type: boolean Default: nil Run RuboCop using Bundler.","title":"Ruby (RuboCop)"},{"location":"page/lsp-rubocop/#ruby-rubocop","text":"","title":"Ruby (RuboCop)"},{"location":"page/lsp-rubocop/#server","text":"For more information about the LSP server, check rubocop .","title":"Server"},{"location":"page/lsp-rubocop/#installation","text":"gem install rubocop For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-rubocop/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-rubocop/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-rubocop/#lsp-rubocop-server-path","text":"Type: file Default: nil Path of the RuboCop built-in language server executable. If specified, lsp-rubocop-use-bundler is ignored.","title":"lsp-rubocop-server-path"},{"location":"page/lsp-rubocop/#lsp-rubocop-use-bundler","text":"Type: boolean Default: nil Run RuboCop using Bundler.","title":"lsp-rubocop-use-bundler"},{"location":"page/lsp-ruby-lsp/","text":"Ruby (ruby-lsp) # Server # For more information about the LSP server, check ruby-lsp . Installation # gem install ruby-lsp Debugger: Not available # Available configurations # lsp-ruby-lsp-use-bundler # Type: boolean Default: nil Run ruby-lsp using bundler.","title":"Ruby (ruby-lsp)"},{"location":"page/lsp-ruby-lsp/#ruby-ruby-lsp","text":"","title":"Ruby (ruby-lsp)"},{"location":"page/lsp-ruby-lsp/#server","text":"For more information about the LSP server, check ruby-lsp .","title":"Server"},{"location":"page/lsp-ruby-lsp/#installation","text":"gem install ruby-lsp","title":"Installation"},{"location":"page/lsp-ruby-lsp/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ruby-lsp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ruby-lsp/#lsp-ruby-lsp-use-bundler","text":"Type: boolean Default: nil Run ruby-lsp using bundler.","title":"lsp-ruby-lsp-use-bundler"},{"location":"page/lsp-ruff-lsp/","text":"Python # Server # For more information about the LSP server, check ruff-lsp . Installation # pip install ruff-lsp Debugger: Not available # Available configurations # lsp-ruff-lsp-advertize-fix-all # Type: boolean Default: t Whether to report ability to handle source.fixAll actions. lsp-ruff-lsp-advertize-organize-imports # Type: boolean Default: t Whether to report ability to handle source.organizeImports actions. lsp-ruff-lsp-import-strategy # Type: (choice (const fromEnvironment) (const useBundled)) Default: fromEnvironment Where ruff is imported from if lsp-ruff-lsp-ruff-path is not set. lsp-ruff-lsp-log-level # Type: (choice (const debug) (const error) (const info) (const off) (const warn)) Default: error Tracing level. lsp-ruff-lsp-python-path # Type: string Default: python3 Path to the Python interpreter. lsp-ruff-lsp-ruff-args # Type: lsp-string-vector Default: [] Arguments, passed to ruff. lsp-ruff-lsp-ruff-path # Type: lsp-string-vector Default: [ruff] Paths to ruff to try, in order. lsp-ruff-lsp-server-command # Type: (repeat string) Default: (ruff-lsp) Command to start ruff-lsp. lsp-ruff-lsp-show-notifications # Type: (choice (const off) (const onError) (const onWarning) (const always)) Default: off When notifications are shown.","title":"Python (Ruff)"},{"location":"page/lsp-ruff-lsp/#python","text":"","title":"Python"},{"location":"page/lsp-ruff-lsp/#server","text":"For more information about the LSP server, check ruff-lsp .","title":"Server"},{"location":"page/lsp-ruff-lsp/#installation","text":"pip install ruff-lsp","title":"Installation"},{"location":"page/lsp-ruff-lsp/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ruff-lsp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-advertize-fix-all","text":"Type: boolean Default: t Whether to report ability to handle source.fixAll actions.","title":"lsp-ruff-lsp-advertize-fix-all"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-advertize-organize-imports","text":"Type: boolean Default: t Whether to report ability to handle source.organizeImports actions.","title":"lsp-ruff-lsp-advertize-organize-imports"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-import-strategy","text":"Type: (choice (const fromEnvironment) (const useBundled)) Default: fromEnvironment Where ruff is imported from if lsp-ruff-lsp-ruff-path is not set.","title":"lsp-ruff-lsp-import-strategy"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-log-level","text":"Type: (choice (const debug) (const error) (const info) (const off) (const warn)) Default: error Tracing level.","title":"lsp-ruff-lsp-log-level"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-python-path","text":"Type: string Default: python3 Path to the Python interpreter.","title":"lsp-ruff-lsp-python-path"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-ruff-args","text":"Type: lsp-string-vector Default: [] Arguments, passed to ruff.","title":"lsp-ruff-lsp-ruff-args"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-ruff-path","text":"Type: lsp-string-vector Default: [ruff] Paths to ruff to try, in order.","title":"lsp-ruff-lsp-ruff-path"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-server-command","text":"Type: (repeat string) Default: (ruff-lsp) Command to start ruff-lsp.","title":"lsp-ruff-lsp-server-command"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-show-notifications","text":"Type: (choice (const off) (const onError) (const onWarning) (const always)) Default: off When notifications are shown.","title":"lsp-ruff-lsp-show-notifications"},{"location":"page/lsp-rust-analyzer/","text":"Rust # Server # For more information about the LSP server, check rust-analyzer . Installation # For more instructions on how to install manually, check here . Debugger: Not available # author: yyoncho template: comment.html root_file: docs/manual-language-docs/lsp-rust-analyzer.md Server note # NOTE: If you are using rustic-mode , you have to change rustic-lsp-server instead of lsp-rust-server , since it also supports eglot as a lightweight alternative to lsp-mode. lsp-rust-server Choose LSP server (default is rust-analyzer) lsp-rust-switch-server Switch priorities of lsp servers rust-analyzer # Commands # lsp-rust-analyzer-syntax-tree # Display syntax tree for current buffer lsp-rust-analyzer-status # Display status information for rust-analyzer lsp-rust-analyzer-join-lines # Join selected lines into one, smartly fixing up whitespace and trailing commas before: after: inlay-hints # lsp-inlay-hints-mode enables displaying of inlay hints Additionally, lsp-inlay-hint-enable must be set to t in order for inlay hints to render. NOTE: the inlay hints interact badly with the lsp-ui sideline, because it doesn't seem to consider the overlays in its width calculation, which often leads to lines wrapping around. Macro expansion # lsp-rust-analyzer-expand-macro expand macro call at point recursively Use your own function for displaying macro expansion by customizing lsp-rust-analyzer-macro-expansion-method Formatted and highlighted result with the default function of rustic. auto-import # Get a list of possible auto import candidates with lsp-execute-code-action Snippet insertion/refactor # To support refactorings that require snippet insertion(eg. generating derive clause etc), make sure that you have enabled yasnippet and yas-minor-mode . If you are using use-package , you can do something like this: ( use-package yasnippet :ensure t :hook (( lsp-mode . yas-minor-mode ))) Open Cargo.toml # lsp-rust-analyzer-open-cargo-toml opens the Cargo.toml closest to the current file. Calling it with a universal argument will open the Cargo.toml in another window. Corresponds to the rust-analyzer LSP extension Open external documentation # lsp-rust-analyzer-open-external-docs opens external documentation related to the current position in a browser. Corresponds to the rust-analyzer LSP extension Find and execute tests related to current position # lsp-rust-analyzer-related-tests find all tests related to the current position, asks for user completion and executes the selected test in a compilation buffer. Corresponds to the rust-analyzer LSP extension In the example below, first you see that: + On the left, the function check_infer is defined, on the right another file is opened with many test functions, some of which call check_infer . With the cursor on check_infer , call lsp-rust-analyzer-related-tests and select infer_pattern_match_slice with fuzzy matching. The test is executed on the right with compilation major mode Move the cursor to fn ellipsize and attempt to find related tests to no avail. Confirm that the function is indeed untested by using swiper and finding one place in the file, where the function is called Caveats # Rust Analyzer does not support disabling snippets - https://github.com/rust-analyzer/rust-analyzer/issues/2518 extract signature # This unmerged PR contains an example method that allows modifying the signature that is displayed by eldoc. TRAMP Example # The following is an example configuration for using lsp-mode with a remote rust-analyzer server: (with-eval-after-load \"lsp-rust\" (lsp-register-client (make-lsp-client :new-connection (lsp-tramp-connection \"rust-analyzer\") :remote? t :major-modes '(rust-mode rustic-mode) :initialization-options 'lsp-rust-analyzer--make-init-options :notification-handlers (ht<-alist lsp-rust-notification-handlers) :action-handlers (ht (\"rust-analyzer.runSingle\" #'lsp-rust--analyzer-run-single)) :library-folders-fn (lambda (_workspace) lsp-rust-analyzer-library-directories) :ignore-messages nil :server-id 'rust-analyzer-remote))) Available configurations # lsp-rust-server # Type: (choice (const :tag rls rls) (const :tag rust-analyzer rust-analyzer)) Default: rust-analyzer Choose LSP server. lsp-rust-analyzer-binding-mode-hints # Type: boolean Default: nil Whether to show inlay type hints for binding modes. lsp-rust-analyzer-call-info-full # Type: boolean Default: t Whether to show function name and docs in parameter hints. lsp-rust-analyzer-cargo-auto-reload # Type: boolean Default: t Automatically refresh project info via cargo metadata on Cargo.toml changes. lsp-rust-analyzer-cargo-override-command # Type: lsp-string-vector Default: [] Advanced option, fully override the command rust-analyzer uses for checking. The command should include --message=format=json or similar option. lsp-rust-analyzer-cargo-run-build-scripts # Type: boolean Default: t Whether to run build scripts ( build.rs ) for more precise code analysis. lsp-rust-analyzer-cargo-target # Type: (choice (string :tag Target) (const :tag None nil)) Default: nil Compilation target (target triple). lsp-rust-analyzer-cargo-unset-test # Type: lsp-string-vector Default: [] force rust-analyzer to unset #[cfg(test)] for the specified crates. lsp-rust-analyzer-cargo-watch-args # Type: lsp-string-vector Default: [] Extra arguments for cargo check . lsp-rust-analyzer-cargo-watch-command # Type: string Default: check Cargo watch command. lsp-rust-analyzer-cargo-watch-enable # Type: boolean Default: t Enable Cargo watch. lsp-rust-analyzer-check-all-targets # Type: boolean Default: t Enables --all-targets for cargo check . lsp-rust-analyzer-closing-brace-hints # Type: boolean Default: t Whether to show inlay hints after a closing } to indicate what item it belongs to. lsp-rust-analyzer-closing-brace-hints-min-lines # Type: integer Default: 25 Minimum number of lines required before the } until the hint is shown (set to 0 or 1 to always show them). lsp-rust-analyzer-completion-add-call-argument-snippets # Type: boolean Default: t Whether to add argument snippets when completing functions. lsp-rust-analyzer-completion-add-call-parenthesis # Type: boolean Default: t Whether to add parenthesis when completing functions. lsp-rust-analyzer-completion-auto-import-enable # Type: boolean Default: t Toggles the additional completions that automatically add imports when completed. lsp-completion-enable-additional-text-edit must be non-nil for this feature to be fully enabled. lsp-rust-analyzer-completion-auto-self-enable # Type: boolean Default: t Toggles the additional completions that automatically show method calls and field accesses with self prefixed to them when inside a method. lsp-rust-analyzer-completion-postfix-enable # Type: boolean Default: t Whether to show postfix snippets like dbg , if , not , etc. lsp-rust-analyzer-debug-lens-extra-dap-args # Type: plist Default: (:MIMode gdb :miDebuggerPath gdb :stopAtEntry t :externalConsole :json-false) Extra arguments to pass to DAP template when debugging a test from code lens. As a rule of the thumb, do not add extra keys to this plist unless you exactly what you are doing, it might break the \"Debug test\" lens otherwise. See dap-mode documentation and cpptools documentation for the extra variables meaning. lsp-rust-analyzer-diagnostics-disabled # Type: lsp-string-vector Default: [] List of native rust-analyzer diagnostics to disable. lsp-rust-analyzer-diagnostics-enable # Type: boolean Default: t Whether to show native rust-analyzer diagnostics. lsp-rust-analyzer-diagnostics-enable-experimental # Type: boolean Default: nil Whether to show native rust-analyzer diagnostics that are still experimental (might have more false positives than usual). lsp-rust-analyzer-diagnostics-warnings-as-hint # Type: lsp-string-vector Default: [] List of warnings that should be displayed with hint severity. lsp-rust-analyzer-diagnostics-warnings-as-info # Type: lsp-string-vector Default: [] List of warnings that should be displayed with info severity. lsp-rust-analyzer-display-chaining-hints # Type: boolean Default: nil Whether to show inlay type hints for method chains. These hints will be formatted with the type hint formatting options, if the mode is not configured to ask the server to format them. lsp-rust-analyzer-display-closure-return-type-hints # Type: boolean Default: nil Whether to show closure return type inlay hints for closures with block bodies. lsp-rust-analyzer-display-lifetime-elision-hints-enable # Type: (choice (const never) (const always) (const skip_trivial)) Default: never Whether to show elided lifetime inlay hints. lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names # Type: boolean Default: nil When showing elided lifetime inlay hints, whether to use parameter names or numeric placeholder names for the lifetimes. lsp-rust-analyzer-display-parameter-hints # Type: boolean Default: nil Whether to show function parameter name inlay hints at the call site. lsp-rust-analyzer-display-reborrow-hints # Type: (choice (const always) (const never) (const mutable)) Default: never Whether to show inlay type hints for compiler inserted reborrows. lsp-rust-analyzer-download-url # Type: string Default: https://github.com/rust-analyzer/rust-analyzer/releases/latest/download/rust-analyzer-x86_64-unknown-linux-gnu.gz Automatic download url for Rust Analyzer lsp-rust-analyzer-exclude-dirs # Type: lsp-string-vector Default: [] These directories will be ignored by rust-analyzer. lsp-rust-analyzer-exclude-globs # Type: lsp-string-vector Default: [] Exclude globs lsp-rust-analyzer-experimental-proc-attr-macros # Type: boolean Default: t Whether to enable experimental support for expanding proc macro attributes. lsp-rust-analyzer-hide-closure-initialization # Type: boolean Default: nil Whether to hide inlay type hints for let statements that initialize to a closure. Only applies to closures with blocks, same as #rust-analyzer.inlayHints.closureReturnTypeHints.enable# . lsp-rust-analyzer-hide-named-constructor # Type: boolean Default: nil Whether to hide inlay type hints for constructors. lsp-rust-analyzer-highlighting-strings # Type: boolean Default: t Use semantic tokens for strings. lsp-rust-analyzer-import-enforce-granularity # Type: boolean Default: nil Whether to enforce the import granularity setting for all files. If set to nil rust-analyzer will try to keep import styles consistent per file. lsp-rust-analyzer-import-granularity # Type: (choice (const crate :doc Merge imports from the same crate into a single use statement. This kind of nesting is only supported in Rust versions later than 1.24.) (const module :doc Merge imports from the same module into a single use statement.) (const item :doc Don\u2019t merge imports at all, creating one import per item.) (const preserve :doc Do not change the granularity of any imports. For auto-import this has the same effect as \"item\"'))` Default: crate How imports should be grouped into use statements. lsp-rust-analyzer-import-group # Type: boolean Default: t Group inserted imports by the following order: https://rust-analyzer.github.io/manual.html#auto-import. Groups are separated by newlines. lsp-rust-analyzer-import-prefix # Type: (choice (const plain) (const by_self) (const by_crate)) Default: plain The path structure for newly inserted paths to use. Valid values are: - \"plain\": Insert import paths relative to the current module, using up to one super prefix if the parent module contains the requested item. - \"by_self\": Prefix all import paths with self if they don t begin with self , super , crate or a crate name. - \"by_crate\": Force import paths to be absolute by always starting them with crate` or the crate name they refer to. lsp-rust-analyzer-imports-merge-glob # Type: boolean Default: t Whether to allow import insertion to merge new imports into single path glob imports like use std::fmt::*; . lsp-rust-analyzer-library-directories # Type: (repeat string) Default: (~/.cargo/registry/src ~/.rustup/toolchains) List of directories which will be considered to be libraries. lsp-rust-analyzer-linked-projects # Type: lsp-string-vector Default: [] Disable project auto-discovery in favor of explicitly specified set of projects. Elements must be paths pointing to Cargo.toml , rust-project.json , or JSON objects in rust-project.json format. lsp-rust-analyzer-lru-capacity # Type: integer Default: nil Number of syntax trees rust-analyzer keeps in memory. lsp-rust-analyzer-macro-expansion-method # Type: function Default: lsp-rust-analyzer-macro-expansion-default Use a different function if you want formatted macro expansion results and syntax highlighting. lsp-rust-analyzer-max-inlay-hint-length # Type: integer Default: nil Max inlay hint length. lsp-rust-analyzer-proc-macro-enable # Type: boolean Default: t Enable Proc macro support. Implies lsp-rust-analyzer-cargo-run-build-scripts lsp-rust-analyzer-rustc-source # Type: (choice (file :tag Path) (const :tag None nil)) Default: nil Path to the Cargo.toml of the rust compiler workspace. lsp-rust-analyzer-rustfmt-extra-args # Type: lsp-string-vector Default: [] Additional arguments to rustfmt. lsp-rust-analyzer-rustfmt-override-command # Type: lsp-string-vector Default: [] Advanced option, fully override the command rust-analyzer uses for formatting. lsp-rust-analyzer-rustfmt-rangeformatting-enable # Type: boolean Default: nil Enables the use of rustfmt s unstable range formatting command for the textDocument/rangeFormatting` request. The rustfmt option is unstable and only available on a nightly build. lsp-rust-analyzer-server-command # Type: (repeat string) Default: (rust-analyzer) Command to start rust-analyzer. lsp-rust-analyzer-server-format-inlay-hints # Type: boolean Default: t Whether to ask rust-analyzer to format inlay hints itself. If active, the various inlay format settings are not used. lsp-rust-analyzer-store-path # Type: file Default: ~/.emacs.d/.cache/lsp/rust/rust-analyzer The path to the file in which rust-analyzer will be stored. lsp-rust-analyzer-use-client-watching # Type: boolean Default: t Use client watching lsp-rust-analyzer-use-rustc-wrapper-for-build-scripts # Type: boolean Default: t Use RUSTC_WRAPPER=rust-analyzer when running build scripts to avoid compiling unnecessary things.","title":"Rust (rust-analyzer)"},{"location":"page/lsp-rust-analyzer/#rust","text":"","title":"Rust"},{"location":"page/lsp-rust-analyzer/#server","text":"For more information about the LSP server, check rust-analyzer .","title":"Server"},{"location":"page/lsp-rust-analyzer/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-rust-analyzer/#debugger-not-available","text":"author: yyoncho template: comment.html root_file: docs/manual-language-docs/lsp-rust-analyzer.md","title":"Debugger: Not available"},{"location":"page/lsp-rust-analyzer/#server-note","text":"NOTE: If you are using rustic-mode , you have to change rustic-lsp-server instead of lsp-rust-server , since it also supports eglot as a lightweight alternative to lsp-mode. lsp-rust-server Choose LSP server (default is rust-analyzer) lsp-rust-switch-server Switch priorities of lsp servers","title":"Server note"},{"location":"page/lsp-rust-analyzer/#rust-analyzer","text":"","title":"rust-analyzer"},{"location":"page/lsp-rust-analyzer/#commands","text":"","title":"Commands"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-syntax-tree","text":"Display syntax tree for current buffer","title":"lsp-rust-analyzer-syntax-tree"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-status","text":"Display status information for rust-analyzer","title":"lsp-rust-analyzer-status"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-join-lines","text":"Join selected lines into one, smartly fixing up whitespace and trailing commas before: after:","title":"lsp-rust-analyzer-join-lines"},{"location":"page/lsp-rust-analyzer/#inlay-hints","text":"lsp-inlay-hints-mode enables displaying of inlay hints Additionally, lsp-inlay-hint-enable must be set to t in order for inlay hints to render. NOTE: the inlay hints interact badly with the lsp-ui sideline, because it doesn't seem to consider the overlays in its width calculation, which often leads to lines wrapping around.","title":"inlay-hints"},{"location":"page/lsp-rust-analyzer/#macro-expansion","text":"lsp-rust-analyzer-expand-macro expand macro call at point recursively Use your own function for displaying macro expansion by customizing lsp-rust-analyzer-macro-expansion-method Formatted and highlighted result with the default function of rustic.","title":"Macro expansion"},{"location":"page/lsp-rust-analyzer/#auto-import","text":"Get a list of possible auto import candidates with lsp-execute-code-action","title":"auto-import"},{"location":"page/lsp-rust-analyzer/#snippet-insertionrefactor","text":"To support refactorings that require snippet insertion(eg. generating derive clause etc), make sure that you have enabled yasnippet and yas-minor-mode . If you are using use-package , you can do something like this: ( use-package yasnippet :ensure t :hook (( lsp-mode . yas-minor-mode )))","title":"Snippet insertion/refactor"},{"location":"page/lsp-rust-analyzer/#open-cargotoml","text":"lsp-rust-analyzer-open-cargo-toml opens the Cargo.toml closest to the current file. Calling it with a universal argument will open the Cargo.toml in another window. Corresponds to the rust-analyzer LSP extension","title":"Open Cargo.toml"},{"location":"page/lsp-rust-analyzer/#open-external-documentation","text":"lsp-rust-analyzer-open-external-docs opens external documentation related to the current position in a browser. Corresponds to the rust-analyzer LSP extension","title":"Open external documentation"},{"location":"page/lsp-rust-analyzer/#find-and-execute-tests-related-to-current-position","text":"lsp-rust-analyzer-related-tests find all tests related to the current position, asks for user completion and executes the selected test in a compilation buffer. Corresponds to the rust-analyzer LSP extension In the example below, first you see that: + On the left, the function check_infer is defined, on the right another file is opened with many test functions, some of which call check_infer . With the cursor on check_infer , call lsp-rust-analyzer-related-tests and select infer_pattern_match_slice with fuzzy matching. The test is executed on the right with compilation major mode Move the cursor to fn ellipsize and attempt to find related tests to no avail. Confirm that the function is indeed untested by using swiper and finding one place in the file, where the function is called","title":"Find and execute tests related to current position"},{"location":"page/lsp-rust-analyzer/#caveats","text":"Rust Analyzer does not support disabling snippets - https://github.com/rust-analyzer/rust-analyzer/issues/2518","title":"Caveats"},{"location":"page/lsp-rust-analyzer/#extract-signature","text":"This unmerged PR contains an example method that allows modifying the signature that is displayed by eldoc.","title":"extract signature"},{"location":"page/lsp-rust-analyzer/#tramp-example","text":"The following is an example configuration for using lsp-mode with a remote rust-analyzer server: (with-eval-after-load \"lsp-rust\" (lsp-register-client (make-lsp-client :new-connection (lsp-tramp-connection \"rust-analyzer\") :remote? t :major-modes '(rust-mode rustic-mode) :initialization-options 'lsp-rust-analyzer--make-init-options :notification-handlers (ht<-alist lsp-rust-notification-handlers) :action-handlers (ht (\"rust-analyzer.runSingle\" #'lsp-rust--analyzer-run-single)) :library-folders-fn (lambda (_workspace) lsp-rust-analyzer-library-directories) :ignore-messages nil :server-id 'rust-analyzer-remote)))","title":"TRAMP Example"},{"location":"page/lsp-rust-analyzer/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-rust-analyzer/#lsp-rust-server","text":"Type: (choice (const :tag rls rls) (const :tag rust-analyzer rust-analyzer)) Default: rust-analyzer Choose LSP server.","title":"lsp-rust-server"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-binding-mode-hints","text":"Type: boolean Default: nil Whether to show inlay type hints for binding modes.","title":"lsp-rust-analyzer-binding-mode-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-call-info-full","text":"Type: boolean Default: t Whether to show function name and docs in parameter hints.","title":"lsp-rust-analyzer-call-info-full"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-auto-reload","text":"Type: boolean Default: t Automatically refresh project info via cargo metadata on Cargo.toml changes.","title":"lsp-rust-analyzer-cargo-auto-reload"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-override-command","text":"Type: lsp-string-vector Default: [] Advanced option, fully override the command rust-analyzer uses for checking. The command should include --message=format=json or similar option.","title":"lsp-rust-analyzer-cargo-override-command"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-run-build-scripts","text":"Type: boolean Default: t Whether to run build scripts ( build.rs ) for more precise code analysis.","title":"lsp-rust-analyzer-cargo-run-build-scripts"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-target","text":"Type: (choice (string :tag Target) (const :tag None nil)) Default: nil Compilation target (target triple).","title":"lsp-rust-analyzer-cargo-target"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-unset-test","text":"Type: lsp-string-vector Default: [] force rust-analyzer to unset #[cfg(test)] for the specified crates.","title":"lsp-rust-analyzer-cargo-unset-test"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-watch-args","text":"Type: lsp-string-vector Default: [] Extra arguments for cargo check .","title":"lsp-rust-analyzer-cargo-watch-args"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-watch-command","text":"Type: string Default: check Cargo watch command.","title":"lsp-rust-analyzer-cargo-watch-command"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-watch-enable","text":"Type: boolean Default: t Enable Cargo watch.","title":"lsp-rust-analyzer-cargo-watch-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-check-all-targets","text":"Type: boolean Default: t Enables --all-targets for cargo check .","title":"lsp-rust-analyzer-check-all-targets"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-closing-brace-hints","text":"Type: boolean Default: t Whether to show inlay hints after a closing } to indicate what item it belongs to.","title":"lsp-rust-analyzer-closing-brace-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-closing-brace-hints-min-lines","text":"Type: integer Default: 25 Minimum number of lines required before the } until the hint is shown (set to 0 or 1 to always show them).","title":"lsp-rust-analyzer-closing-brace-hints-min-lines"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-completion-add-call-argument-snippets","text":"Type: boolean Default: t Whether to add argument snippets when completing functions.","title":"lsp-rust-analyzer-completion-add-call-argument-snippets"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-completion-add-call-parenthesis","text":"Type: boolean Default: t Whether to add parenthesis when completing functions.","title":"lsp-rust-analyzer-completion-add-call-parenthesis"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-completion-auto-import-enable","text":"Type: boolean Default: t Toggles the additional completions that automatically add imports when completed. lsp-completion-enable-additional-text-edit must be non-nil for this feature to be fully enabled.","title":"lsp-rust-analyzer-completion-auto-import-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-completion-auto-self-enable","text":"Type: boolean Default: t Toggles the additional completions that automatically show method calls and field accesses with self prefixed to them when inside a method.","title":"lsp-rust-analyzer-completion-auto-self-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-completion-postfix-enable","text":"Type: boolean Default: t Whether to show postfix snippets like dbg , if , not , etc.","title":"lsp-rust-analyzer-completion-postfix-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-debug-lens-extra-dap-args","text":"Type: plist Default: (:MIMode gdb :miDebuggerPath gdb :stopAtEntry t :externalConsole :json-false) Extra arguments to pass to DAP template when debugging a test from code lens. As a rule of the thumb, do not add extra keys to this plist unless you exactly what you are doing, it might break the \"Debug test\" lens otherwise. See dap-mode documentation and cpptools documentation for the extra variables meaning.","title":"lsp-rust-analyzer-debug-lens-extra-dap-args"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-diagnostics-disabled","text":"Type: lsp-string-vector Default: [] List of native rust-analyzer diagnostics to disable.","title":"lsp-rust-analyzer-diagnostics-disabled"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-diagnostics-enable","text":"Type: boolean Default: t Whether to show native rust-analyzer diagnostics.","title":"lsp-rust-analyzer-diagnostics-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-diagnostics-enable-experimental","text":"Type: boolean Default: nil Whether to show native rust-analyzer diagnostics that are still experimental (might have more false positives than usual).","title":"lsp-rust-analyzer-diagnostics-enable-experimental"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-diagnostics-warnings-as-hint","text":"Type: lsp-string-vector Default: [] List of warnings that should be displayed with hint severity.","title":"lsp-rust-analyzer-diagnostics-warnings-as-hint"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-diagnostics-warnings-as-info","text":"Type: lsp-string-vector Default: [] List of warnings that should be displayed with info severity.","title":"lsp-rust-analyzer-diagnostics-warnings-as-info"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-display-chaining-hints","text":"Type: boolean Default: nil Whether to show inlay type hints for method chains. These hints will be formatted with the type hint formatting options, if the mode is not configured to ask the server to format them.","title":"lsp-rust-analyzer-display-chaining-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-display-closure-return-type-hints","text":"Type: boolean Default: nil Whether to show closure return type inlay hints for closures with block bodies.","title":"lsp-rust-analyzer-display-closure-return-type-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-display-lifetime-elision-hints-enable","text":"Type: (choice (const never) (const always) (const skip_trivial)) Default: never Whether to show elided lifetime inlay hints.","title":"lsp-rust-analyzer-display-lifetime-elision-hints-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names","text":"Type: boolean Default: nil When showing elided lifetime inlay hints, whether to use parameter names or numeric placeholder names for the lifetimes.","title":"lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-display-parameter-hints","text":"Type: boolean Default: nil Whether to show function parameter name inlay hints at the call site.","title":"lsp-rust-analyzer-display-parameter-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-display-reborrow-hints","text":"Type: (choice (const always) (const never) (const mutable)) Default: never Whether to show inlay type hints for compiler inserted reborrows.","title":"lsp-rust-analyzer-display-reborrow-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-download-url","text":"Type: string Default: https://github.com/rust-analyzer/rust-analyzer/releases/latest/download/rust-analyzer-x86_64-unknown-linux-gnu.gz Automatic download url for Rust Analyzer","title":"lsp-rust-analyzer-download-url"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-exclude-dirs","text":"Type: lsp-string-vector Default: [] These directories will be ignored by rust-analyzer.","title":"lsp-rust-analyzer-exclude-dirs"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-exclude-globs","text":"Type: lsp-string-vector Default: [] Exclude globs","title":"lsp-rust-analyzer-exclude-globs"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-experimental-proc-attr-macros","text":"Type: boolean Default: t Whether to enable experimental support for expanding proc macro attributes.","title":"lsp-rust-analyzer-experimental-proc-attr-macros"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-hide-closure-initialization","text":"Type: boolean Default: nil Whether to hide inlay type hints for let statements that initialize to a closure. Only applies to closures with blocks, same as #rust-analyzer.inlayHints.closureReturnTypeHints.enable# .","title":"lsp-rust-analyzer-hide-closure-initialization"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-hide-named-constructor","text":"Type: boolean Default: nil Whether to hide inlay type hints for constructors.","title":"lsp-rust-analyzer-hide-named-constructor"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-highlighting-strings","text":"Type: boolean Default: t Use semantic tokens for strings.","title":"lsp-rust-analyzer-highlighting-strings"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-import-enforce-granularity","text":"Type: boolean Default: nil Whether to enforce the import granularity setting for all files. If set to nil rust-analyzer will try to keep import styles consistent per file.","title":"lsp-rust-analyzer-import-enforce-granularity"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-import-granularity","text":"Type: (choice (const crate :doc Merge imports from the same crate into a single use statement. This kind of nesting is only supported in Rust versions later than 1.24.) (const module :doc Merge imports from the same module into a single use statement.) (const item :doc Don\u2019t merge imports at all, creating one import per item.) (const preserve :doc Do not change the granularity of any imports. For auto-import this has the same effect as \"item\"'))` Default: crate How imports should be grouped into use statements.","title":"lsp-rust-analyzer-import-granularity"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-import-group","text":"Type: boolean Default: t Group inserted imports by the following order: https://rust-analyzer.github.io/manual.html#auto-import. Groups are separated by newlines.","title":"lsp-rust-analyzer-import-group"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-import-prefix","text":"Type: (choice (const plain) (const by_self) (const by_crate)) Default: plain The path structure for newly inserted paths to use. Valid values are: - \"plain\": Insert import paths relative to the current module, using up to one super prefix if the parent module contains the requested item. - \"by_self\": Prefix all import paths with self if they don t begin with self , super , crate or a crate name. - \"by_crate\": Force import paths to be absolute by always starting them with crate` or the crate name they refer to.","title":"lsp-rust-analyzer-import-prefix"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-imports-merge-glob","text":"Type: boolean Default: t Whether to allow import insertion to merge new imports into single path glob imports like use std::fmt::*; .","title":"lsp-rust-analyzer-imports-merge-glob"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-library-directories","text":"Type: (repeat string) Default: (~/.cargo/registry/src ~/.rustup/toolchains) List of directories which will be considered to be libraries.","title":"lsp-rust-analyzer-library-directories"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-linked-projects","text":"Type: lsp-string-vector Default: [] Disable project auto-discovery in favor of explicitly specified set of projects. Elements must be paths pointing to Cargo.toml , rust-project.json , or JSON objects in rust-project.json format.","title":"lsp-rust-analyzer-linked-projects"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-lru-capacity","text":"Type: integer Default: nil Number of syntax trees rust-analyzer keeps in memory.","title":"lsp-rust-analyzer-lru-capacity"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-macro-expansion-method","text":"Type: function Default: lsp-rust-analyzer-macro-expansion-default Use a different function if you want formatted macro expansion results and syntax highlighting.","title":"lsp-rust-analyzer-macro-expansion-method"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-max-inlay-hint-length","text":"Type: integer Default: nil Max inlay hint length.","title":"lsp-rust-analyzer-max-inlay-hint-length"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-proc-macro-enable","text":"Type: boolean Default: t Enable Proc macro support. Implies lsp-rust-analyzer-cargo-run-build-scripts","title":"lsp-rust-analyzer-proc-macro-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-rustc-source","text":"Type: (choice (file :tag Path) (const :tag None nil)) Default: nil Path to the Cargo.toml of the rust compiler workspace.","title":"lsp-rust-analyzer-rustc-source"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-rustfmt-extra-args","text":"Type: lsp-string-vector Default: [] Additional arguments to rustfmt.","title":"lsp-rust-analyzer-rustfmt-extra-args"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-rustfmt-override-command","text":"Type: lsp-string-vector Default: [] Advanced option, fully override the command rust-analyzer uses for formatting.","title":"lsp-rust-analyzer-rustfmt-override-command"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-rustfmt-rangeformatting-enable","text":"Type: boolean Default: nil Enables the use of rustfmt s unstable range formatting command for the textDocument/rangeFormatting` request. The rustfmt option is unstable and only available on a nightly build.","title":"lsp-rust-analyzer-rustfmt-rangeformatting-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-server-command","text":"Type: (repeat string) Default: (rust-analyzer) Command to start rust-analyzer.","title":"lsp-rust-analyzer-server-command"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-server-format-inlay-hints","text":"Type: boolean Default: t Whether to ask rust-analyzer to format inlay hints itself. If active, the various inlay format settings are not used.","title":"lsp-rust-analyzer-server-format-inlay-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-store-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/rust/rust-analyzer The path to the file in which rust-analyzer will be stored.","title":"lsp-rust-analyzer-store-path"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-use-client-watching","text":"Type: boolean Default: t Use client watching","title":"lsp-rust-analyzer-use-client-watching"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-use-rustc-wrapper-for-build-scripts","text":"Type: boolean Default: t Use RUSTC_WRAPPER=rust-analyzer when running build scripts to avoid compiling unnecessary things.","title":"lsp-rust-analyzer-use-rustc-wrapper-for-build-scripts"},{"location":"page/lsp-rust-rls/","text":"Rust # Server # For more information about the LSP server, check rls . Installation # For more instructions on how to install manually, check here . Debugger: Yes # root_file: docs/manual-language-docs/lsp-rust-rls.md # RLS # Customization # This is an incomplete list of the available options lsp-rust-rls-server-command change command to start RLS lsp-rust-show-hover-context turn off hover tooltips rustfmt # Code formatting with rustfmt can be configured with: lsp-rust-rustfmt-path change default path for rustfmt executable To enable automatic code format on save, add this to your init.el ( rust-mode is assumed to be installed): (add-hook 'before-save-hook (lambda () (when (eq 'rust-mode major-mode) (lsp-format-buffer)))) Available configurations # lsp-rust-server # Type: (choice (const :tag rls rls) (const :tag rust-analyzer rust-analyzer)) Default: rust-analyzer Choose LSP server. lsp-rust-all-features # Type: boolean Default: nil Enable all Cargo features. lsp-rust-all-targets # Type: boolean Default: t Checks the project as if you were running cargo check --all-targets. I.e., check all targets and integration tests too. lsp-rust-build-bin # Type: (choice (const :tag None nil) (string :tag Binary)) Default: nil If non-nil, checks the project as if you passed -- bin argument to cargo. Mutually exclusive with lsp-rust-build-lib . (Unstable) lsp-rust-build-command # Type: (choice (const :tag None nil) (string :tag Command)) Default: nil EXPERIMENTAL (requires rust.unstable_features ) If set, executes a given program responsible for rebuilding save-analysis to be loaded by the RLS. The program given should output a list of resulting .json files on stdout. Implies rust.build_on_save : true. lsp-rust-build-lib # Type: boolean Default: nil If non-nil, checks the project as if you passed the --lib argument to cargo. Mutually exclusive with, and preferred over, lsp-rust-build-bin . (Unstable) lsp-rust-build-on-save # Type: boolean Default: nil Only index the project when a file is saved and not on change. lsp-rust-cfg-test # Type: boolean Default: nil If non-nil, checks the project as if you were running cargo test rather than cargo build. I.e., compiles (but does not run) test code. lsp-rust-clear-env-rust-log # Type: boolean Default: t Clear the RUST_LOG environment variable before running rustc or cargo. lsp-rust-clippy-preference # Type: (choice (const on) (const opt-in) (const off)) Default: opt-in Controls eagerness of clippy diagnostics when available. Valid values are (case-insensitive): - \"off\": Disable clippy lints. - \"opt-in\": Clippy lints are shown when crates specify #![warn(clippy)] . - \"on\": Clippy lints enabled for all crates in workspace. You need to install clippy via rustup if you haven`t already. lsp-rust-crate-blacklist # Type: lsp-string-vector Default: [cocoa gleam glium idna libc openssl rustc_serialize serde serde_json typenum unicode_normalization unicode_segmentation winapi] A list of Cargo crates to blacklist. lsp-rust-features # Type: lsp-string-vector Default: [] List of features to activate. Set this to \"all\" to pass --all-features to cargo. lsp-rust-full-docs # Type: boolean Default: nil Instructs cargo to enable full documentation extraction during save-analysis while building the crate. lsp-rust-jobs # Type: (choice (const :tag Auto nil) (number :tag Jobs)) Default: nil Number of Cargo jobs to be run in parallel. lsp-rust-library-directories # Type: (repeat string) Default: (~/.cargo/registry/src ~/.rustup/toolchains) List of directories which will be considered to be libraries. lsp-rust-no-default-features # Type: boolean Default: nil Do not enable default Cargo features. lsp-rust-racer-completion # Type: boolean Default: t Enables code completion using racer. lsp-rust-rls-server-command # Type: (repeat string) Default: (rls) Command to start RLS. lsp-rust-rustflags # Type: (choice (const :tag None nil) (string :tag Flags)) Default: nil Flags added to RUSTFLAGS. lsp-rust-rustfmt-path # Type: (choice (const :tag Bundled nil) (string :tag Path)) Default: nil When specified, RLS will use the Rustfmt pointed at the path instead of the bundled one lsp-rust-show-hover-context # Type: boolean Default: t Show additional context in hover tooltips when available. This is often the type local variable declaration. lsp-rust-show-warnings # Type: boolean Default: t Show warnings. lsp-rust-sysroot # Type: (choice (const :tag None nil) (string :tag Sysroot)) Default: nil If non-nil, use the given path as the sysroot for all rustc invocations instead of trying to detect the sysroot automatically. lsp-rust-target # Type: (choice (const :tag None nil) (string :tag Target)) Default: nil If non-nil, use the given target triple for all rustc invocations. lsp-rust-target-dir # Type: (choice (const :tag Default nil) (string :tag Directory)) Default: nil When specified, it places the generated analysis files at the specified target directory. By default it is placed target/rls directory. lsp-rust-unstable-features # Type: boolean Default: nil Enable unstable features. lsp-rust-wait-to-build # Type: (choice (const :tag Auto nil) (number :tag Time)) Default: nil Time in milliseconds between receiving a change notification and starting build. If not specified, automatically inferred by the latest build duration.","title":"Rust (rls)"},{"location":"page/lsp-rust-rls/#rust","text":"","title":"Rust"},{"location":"page/lsp-rust-rls/#server","text":"For more information about the LSP server, check rls .","title":"Server"},{"location":"page/lsp-rust-rls/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-rust-rls/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-rust-rls/#root_file-docsmanual-language-docslsp-rust-rlsmd","text":"","title":"root_file: docs/manual-language-docs/lsp-rust-rls.md"},{"location":"page/lsp-rust-rls/#rls","text":"","title":"RLS"},{"location":"page/lsp-rust-rls/#customization","text":"This is an incomplete list of the available options lsp-rust-rls-server-command change command to start RLS lsp-rust-show-hover-context turn off hover tooltips","title":"Customization"},{"location":"page/lsp-rust-rls/#rustfmt","text":"Code formatting with rustfmt can be configured with: lsp-rust-rustfmt-path change default path for rustfmt executable To enable automatic code format on save, add this to your init.el ( rust-mode is assumed to be installed): (add-hook 'before-save-hook (lambda () (when (eq 'rust-mode major-mode) (lsp-format-buffer))))","title":"rustfmt"},{"location":"page/lsp-rust-rls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-rust-rls/#lsp-rust-server","text":"Type: (choice (const :tag rls rls) (const :tag rust-analyzer rust-analyzer)) Default: rust-analyzer Choose LSP server.","title":"lsp-rust-server"},{"location":"page/lsp-rust-rls/#lsp-rust-all-features","text":"Type: boolean Default: nil Enable all Cargo features.","title":"lsp-rust-all-features"},{"location":"page/lsp-rust-rls/#lsp-rust-all-targets","text":"Type: boolean Default: t Checks the project as if you were running cargo check --all-targets. I.e., check all targets and integration tests too.","title":"lsp-rust-all-targets"},{"location":"page/lsp-rust-rls/#lsp-rust-build-bin","text":"Type: (choice (const :tag None nil) (string :tag Binary)) Default: nil If non-nil, checks the project as if you passed -- bin argument to cargo. Mutually exclusive with lsp-rust-build-lib . (Unstable)","title":"lsp-rust-build-bin"},{"location":"page/lsp-rust-rls/#lsp-rust-build-command","text":"Type: (choice (const :tag None nil) (string :tag Command)) Default: nil EXPERIMENTAL (requires rust.unstable_features ) If set, executes a given program responsible for rebuilding save-analysis to be loaded by the RLS. The program given should output a list of resulting .json files on stdout. Implies rust.build_on_save : true.","title":"lsp-rust-build-command"},{"location":"page/lsp-rust-rls/#lsp-rust-build-lib","text":"Type: boolean Default: nil If non-nil, checks the project as if you passed the --lib argument to cargo. Mutually exclusive with, and preferred over, lsp-rust-build-bin . (Unstable)","title":"lsp-rust-build-lib"},{"location":"page/lsp-rust-rls/#lsp-rust-build-on-save","text":"Type: boolean Default: nil Only index the project when a file is saved and not on change.","title":"lsp-rust-build-on-save"},{"location":"page/lsp-rust-rls/#lsp-rust-cfg-test","text":"Type: boolean Default: nil If non-nil, checks the project as if you were running cargo test rather than cargo build. I.e., compiles (but does not run) test code.","title":"lsp-rust-cfg-test"},{"location":"page/lsp-rust-rls/#lsp-rust-clear-env-rust-log","text":"Type: boolean Default: t Clear the RUST_LOG environment variable before running rustc or cargo.","title":"lsp-rust-clear-env-rust-log"},{"location":"page/lsp-rust-rls/#lsp-rust-clippy-preference","text":"Type: (choice (const on) (const opt-in) (const off)) Default: opt-in Controls eagerness of clippy diagnostics when available. Valid values are (case-insensitive): - \"off\": Disable clippy lints. - \"opt-in\": Clippy lints are shown when crates specify #![warn(clippy)] . - \"on\": Clippy lints enabled for all crates in workspace. You need to install clippy via rustup if you haven`t already.","title":"lsp-rust-clippy-preference"},{"location":"page/lsp-rust-rls/#lsp-rust-crate-blacklist","text":"Type: lsp-string-vector Default: [cocoa gleam glium idna libc openssl rustc_serialize serde serde_json typenum unicode_normalization unicode_segmentation winapi] A list of Cargo crates to blacklist.","title":"lsp-rust-crate-blacklist"},{"location":"page/lsp-rust-rls/#lsp-rust-features","text":"Type: lsp-string-vector Default: [] List of features to activate. Set this to \"all\" to pass --all-features to cargo.","title":"lsp-rust-features"},{"location":"page/lsp-rust-rls/#lsp-rust-full-docs","text":"Type: boolean Default: nil Instructs cargo to enable full documentation extraction during save-analysis while building the crate.","title":"lsp-rust-full-docs"},{"location":"page/lsp-rust-rls/#lsp-rust-jobs","text":"Type: (choice (const :tag Auto nil) (number :tag Jobs)) Default: nil Number of Cargo jobs to be run in parallel.","title":"lsp-rust-jobs"},{"location":"page/lsp-rust-rls/#lsp-rust-library-directories","text":"Type: (repeat string) Default: (~/.cargo/registry/src ~/.rustup/toolchains) List of directories which will be considered to be libraries.","title":"lsp-rust-library-directories"},{"location":"page/lsp-rust-rls/#lsp-rust-no-default-features","text":"Type: boolean Default: nil Do not enable default Cargo features.","title":"lsp-rust-no-default-features"},{"location":"page/lsp-rust-rls/#lsp-rust-racer-completion","text":"Type: boolean Default: t Enables code completion using racer.","title":"lsp-rust-racer-completion"},{"location":"page/lsp-rust-rls/#lsp-rust-rls-server-command","text":"Type: (repeat string) Default: (rls) Command to start RLS.","title":"lsp-rust-rls-server-command"},{"location":"page/lsp-rust-rls/#lsp-rust-rustflags","text":"Type: (choice (const :tag None nil) (string :tag Flags)) Default: nil Flags added to RUSTFLAGS.","title":"lsp-rust-rustflags"},{"location":"page/lsp-rust-rls/#lsp-rust-rustfmt-path","text":"Type: (choice (const :tag Bundled nil) (string :tag Path)) Default: nil When specified, RLS will use the Rustfmt pointed at the path instead of the bundled one","title":"lsp-rust-rustfmt-path"},{"location":"page/lsp-rust-rls/#lsp-rust-show-hover-context","text":"Type: boolean Default: t Show additional context in hover tooltips when available. This is often the type local variable declaration.","title":"lsp-rust-show-hover-context"},{"location":"page/lsp-rust-rls/#lsp-rust-show-warnings","text":"Type: boolean Default: t Show warnings.","title":"lsp-rust-show-warnings"},{"location":"page/lsp-rust-rls/#lsp-rust-sysroot","text":"Type: (choice (const :tag None nil) (string :tag Sysroot)) Default: nil If non-nil, use the given path as the sysroot for all rustc invocations instead of trying to detect the sysroot automatically.","title":"lsp-rust-sysroot"},{"location":"page/lsp-rust-rls/#lsp-rust-target","text":"Type: (choice (const :tag None nil) (string :tag Target)) Default: nil If non-nil, use the given target triple for all rustc invocations.","title":"lsp-rust-target"},{"location":"page/lsp-rust-rls/#lsp-rust-target-dir","text":"Type: (choice (const :tag Default nil) (string :tag Directory)) Default: nil When specified, it places the generated analysis files at the specified target directory. By default it is placed target/rls directory.","title":"lsp-rust-target-dir"},{"location":"page/lsp-rust-rls/#lsp-rust-unstable-features","text":"Type: boolean Default: nil Enable unstable features.","title":"lsp-rust-unstable-features"},{"location":"page/lsp-rust-rls/#lsp-rust-wait-to-build","text":"Type: (choice (const :tag Auto nil) (number :tag Time)) Default: nil Time in milliseconds between receiving a change notification and starting build. If not specified, automatically inferred by the latest build duration.","title":"lsp-rust-wait-to-build"},{"location":"page/lsp-semgrep/","text":"Semgrep # Server # For more information about the LSP server, check semgrep-ls . Installation # pip install semgrep --user Debugger: Not available # Available configurations # lsp-semgrep-languages # Type: (repeat string) Default: (apex bash sh c cairo clojure cpp c++ csharp c# dart dockerfile docker ex elixir go golang hack html java js javascript json jsonnet julia kt kotlin lisp lua ocaml php python2 python3 py python r regex none ruby rust scala scheme solidity sol swift tf hcl terraform ts typescript vue xml yaml) List of languages to enable Semgrep LS for. lsp-semgrep-server-command # Type: (repeat string) Default: (semgrep lsp) Semgrep LS server command. lsp-semgrep-trace-server # Type: (choice (const off) (const messages) (const verbose)) Default: off Trace Semgrep LS server","title":"Semgrep"},{"location":"page/lsp-semgrep/#semgrep","text":"","title":"Semgrep"},{"location":"page/lsp-semgrep/#server","text":"For more information about the LSP server, check semgrep-ls .","title":"Server"},{"location":"page/lsp-semgrep/#installation","text":"pip install semgrep --user","title":"Installation"},{"location":"page/lsp-semgrep/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-semgrep/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-semgrep/#lsp-semgrep-languages","text":"Type: (repeat string) Default: (apex bash sh c cairo clojure cpp c++ csharp c# dart dockerfile docker ex elixir go golang hack html java js javascript json jsonnet julia kt kotlin lisp lua ocaml php python2 python3 py python r regex none ruby rust scala scheme solidity sol swift tf hcl terraform ts typescript vue xml yaml) List of languages to enable Semgrep LS for.","title":"lsp-semgrep-languages"},{"location":"page/lsp-semgrep/#lsp-semgrep-server-command","text":"Type: (repeat string) Default: (semgrep lsp) Semgrep LS server command.","title":"lsp-semgrep-server-command"},{"location":"page/lsp-semgrep/#lsp-semgrep-trace-server","text":"Type: (choice (const off) (const messages) (const verbose)) Default: off Trace Semgrep LS server","title":"lsp-semgrep-trace-server"},{"location":"page/lsp-serenata/","text":"PHP (Serenata) # Server # For more information about the LSP server, check Serenata . Installation # For more instructions on how to install manually, check here . Debugger: Yes # Available configurations # lsp-clients-php-server-command # Type: (repeat string) Default: nil Install directory for php-language-server. lsp-php-composer-dir # Type: string Default: nil Home directory of composer. lsp-serenata-exclude-path-expressions # Type: lsp-string-vector Default: [/.+Test.php$/] One or more expressions of paths to ignore. This uses Symfony`s Finder in the background, so this means you can configure anything here that can also be passed to the name function, which includes plain strings, globs, as well as regular expressions. Note that for existing projects, modifying these will not not automatically prune them from the index if they are already present. lsp-serenata-file-extensions # Type: lsp-string-vector Default: [php] List of file extensions (without dot) to process. Files that do not match this whitelist will be ignored during indexing. Usually you`ll want to set this to at least include php, as it is the most common PHP extension. phpt is not included by default as it is often used to contain test code that is not directly part of the code. Note that for existing projects, removing extensions will not not automatically prune files having them from the index if they are already present. Adding new ones will cause the files having them to be picked up on the next project initialization. lsp-serenata-index-database-uri # Type: file Default: file:///home/runner/.emacs.d/index.sqlite The location to store the index database. Note that, as the index database uses SQLite and WAL mode, additional files (usually two) may be generated and used in the same folder. Note also that Serenata relies on the Doctrine DBAL library as well as the SQLite backends in PHP, which may not support non-file URI`s, which may prevent you from using these. lsp-serenata-php-version # Type: number Default: 7.3 Allows you to specify the PHP version your project is written in. At the moment this directive is still ignored, but it will influence functionality such as refactoring in the future, where older PHP versions may not support scalar type hints, which may then be omitted from places such as getters and setters. lsp-serenata-server-path # Type: file Default: serenata.phar Path to the Serenata Language Server phar file. It can be downloaded from https://gitlab.com/Serenata/Serenata/-/releases. lsp-serenata-uris # Type: lsp-string-vector Default: [] A list of folders to index for your project. This does not have to include the root of the project itself, in case you have need of an exotic configuration where the root of the project is at some location but your actual PHP code is somewhere else. Note that if you are running Serenata in a container, you will have to ensure that these URI`s are mapped inside it. Avoid using file paths containing spaces. This is currently broken due to apparent PHP quirks. By default, the value is taken from the lsp workspace location.","title":"PHP (Serenata)"},{"location":"page/lsp-serenata/#php-serenata","text":"","title":"PHP (Serenata)"},{"location":"page/lsp-serenata/#server","text":"For more information about the LSP server, check Serenata .","title":"Server"},{"location":"page/lsp-serenata/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-serenata/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-serenata/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-serenata/#lsp-clients-php-server-command","text":"Type: (repeat string) Default: nil Install directory for php-language-server.","title":"lsp-clients-php-server-command"},{"location":"page/lsp-serenata/#lsp-php-composer-dir","text":"Type: string Default: nil Home directory of composer.","title":"lsp-php-composer-dir"},{"location":"page/lsp-serenata/#lsp-serenata-exclude-path-expressions","text":"Type: lsp-string-vector Default: [/.+Test.php$/] One or more expressions of paths to ignore. This uses Symfony`s Finder in the background, so this means you can configure anything here that can also be passed to the name function, which includes plain strings, globs, as well as regular expressions. Note that for existing projects, modifying these will not not automatically prune them from the index if they are already present.","title":"lsp-serenata-exclude-path-expressions"},{"location":"page/lsp-serenata/#lsp-serenata-file-extensions","text":"Type: lsp-string-vector Default: [php] List of file extensions (without dot) to process. Files that do not match this whitelist will be ignored during indexing. Usually you`ll want to set this to at least include php, as it is the most common PHP extension. phpt is not included by default as it is often used to contain test code that is not directly part of the code. Note that for existing projects, removing extensions will not not automatically prune files having them from the index if they are already present. Adding new ones will cause the files having them to be picked up on the next project initialization.","title":"lsp-serenata-file-extensions"},{"location":"page/lsp-serenata/#lsp-serenata-index-database-uri","text":"Type: file Default: file:///home/runner/.emacs.d/index.sqlite The location to store the index database. Note that, as the index database uses SQLite and WAL mode, additional files (usually two) may be generated and used in the same folder. Note also that Serenata relies on the Doctrine DBAL library as well as the SQLite backends in PHP, which may not support non-file URI`s, which may prevent you from using these.","title":"lsp-serenata-index-database-uri"},{"location":"page/lsp-serenata/#lsp-serenata-php-version","text":"Type: number Default: 7.3 Allows you to specify the PHP version your project is written in. At the moment this directive is still ignored, but it will influence functionality such as refactoring in the future, where older PHP versions may not support scalar type hints, which may then be omitted from places such as getters and setters.","title":"lsp-serenata-php-version"},{"location":"page/lsp-serenata/#lsp-serenata-server-path","text":"Type: file Default: serenata.phar Path to the Serenata Language Server phar file. It can be downloaded from https://gitlab.com/Serenata/Serenata/-/releases.","title":"lsp-serenata-server-path"},{"location":"page/lsp-serenata/#lsp-serenata-uris","text":"Type: lsp-string-vector Default: [] A list of folders to index for your project. This does not have to include the root of the project itself, in case you have need of an exotic configuration where the root of the project is at some location but your actual PHP code is somewhere else. Note that if you are running Serenata in a container, you will have to ensure that these URI`s are mapped inside it. Avoid using file paths containing spaces. This is currently broken due to apparent PHP quirks. By default, the value is taken from the lsp workspace location.","title":"lsp-serenata-uris"},{"location":"page/lsp-shader/","text":"ShaderLab # Server # For more information about the LSP server, check shader-ls . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"ShaderLab"},{"location":"page/lsp-shader/#shaderlab","text":"","title":"ShaderLab"},{"location":"page/lsp-shader/#server","text":"For more information about the LSP server, check shader-ls .","title":"Server"},{"location":"page/lsp-shader/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-shader/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-shader/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-solargraph/","text":"Ruby (Solargraph) # Server # For more information about the LSP server, check solargraph . Installation # gem install solargraph Debugger: Yes # Available configurations # lsp-solargraph-autoformat # Type: boolean Default: nil Enable automatic formatting while typing (WARNING: experimental) lsp-solargraph-completion # Type: boolean Default: t Enable completion lsp-solargraph-definitions # Type: boolean Default: t Enable definitions (go to, etc.) lsp-solargraph-diagnostics # Type: boolean Default: t Enable diagnostics lsp-solargraph-folding # Type: boolean Default: t Enable folding ranges lsp-solargraph-formatting # Type: boolean Default: t Enable document formatting lsp-solargraph-hover # Type: boolean Default: t Enable hover lsp-solargraph-library-directories # Type: (repeat string) Default: (~/.rbenv/ /usr/lib/ruby/ ~/.rvm/ ~/.gem/) List of directories which will be considered to be libraries. lsp-solargraph-log-level # Type: (choice (const :tag warn info debug)) Default: warn Level of debug info to log. warn is least and debug is most. lsp-solargraph-multi-root # Type: boolean Default: t If non nil, solargraph will be started in multi-root mode. lsp-solargraph-references # Type: boolean Default: t Enable finding references lsp-solargraph-rename # Type: boolean Default: t Enable symbol renaming lsp-solargraph-server-command # Type: (repeat string) Default: (solargraph stdio) Command to start Solargraph Ruby language server. lsp-solargraph-symbols # Type: boolean Default: t Enable symbols lsp-solargraph-use-bundler # Type: boolean Default: nil Run solargraph under bundler","title":"Ruby (Solargraph)"},{"location":"page/lsp-solargraph/#ruby-solargraph","text":"","title":"Ruby (Solargraph)"},{"location":"page/lsp-solargraph/#server","text":"For more information about the LSP server, check solargraph .","title":"Server"},{"location":"page/lsp-solargraph/#installation","text":"gem install solargraph","title":"Installation"},{"location":"page/lsp-solargraph/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-solargraph/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-solargraph/#lsp-solargraph-autoformat","text":"Type: boolean Default: nil Enable automatic formatting while typing (WARNING: experimental)","title":"lsp-solargraph-autoformat"},{"location":"page/lsp-solargraph/#lsp-solargraph-completion","text":"Type: boolean Default: t Enable completion","title":"lsp-solargraph-completion"},{"location":"page/lsp-solargraph/#lsp-solargraph-definitions","text":"Type: boolean Default: t Enable definitions (go to, etc.)","title":"lsp-solargraph-definitions"},{"location":"page/lsp-solargraph/#lsp-solargraph-diagnostics","text":"Type: boolean Default: t Enable diagnostics","title":"lsp-solargraph-diagnostics"},{"location":"page/lsp-solargraph/#lsp-solargraph-folding","text":"Type: boolean Default: t Enable folding ranges","title":"lsp-solargraph-folding"},{"location":"page/lsp-solargraph/#lsp-solargraph-formatting","text":"Type: boolean Default: t Enable document formatting","title":"lsp-solargraph-formatting"},{"location":"page/lsp-solargraph/#lsp-solargraph-hover","text":"Type: boolean Default: t Enable hover","title":"lsp-solargraph-hover"},{"location":"page/lsp-solargraph/#lsp-solargraph-library-directories","text":"Type: (repeat string) Default: (~/.rbenv/ /usr/lib/ruby/ ~/.rvm/ ~/.gem/) List of directories which will be considered to be libraries.","title":"lsp-solargraph-library-directories"},{"location":"page/lsp-solargraph/#lsp-solargraph-log-level","text":"Type: (choice (const :tag warn info debug)) Default: warn Level of debug info to log. warn is least and debug is most.","title":"lsp-solargraph-log-level"},{"location":"page/lsp-solargraph/#lsp-solargraph-multi-root","text":"Type: boolean Default: t If non nil, solargraph will be started in multi-root mode.","title":"lsp-solargraph-multi-root"},{"location":"page/lsp-solargraph/#lsp-solargraph-references","text":"Type: boolean Default: t Enable finding references","title":"lsp-solargraph-references"},{"location":"page/lsp-solargraph/#lsp-solargraph-rename","text":"Type: boolean Default: t Enable symbol renaming","title":"lsp-solargraph-rename"},{"location":"page/lsp-solargraph/#lsp-solargraph-server-command","text":"Type: (repeat string) Default: (solargraph stdio) Command to start Solargraph Ruby language server.","title":"lsp-solargraph-server-command"},{"location":"page/lsp-solargraph/#lsp-solargraph-symbols","text":"Type: boolean Default: t Enable symbols","title":"lsp-solargraph-symbols"},{"location":"page/lsp-solargraph/#lsp-solargraph-use-bundler","text":"Type: boolean Default: nil Run solargraph under bundler","title":"lsp-solargraph-use-bundler"},{"location":"page/lsp-sorbet/","text":"Ruby (Sorbet) # Server # For more information about the LSP server, check sorbet . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-sorbet-as-add-on # Type: boolean Default: nil Run sorbet LSP server alongside other LSP server(s) lsp-sorbet-use-bundler # Type: boolean Default: nil Run sorbet under bundler","title":"Ruby (Sorbet)"},{"location":"page/lsp-sorbet/#ruby-sorbet","text":"","title":"Ruby (Sorbet)"},{"location":"page/lsp-sorbet/#server","text":"For more information about the LSP server, check sorbet .","title":"Server"},{"location":"page/lsp-sorbet/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-sorbet/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-sorbet/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-sorbet/#lsp-sorbet-as-add-on","text":"Type: boolean Default: nil Run sorbet LSP server alongside other LSP server(s)","title":"lsp-sorbet-as-add-on"},{"location":"page/lsp-sorbet/#lsp-sorbet-use-bundler","text":"Type: boolean Default: nil Run sorbet under bundler","title":"lsp-sorbet-use-bundler"},{"location":"page/lsp-sqls/","text":"SQL (sqls) # Server # For more information about the LSP server, check sqls . Installation # go install github.com/lighttiger2505/sqls@latest Debugger: Not available # root_file: docs/manual-language-docs/lsp-sqls.md # Sample configuration: # ( add-hook 'sql-mode-hook 'lsp ) ( setq lsp-sqls-workspace-config-path nil ) ( setq lsp-sqls-connections ' ((( driver . \"mysql\" ) ( dataSourceName . \"yyoncho:local@tcp(localhost:3306)/foo\" )) (( driver . \"mssql\" ) ( dataSourceName . \"Server=localhost;Database=sammy;User Id=yyoncho;Password=hunter2;\" )) (( driver . \"postgresql\" ) ( dataSourceName . \"host=127.0.0.1 port=5432 user=yyoncho password=local dbname=sammy sslmode=disable\" )))) Alternatively, you can leave lsp-sqls-workspace-config-path to the default \"workspace\" value, and put a json file in /.sqls/config.json containing { \"sqls\": { \"connections\": [ { \"driver\": \"mysql\", \"dataSourceName\": \"yyoncho:local@tcp(localhost:3306)/foo\" }, \u2026etc\u2026 ] } } Now lsp should start in sql-mode buffers, and you can pick a server connection with M-x lsp-execute-code-action and \"Switch Connections\" (or directly with M-x lsp-sql-switch-connection ). You can change database with M-x lsp-execute-code-action and \"Switch Database\" (or M-x lsp-sql-switch-database ). Available configurations # lsp-sqls-connections # Type: (repeat (alist :key-type (choice (const :tag Driver driver) (const :tag Connection String dataSourceName)) :value-type string)) Default: nil The connections to the SQL server(s). lsp-sqls-server # Type: file Default: sqls Path to the sqls binary. lsp-sqls-timeout # Type: number Default: 0.5 Timeout to use for sqls requests. lsp-sqls-workspace-config-path # Type: (choice (const workspace) (const root)) Default: workspace If non-nil then setup workspace configuration with json file path.","title":"SQL (sqls)"},{"location":"page/lsp-sqls/#sql-sqls","text":"","title":"SQL (sqls)"},{"location":"page/lsp-sqls/#server","text":"For more information about the LSP server, check sqls .","title":"Server"},{"location":"page/lsp-sqls/#installation","text":"go install github.com/lighttiger2505/sqls@latest","title":"Installation"},{"location":"page/lsp-sqls/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-sqls/#root_file-docsmanual-language-docslsp-sqlsmd","text":"","title":"root_file: docs/manual-language-docs/lsp-sqls.md"},{"location":"page/lsp-sqls/#sample-configuration","text":"( add-hook 'sql-mode-hook 'lsp ) ( setq lsp-sqls-workspace-config-path nil ) ( setq lsp-sqls-connections ' ((( driver . \"mysql\" ) ( dataSourceName . \"yyoncho:local@tcp(localhost:3306)/foo\" )) (( driver . \"mssql\" ) ( dataSourceName . \"Server=localhost;Database=sammy;User Id=yyoncho;Password=hunter2;\" )) (( driver . \"postgresql\" ) ( dataSourceName . \"host=127.0.0.1 port=5432 user=yyoncho password=local dbname=sammy sslmode=disable\" )))) Alternatively, you can leave lsp-sqls-workspace-config-path to the default \"workspace\" value, and put a json file in /.sqls/config.json containing { \"sqls\": { \"connections\": [ { \"driver\": \"mysql\", \"dataSourceName\": \"yyoncho:local@tcp(localhost:3306)/foo\" }, \u2026etc\u2026 ] } } Now lsp should start in sql-mode buffers, and you can pick a server connection with M-x lsp-execute-code-action and \"Switch Connections\" (or directly with M-x lsp-sql-switch-connection ). You can change database with M-x lsp-execute-code-action and \"Switch Database\" (or M-x lsp-sql-switch-database ).","title":"Sample configuration:"},{"location":"page/lsp-sqls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-sqls/#lsp-sqls-connections","text":"Type: (repeat (alist :key-type (choice (const :tag Driver driver) (const :tag Connection String dataSourceName)) :value-type string)) Default: nil The connections to the SQL server(s).","title":"lsp-sqls-connections"},{"location":"page/lsp-sqls/#lsp-sqls-server","text":"Type: file Default: sqls Path to the sqls binary.","title":"lsp-sqls-server"},{"location":"page/lsp-sqls/#lsp-sqls-timeout","text":"Type: number Default: 0.5 Timeout to use for sqls requests.","title":"lsp-sqls-timeout"},{"location":"page/lsp-sqls/#lsp-sqls-workspace-config-path","text":"Type: (choice (const workspace) (const root)) Default: workspace If non-nil then setup workspace configuration with json file path.","title":"lsp-sqls-workspace-config-path"},{"location":"page/lsp-steep/","text":"Ruby (Steep) # Server # For more information about the LSP server, check steep . Installation # gem install steep Debugger: Not available # Available configurations # lsp-steep-log-level # Type: (choice (const fatal) (const error) (const warn) (const info) (const debug)) Default: warn Log level of Steep. lsp-steep-server-path # Type: file Default: nil Path of the Steep language server executable. If specified, lsp-steep-use-bundler is ignored. lsp-steep-use-bundler # Type: boolean Default: nil Run Steep using Bunder.","title":"Ruby (Steep)"},{"location":"page/lsp-steep/#ruby-steep","text":"","title":"Ruby (Steep)"},{"location":"page/lsp-steep/#server","text":"For more information about the LSP server, check steep .","title":"Server"},{"location":"page/lsp-steep/#installation","text":"gem install steep","title":"Installation"},{"location":"page/lsp-steep/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-steep/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-steep/#lsp-steep-log-level","text":"Type: (choice (const fatal) (const error) (const warn) (const info) (const debug)) Default: warn Log level of Steep.","title":"lsp-steep-log-level"},{"location":"page/lsp-steep/#lsp-steep-server-path","text":"Type: file Default: nil Path of the Steep language server executable. If specified, lsp-steep-use-bundler is ignored.","title":"lsp-steep-server-path"},{"location":"page/lsp-steep/#lsp-steep-use-bundler","text":"Type: boolean Default: nil Run Steep using Bunder.","title":"lsp-steep-use-bundler"},{"location":"page/lsp-svelte/","text":"Svelte # Server # For more information about the LSP server, check svelteserver . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET svelte-ls RET . npm i -g svelte-language-server Debugger: Not available # Available configurations # lsp-svelte-plugin-css-color-presentations-enable # Type: boolean Default: t Enable color picker for CSS lsp-svelte-plugin-css-completions-emmet # Type: boolean Default: t Enable emmet auto completions for CSS lsp-svelte-plugin-css-completions-enable # Type: boolean Default: t Enable auto completions for CSS lsp-svelte-plugin-css-diagnostics-enable # Type: boolean Default: t Enable diagnostic messages for CSS lsp-svelte-plugin-css-document-colors-enable # Type: boolean Default: t Enable document colors for CSS lsp-svelte-plugin-css-document-symbols-enable # Type: boolean Default: t Enable document symbols for CSS lsp-svelte-plugin-css-enable # Type: boolean Default: t Enable the CSS plugin lsp-svelte-plugin-css-globals # Type: string Default: `` Which css files should be checked for global variables ( --global-var: value; ). These variables are added to the css completions. String of comma-separated file paths or globs relative to workspace root. lsp-svelte-plugin-css-hover-enable # Type: boolean Default: t Enable hover info for CSS lsp-svelte-plugin-css-selection-range-enable # Type: boolean Default: t Enable selection range for CSS lsp-svelte-plugin-html-completions-emmet # Type: boolean Default: t Enable emmet auto completions for HTML lsp-svelte-plugin-html-completions-enable # Type: boolean Default: t Enable auto completions for HTML lsp-svelte-plugin-html-document-symbols-enable # Type: boolean Default: t Enable document symbols for HTML lsp-svelte-plugin-html-enable # Type: boolean Default: t Enable the HTML plugin lsp-svelte-plugin-html-hover-enable # Type: boolean Default: t Enable hover info for HTML lsp-svelte-plugin-html-tag-complete-enable # Type: boolean Default: t Enable HTML tag auto closing lsp-svelte-plugin-svelte-code-actions-enable # Type: boolean Default: t Enable Code Actions for Svelte lsp-svelte-plugin-svelte-compiler-warnings # Type: (alist :key-type (symbol :tag Warning code) :value-type (choice (const :tag Ignore ignore) (const :tag Treat as error error))) Default: nil Svelte compiler warning codes to ignore or to treat as errors. Example: `((css-unused-selector . ignore) (unused-export-let . error)) lsp-svelte-plugin-svelte-completions-enable # Type: boolean Default: t Enable auto completions for Svelte lsp-svelte-plugin-svelte-diagnostics-enable # Type: boolean Default: t Enable diagnostic messages for Svelte lsp-svelte-plugin-svelte-enable # Type: boolean Default: t Enable the Svelte plugin lsp-svelte-plugin-svelte-format-enable # Type: boolean Default: t Enable formatting for Svelte (includes css & js) lsp-svelte-plugin-svelte-hover-enable # Type: boolean Default: t Enable hover information for Svelte lsp-svelte-plugin-svelte-rename-enable # Type: boolean Default: t Enable rename/move Svelte files functionality lsp-svelte-plugin-svelte-selection-range-enable # Type: boolean Default: t Enable selection range for Svelte lsp-svelte-plugin-typescript-code-actions-enable # Type: boolean Default: t Enable code actions for TypeScript lsp-svelte-plugin-typescript-completions-enable # Type: boolean Default: t Enable completions for TypeScript lsp-svelte-plugin-typescript-definitions-enable # Type: boolean Default: t Enable go to definition for TypeScript lsp-svelte-plugin-typescript-diagnostics-enable # Type: boolean Default: t Enable diagnostic messages for TypeScript lsp-svelte-plugin-typescript-document-symbols-enable # Type: boolean Default: t Enable document symbols for TypeScript lsp-svelte-plugin-typescript-enable # Type: boolean Default: t Enable the TypeScript plugin lsp-svelte-plugin-typescript-find-references-enable # Type: boolean Default: t Enable find-references for TypeScript lsp-svelte-plugin-typescript-hover-enable # Type: boolean Default: t Enable hover info for TypeScript lsp-svelte-plugin-typescript-rename-enable # Type: boolean Default: t Enable rename functionality for JS/TS variables inside Svelte files lsp-svelte-plugin-typescript-selection-range-enable # Type: boolean Default: t Enable selection range for TypeScript lsp-svelte-plugin-typescript-signature-help-enable # Type: boolean Default: t Enable signature help (parameter hints) for TypeScript","title":"Svelte"},{"location":"page/lsp-svelte/#svelte","text":"","title":"Svelte"},{"location":"page/lsp-svelte/#server","text":"For more information about the LSP server, check svelteserver .","title":"Server"},{"location":"page/lsp-svelte/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET svelte-ls RET . npm i -g svelte-language-server","title":"Installation"},{"location":"page/lsp-svelte/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-svelte/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-color-presentations-enable","text":"Type: boolean Default: t Enable color picker for CSS","title":"lsp-svelte-plugin-css-color-presentations-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-completions-emmet","text":"Type: boolean Default: t Enable emmet auto completions for CSS","title":"lsp-svelte-plugin-css-completions-emmet"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-completions-enable","text":"Type: boolean Default: t Enable auto completions for CSS","title":"lsp-svelte-plugin-css-completions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-diagnostics-enable","text":"Type: boolean Default: t Enable diagnostic messages for CSS","title":"lsp-svelte-plugin-css-diagnostics-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-document-colors-enable","text":"Type: boolean Default: t Enable document colors for CSS","title":"lsp-svelte-plugin-css-document-colors-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-document-symbols-enable","text":"Type: boolean Default: t Enable document symbols for CSS","title":"lsp-svelte-plugin-css-document-symbols-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-enable","text":"Type: boolean Default: t Enable the CSS plugin","title":"lsp-svelte-plugin-css-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-globals","text":"Type: string Default: `` Which css files should be checked for global variables ( --global-var: value; ). These variables are added to the css completions. String of comma-separated file paths or globs relative to workspace root.","title":"lsp-svelte-plugin-css-globals"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-hover-enable","text":"Type: boolean Default: t Enable hover info for CSS","title":"lsp-svelte-plugin-css-hover-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-selection-range-enable","text":"Type: boolean Default: t Enable selection range for CSS","title":"lsp-svelte-plugin-css-selection-range-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-html-completions-emmet","text":"Type: boolean Default: t Enable emmet auto completions for HTML","title":"lsp-svelte-plugin-html-completions-emmet"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-html-completions-enable","text":"Type: boolean Default: t Enable auto completions for HTML","title":"lsp-svelte-plugin-html-completions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-html-document-symbols-enable","text":"Type: boolean Default: t Enable document symbols for HTML","title":"lsp-svelte-plugin-html-document-symbols-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-html-enable","text":"Type: boolean Default: t Enable the HTML plugin","title":"lsp-svelte-plugin-html-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-html-hover-enable","text":"Type: boolean Default: t Enable hover info for HTML","title":"lsp-svelte-plugin-html-hover-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-html-tag-complete-enable","text":"Type: boolean Default: t Enable HTML tag auto closing","title":"lsp-svelte-plugin-html-tag-complete-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-code-actions-enable","text":"Type: boolean Default: t Enable Code Actions for Svelte","title":"lsp-svelte-plugin-svelte-code-actions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-compiler-warnings","text":"Type: (alist :key-type (symbol :tag Warning code) :value-type (choice (const :tag Ignore ignore) (const :tag Treat as error error))) Default: nil Svelte compiler warning codes to ignore or to treat as errors. Example: `((css-unused-selector . ignore) (unused-export-let . error))","title":"lsp-svelte-plugin-svelte-compiler-warnings"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-completions-enable","text":"Type: boolean Default: t Enable auto completions for Svelte","title":"lsp-svelte-plugin-svelte-completions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-diagnostics-enable","text":"Type: boolean Default: t Enable diagnostic messages for Svelte","title":"lsp-svelte-plugin-svelte-diagnostics-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-enable","text":"Type: boolean Default: t Enable the Svelte plugin","title":"lsp-svelte-plugin-svelte-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-format-enable","text":"Type: boolean Default: t Enable formatting for Svelte (includes css & js)","title":"lsp-svelte-plugin-svelte-format-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-hover-enable","text":"Type: boolean Default: t Enable hover information for Svelte","title":"lsp-svelte-plugin-svelte-hover-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-rename-enable","text":"Type: boolean Default: t Enable rename/move Svelte files functionality","title":"lsp-svelte-plugin-svelte-rename-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-selection-range-enable","text":"Type: boolean Default: t Enable selection range for Svelte","title":"lsp-svelte-plugin-svelte-selection-range-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-code-actions-enable","text":"Type: boolean Default: t Enable code actions for TypeScript","title":"lsp-svelte-plugin-typescript-code-actions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-completions-enable","text":"Type: boolean Default: t Enable completions for TypeScript","title":"lsp-svelte-plugin-typescript-completions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-definitions-enable","text":"Type: boolean Default: t Enable go to definition for TypeScript","title":"lsp-svelte-plugin-typescript-definitions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-diagnostics-enable","text":"Type: boolean Default: t Enable diagnostic messages for TypeScript","title":"lsp-svelte-plugin-typescript-diagnostics-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-document-symbols-enable","text":"Type: boolean Default: t Enable document symbols for TypeScript","title":"lsp-svelte-plugin-typescript-document-symbols-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-enable","text":"Type: boolean Default: t Enable the TypeScript plugin","title":"lsp-svelte-plugin-typescript-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-find-references-enable","text":"Type: boolean Default: t Enable find-references for TypeScript","title":"lsp-svelte-plugin-typescript-find-references-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-hover-enable","text":"Type: boolean Default: t Enable hover info for TypeScript","title":"lsp-svelte-plugin-typescript-hover-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-rename-enable","text":"Type: boolean Default: t Enable rename functionality for JS/TS variables inside Svelte files","title":"lsp-svelte-plugin-typescript-rename-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-selection-range-enable","text":"Type: boolean Default: t Enable selection range for TypeScript","title":"lsp-svelte-plugin-typescript-selection-range-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-signature-help-enable","text":"Type: boolean Default: t Enable signature help (parameter hints) for TypeScript","title":"lsp-svelte-plugin-typescript-signature-help-enable"},{"location":"page/lsp-svlangserver/","text":"Verilog/SystemVerilog # Server # For more information about the LSP server, check svlangserver . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-verilog-executable # Type: file Default: (hdl_checker --lsp) Command to start the hdl_checker language server. lsp-clients-svlangserver-bin-args # Type: (lsp-repeatable-vector string) Default: nil command line arguments for svlangserver binary lsp-clients-svlangserver-bin-path # Type: string Default: svlangserver svlangserver binary path lsp-clients-svlangserver-defines # Type: (lsp-repeatable-vector string) Default: nil Defines needed for linting lsp-clients-svlangserver-disableCompletionProvider # Type: boolean Default: nil Disable auto completion provided by the language server lsp-clients-svlangserver-disableHoverProvider # Type: boolean Default: nil Disable hover over help provided by the language server lsp-clients-svlangserver-disableLinting # Type: boolean Default: nil Disable verilator linting lsp-clients-svlangserver-disableSignatureHelpProvider # Type: boolean Default: nil Disable signature help provided by the language server lsp-clients-svlangserver-excludeIndexing # Type: (lsp-repeatable-vector string) Default: [test/**/*.{sv,svh}] Files excluded for indexing (glob pattern) lsp-clients-svlangserver-formatCommand # Type: string Default: verible-verilog-format Verible verilog format command lsp-clients-svlangserver-includeIndexing # Type: (lsp-repeatable-vector string) Default: [**/*.{sv,svh}] Files included for indexing (glob pattern) lsp-clients-svlangserver-launchConfiguration # Type: string Default: verilator -sv --lint-only -Wall Verilator command used for linting lsp-clients-svlangserver-lintOnUnsaved # Type: boolean Default: t Enable linting on unsaved files lsp-clients-svlangserver-module-path # Type: string Default: svlangserver.js svlangserver module path lsp-clients-svlangserver-node-command # Type: string Default: node node binary path lsp-clients-svlangserver-workspace-additional-dirs # Type: (lsp-repeatable-vector string) Default: nil Additional directories to be managed by this instance of svlangserver","title":"Verilog/SystemVerilog (svlangserver)"},{"location":"page/lsp-svlangserver/#verilogsystemverilog","text":"","title":"Verilog/SystemVerilog"},{"location":"page/lsp-svlangserver/#server","text":"For more information about the LSP server, check svlangserver .","title":"Server"},{"location":"page/lsp-svlangserver/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-svlangserver/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-svlangserver/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-svlangserver/#lsp-clients-verilog-executable","text":"Type: file Default: (hdl_checker --lsp) Command to start the hdl_checker language server.","title":"lsp-clients-verilog-executable"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-bin-args","text":"Type: (lsp-repeatable-vector string) Default: nil command line arguments for svlangserver binary","title":"lsp-clients-svlangserver-bin-args"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-bin-path","text":"Type: string Default: svlangserver svlangserver binary path","title":"lsp-clients-svlangserver-bin-path"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-defines","text":"Type: (lsp-repeatable-vector string) Default: nil Defines needed for linting","title":"lsp-clients-svlangserver-defines"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-disablecompletionprovider","text":"Type: boolean Default: nil Disable auto completion provided by the language server","title":"lsp-clients-svlangserver-disableCompletionProvider"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-disablehoverprovider","text":"Type: boolean Default: nil Disable hover over help provided by the language server","title":"lsp-clients-svlangserver-disableHoverProvider"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-disablelinting","text":"Type: boolean Default: nil Disable verilator linting","title":"lsp-clients-svlangserver-disableLinting"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-disablesignaturehelpprovider","text":"Type: boolean Default: nil Disable signature help provided by the language server","title":"lsp-clients-svlangserver-disableSignatureHelpProvider"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-excludeindexing","text":"Type: (lsp-repeatable-vector string) Default: [test/**/*.{sv,svh}] Files excluded for indexing (glob pattern)","title":"lsp-clients-svlangserver-excludeIndexing"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-formatcommand","text":"Type: string Default: verible-verilog-format Verible verilog format command","title":"lsp-clients-svlangserver-formatCommand"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-includeindexing","text":"Type: (lsp-repeatable-vector string) Default: [**/*.{sv,svh}] Files included for indexing (glob pattern)","title":"lsp-clients-svlangserver-includeIndexing"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-launchconfiguration","text":"Type: string Default: verilator -sv --lint-only -Wall Verilator command used for linting","title":"lsp-clients-svlangserver-launchConfiguration"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-lintonunsaved","text":"Type: boolean Default: t Enable linting on unsaved files","title":"lsp-clients-svlangserver-lintOnUnsaved"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-module-path","text":"Type: string Default: svlangserver.js svlangserver module path","title":"lsp-clients-svlangserver-module-path"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-node-command","text":"Type: string Default: node node binary path","title":"lsp-clients-svlangserver-node-command"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-workspace-additional-dirs","text":"Type: (lsp-repeatable-vector string) Default: nil Additional directories to be managed by this instance of svlangserver","title":"lsp-clients-svlangserver-workspace-additional-dirs"},{"location":"page/lsp-syntax_tree/","text":"ruby-syntax-tree # Server # For more information about the LSP server, check stree . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Lsp syntax tree"},{"location":"page/lsp-syntax_tree/#ruby-syntax-tree","text":"","title":"ruby-syntax-tree"},{"location":"page/lsp-syntax_tree/#server","text":"For more information about the LSP server, check stree .","title":"Server"},{"location":"page/lsp-syntax_tree/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-syntax_tree/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-syntax_tree/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-terraform-ls/","text":"Terraform LSP # Server # For more information about the LSP server, check terraform-ls . Installation # For more instructions on how to install manually, check here . Debugger: Not available # author: psibi template: comment.html root_file: docs/manual-language-docs/lsp-terraform-ls.md Server note # This page documents the official language server for Terraform by Hashicorp. Note that currently lsp-mode supports two terraform language servers. This FAQ entry shows how to choose a specific one. If you would want to go with the official Hashicorp's language server, set this: ( setq lsp-disabled-clients ' ( tfls )) terraform-ls # Commands # lsp-terraform-ls-validate # Runs terraform validate on project root. All the violations are published back in the buffer. lsp-terraform-ls-init # Runs terraform init using terraform available from $PATH . You have to make sure that that proper credentials are there. Note that this is a synchronous action and will timeout after a certain amount of time. lsp-terraform-ls-version # This feature is only available on terraform-ls version >= 0.29.0. Provides information about the terraform binary version for the current workspace. This is how it will look like in the minibuffer: Required: 1.1.9, Current: 1.0.5 Note that if you have changed the version in your $PATH meanwhile, you would have to restart the lsp session using lsp-workspace-restart for it to pick up the newer version. Code Lens # This is an experimental feature which can be enabled via the option lsp-terraform-ls-enable-show-reference : ( setq lsp-terraform-ls-enable-show-reference t ) This gif demonstrates how this feature is used: Semantic token support # Make sure to enable these two variables to ensure that you have semantic token support for terraform mode: ( setq lsp-semantic-tokens-enable t ) ( setq lsp-semantic-tokens-honor-refresh-requests t ) This is how the code looks without semantic tokens support: And with semantic token support you get more contextual information via different faces: Link to Documentation # Link to documentation from module sources for registry modules is available. Make sure you have this enabled: ( setq lsp-enable-links t ) Note that the default value of lsp-enable-links is t . So enabling it isn't strictly required, but you would require this feature for it to properly work. This gif demonstrates on how to use it: There are two ways to open the link: Key binding: Alt + Enter Clicking the middle button of your mouse Prefill required fields # This is an experimental feature which can be enabled via the option lsp-terraform-ls-prefill-required-fields : ( setq lsp-terraform-ls-prefill-required-fields t ) This gif demonstrates how this feature is used: Treeview controls # For this feature to work, make sure that you have lsp-treemacs installed. Providers widget # This widget can be invoked by lsp-terraform-ls-providers . Module calls widget # This widget can be invoked by lsp-terraform-ls-module-calls . If the modules data is empty, you might need to do terraform init for the project. The widget has a minor mode named lsp-terraform-modules-mode . Following keybinding are available within the mode: g : Refresh modules view Available configurations # lsp-terraform-ls-enable-show-reference # Type: boolean Default: nil Enable reference counts. Display reference counts above top level blocks and attributes. This is an experimental feature provided by the language server. lsp-terraform-ls-module-calls-position-params # Type: list Default: nil The optional module calls tree position params. Defaults to side following treemacs default. lsp-terraform-ls-prefill-required-fields # Type: boolean Default: nil Enable completion of required fields. Enable autocompletion for required fields when completing Terraform blocks. This is an experimental feature provided by the language server. lsp-terraform-ls-providers-position-params # Type: list Default: nil The optional providers tree position params. Defaults to side following treemacs default. lsp-terraform-ls-server # Type: (choice (file :tag File) (repeat string)) Default: terraform-ls Path to the terraform-ls binary. lsp-terraform-ls-validate-on-save # Type: boolean Default: nil Enable validating the current open file on save. This is an experimental feature provided by the language server.","title":"Terraform (terraform-ls)"},{"location":"page/lsp-terraform-ls/#terraform-lsp","text":"","title":"Terraform LSP"},{"location":"page/lsp-terraform-ls/#server","text":"For more information about the LSP server, check terraform-ls .","title":"Server"},{"location":"page/lsp-terraform-ls/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-terraform-ls/#debugger-not-available","text":"author: psibi template: comment.html root_file: docs/manual-language-docs/lsp-terraform-ls.md","title":"Debugger: Not available"},{"location":"page/lsp-terraform-ls/#server-note","text":"This page documents the official language server for Terraform by Hashicorp. Note that currently lsp-mode supports two terraform language servers. This FAQ entry shows how to choose a specific one. If you would want to go with the official Hashicorp's language server, set this: ( setq lsp-disabled-clients ' ( tfls ))","title":"Server note"},{"location":"page/lsp-terraform-ls/#terraform-ls","text":"","title":"terraform-ls"},{"location":"page/lsp-terraform-ls/#commands","text":"","title":"Commands"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-validate","text":"Runs terraform validate on project root. All the violations are published back in the buffer.","title":"lsp-terraform-ls-validate"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-init","text":"Runs terraform init using terraform available from $PATH . You have to make sure that that proper credentials are there. Note that this is a synchronous action and will timeout after a certain amount of time.","title":"lsp-terraform-ls-init"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-version","text":"This feature is only available on terraform-ls version >= 0.29.0. Provides information about the terraform binary version for the current workspace. This is how it will look like in the minibuffer: Required: 1.1.9, Current: 1.0.5 Note that if you have changed the version in your $PATH meanwhile, you would have to restart the lsp session using lsp-workspace-restart for it to pick up the newer version.","title":"lsp-terraform-ls-version"},{"location":"page/lsp-terraform-ls/#code-lens","text":"This is an experimental feature which can be enabled via the option lsp-terraform-ls-enable-show-reference : ( setq lsp-terraform-ls-enable-show-reference t ) This gif demonstrates how this feature is used:","title":"Code Lens"},{"location":"page/lsp-terraform-ls/#semantic-token-support","text":"Make sure to enable these two variables to ensure that you have semantic token support for terraform mode: ( setq lsp-semantic-tokens-enable t ) ( setq lsp-semantic-tokens-honor-refresh-requests t ) This is how the code looks without semantic tokens support: And with semantic token support you get more contextual information via different faces:","title":"Semantic token support"},{"location":"page/lsp-terraform-ls/#link-to-documentation","text":"Link to documentation from module sources for registry modules is available. Make sure you have this enabled: ( setq lsp-enable-links t ) Note that the default value of lsp-enable-links is t . So enabling it isn't strictly required, but you would require this feature for it to properly work. This gif demonstrates on how to use it: There are two ways to open the link: Key binding: Alt + Enter Clicking the middle button of your mouse","title":"Link to Documentation"},{"location":"page/lsp-terraform-ls/#prefill-required-fields","text":"This is an experimental feature which can be enabled via the option lsp-terraform-ls-prefill-required-fields : ( setq lsp-terraform-ls-prefill-required-fields t ) This gif demonstrates how this feature is used:","title":"Prefill required fields"},{"location":"page/lsp-terraform-ls/#treeview-controls","text":"For this feature to work, make sure that you have lsp-treemacs installed.","title":"Treeview controls"},{"location":"page/lsp-terraform-ls/#providers-widget","text":"This widget can be invoked by lsp-terraform-ls-providers .","title":"Providers widget"},{"location":"page/lsp-terraform-ls/#module-calls-widget","text":"This widget can be invoked by lsp-terraform-ls-module-calls . If the modules data is empty, you might need to do terraform init for the project. The widget has a minor mode named lsp-terraform-modules-mode . Following keybinding are available within the mode: g : Refresh modules view","title":"Module calls widget"},{"location":"page/lsp-terraform-ls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-enable-show-reference","text":"Type: boolean Default: nil Enable reference counts. Display reference counts above top level blocks and attributes. This is an experimental feature provided by the language server.","title":"lsp-terraform-ls-enable-show-reference"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-module-calls-position-params","text":"Type: list Default: nil The optional module calls tree position params. Defaults to side following treemacs default.","title":"lsp-terraform-ls-module-calls-position-params"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-prefill-required-fields","text":"Type: boolean Default: nil Enable completion of required fields. Enable autocompletion for required fields when completing Terraform blocks. This is an experimental feature provided by the language server.","title":"lsp-terraform-ls-prefill-required-fields"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-providers-position-params","text":"Type: list Default: nil The optional providers tree position params. Defaults to side following treemacs default.","title":"lsp-terraform-ls-providers-position-params"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-server","text":"Type: (choice (file :tag File) (repeat string)) Default: terraform-ls Path to the terraform-ls binary.","title":"lsp-terraform-ls-server"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-validate-on-save","text":"Type: boolean Default: nil Enable validating the current open file on save. This is an experimental feature provided by the language server.","title":"lsp-terraform-ls-validate-on-save"},{"location":"page/lsp-terraform/","text":"Terraform # Server # For more information about the LSP server, check terraform-lsp . Installation # Git clone outside of $GOPATH; go install Debugger: Not available # Available configurations # lsp-terraform-enable-logging # Type: boolean Default: nil If non-nil, enable `terraform-ls``s native logging. lsp-terraform-semantic-token-faces # Type: (alist :key-type string :value-type face) Default: ((namespace . lsp-face-semhl-namespace) (type . lsp-face-semhl-type) (class . lsp-face-semhl-class) (enum . lsp-face-semhl-enum) (interface . lsp-face-semhl-interface) (struct . lsp-face-semhl-struct) (typeParameter . lsp-face-semhl-type-parameter) (parameter . lsp-face-semhl-parameter) (variable . lsp-face-semhl-variable) (property . lsp-face-semhl-property) (enumMember . lsp-face-semhl-constant) (event . lsp-face-semhl-event) (function . lsp-face-semhl-function) (method . lsp-face-semhl-method) (macro . lsp-face-semhl-macro) (keyword . lsp-face-semhl-keyword) (modifier . lsp-face-semhl-member) (comment . lsp-face-semhl-comment) (string . lsp-face-semhl-string) (number . lsp-face-semhl-number) (regexp . lsp-face-semhl-regexp) (operator . lsp-face-semhl-operator) (hcl-attrName . lsp-face-semhl-member) (hcl-blockType . lsp-face-semhl-struct) (hcl-blockLabel . lsp-face-semhl-member) (hcl-bool . lsp-face-semhl-constant) (hcl-string . lsp-face-semhl-string) (hcl-number . lsp-face-semhl-number) (hcl-objectKey . lsp-face-semhl-member) (hcl-mapKey . lsp-face-semhl-member) (hcl-keyword . lsp-face-semhl-keyword) (hcl-traversalStep . lsp-face-semhl-member) (hcl-typeCapsule . lsp-face-semhl-type) (hcl-typePrimitive . lsp-face-semhl-type)) Mapping between terrafom-ls tokens and fonts to apply. lsp-terraform-semantic-token-modifier-faces # Type: (alist :key-type string :value-type face) Default: ((declaration . lsp-face-semhl-class) (definition . lsp-face-semhl-definition) (readonly . lsp-face-semhl-constant) (static . lsp-face-semhl-static) (deprecated . lsp-face-semhl-deprecated) (abstract . lsp-face-semhl-keyword) (async . lsp-face-semhl-macro) (modification . lsp-face-semhl-operator) (documentation . lsp-face-semhl-comment) (defaultLibrary . lsp-face-semhl-default-library) (hcl-dependent . lsp-face-semhl-constant) (terraform-data . lsp-face-semhl-constant) (terraform-locals . lsp-face-semhl-variable) (terraform-module . lsp-face-semhl-namespace) (terraform-output . lsp-face-semhl-constant) (terraform-provider . lsp-face-semhl-class) (terraform-resource . lsp-face-semhl-interface) (terraform-provisioner . lsp-face-semhl-default-library) (terraform-connection . lsp-face-semhl-constant) (terraform-variable . lsp-face-semhl-variable) (terraform-terraform . lsp-face-semhl-constant) (terraform-backend . lsp-face-semhl-definition) (terraform-name . lsp-face-semhl-interface) (terraform-type . lsp-face-semhl-type) (terraform-requiredProviders . lsp-face-semhl-default-library)) Mapping between terraform-ls modifiers and fonts to apply. lsp-terraform-server # Type: (choice (file :tag File) (repeat string)) Default: terraform-lsp Path to the terraform-lsp binary.","title":"Terraform (terraform-lsp)"},{"location":"page/lsp-terraform/#terraform","text":"","title":"Terraform"},{"location":"page/lsp-terraform/#server","text":"For more information about the LSP server, check terraform-lsp .","title":"Server"},{"location":"page/lsp-terraform/#installation","text":"Git clone outside of $GOPATH; go install","title":"Installation"},{"location":"page/lsp-terraform/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-terraform/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-terraform/#lsp-terraform-enable-logging","text":"Type: boolean Default: nil If non-nil, enable `terraform-ls``s native logging.","title":"lsp-terraform-enable-logging"},{"location":"page/lsp-terraform/#lsp-terraform-semantic-token-faces","text":"Type: (alist :key-type string :value-type face) Default: ((namespace . lsp-face-semhl-namespace) (type . lsp-face-semhl-type) (class . lsp-face-semhl-class) (enum . lsp-face-semhl-enum) (interface . lsp-face-semhl-interface) (struct . lsp-face-semhl-struct) (typeParameter . lsp-face-semhl-type-parameter) (parameter . lsp-face-semhl-parameter) (variable . lsp-face-semhl-variable) (property . lsp-face-semhl-property) (enumMember . lsp-face-semhl-constant) (event . lsp-face-semhl-event) (function . lsp-face-semhl-function) (method . lsp-face-semhl-method) (macro . lsp-face-semhl-macro) (keyword . lsp-face-semhl-keyword) (modifier . lsp-face-semhl-member) (comment . lsp-face-semhl-comment) (string . lsp-face-semhl-string) (number . lsp-face-semhl-number) (regexp . lsp-face-semhl-regexp) (operator . lsp-face-semhl-operator) (hcl-attrName . lsp-face-semhl-member) (hcl-blockType . lsp-face-semhl-struct) (hcl-blockLabel . lsp-face-semhl-member) (hcl-bool . lsp-face-semhl-constant) (hcl-string . lsp-face-semhl-string) (hcl-number . lsp-face-semhl-number) (hcl-objectKey . lsp-face-semhl-member) (hcl-mapKey . lsp-face-semhl-member) (hcl-keyword . lsp-face-semhl-keyword) (hcl-traversalStep . lsp-face-semhl-member) (hcl-typeCapsule . lsp-face-semhl-type) (hcl-typePrimitive . lsp-face-semhl-type)) Mapping between terrafom-ls tokens and fonts to apply.","title":"lsp-terraform-semantic-token-faces"},{"location":"page/lsp-terraform/#lsp-terraform-semantic-token-modifier-faces","text":"Type: (alist :key-type string :value-type face) Default: ((declaration . lsp-face-semhl-class) (definition . lsp-face-semhl-definition) (readonly . lsp-face-semhl-constant) (static . lsp-face-semhl-static) (deprecated . lsp-face-semhl-deprecated) (abstract . lsp-face-semhl-keyword) (async . lsp-face-semhl-macro) (modification . lsp-face-semhl-operator) (documentation . lsp-face-semhl-comment) (defaultLibrary . lsp-face-semhl-default-library) (hcl-dependent . lsp-face-semhl-constant) (terraform-data . lsp-face-semhl-constant) (terraform-locals . lsp-face-semhl-variable) (terraform-module . lsp-face-semhl-namespace) (terraform-output . lsp-face-semhl-constant) (terraform-provider . lsp-face-semhl-class) (terraform-resource . lsp-face-semhl-interface) (terraform-provisioner . lsp-face-semhl-default-library) (terraform-connection . lsp-face-semhl-constant) (terraform-variable . lsp-face-semhl-variable) (terraform-terraform . lsp-face-semhl-constant) (terraform-backend . lsp-face-semhl-definition) (terraform-name . lsp-face-semhl-interface) (terraform-type . lsp-face-semhl-type) (terraform-requiredProviders . lsp-face-semhl-default-library)) Mapping between terraform-ls modifiers and fonts to apply.","title":"lsp-terraform-semantic-token-modifier-faces"},{"location":"page/lsp-terraform/#lsp-terraform-server","text":"Type: (choice (file :tag File) (repeat string)) Default: terraform-lsp Path to the terraform-lsp binary.","title":"lsp-terraform-server"},{"location":"page/lsp-tex/","text":"TeX, LaTeX, etc. # Server # For more information about the LSP server, check Digestif . Installation # luarocks --server http://luarocks.org/dev install digestif Debugger: Not available # Available configurations # lsp-clients-digestif-executable # Type: file Default: digestif Command to start the Digestif language server. lsp-clients-texlab-executable # Type: file Default: texlab Command to start the texlab language server. lsp-tex-server # Type: (choice (const :tag texlab texlab) (const :tag digestif digestif)) Default: texlab Choose LSP tex server.","title":"TeX, LaTeX, etc (digestif)"},{"location":"page/lsp-tex/#tex-latex-etc","text":"","title":"TeX, LaTeX, etc."},{"location":"page/lsp-tex/#server","text":"For more information about the LSP server, check Digestif .","title":"Server"},{"location":"page/lsp-tex/#installation","text":"luarocks --server http://luarocks.org/dev install digestif","title":"Installation"},{"location":"page/lsp-tex/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-tex/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-tex/#lsp-clients-digestif-executable","text":"Type: file Default: digestif Command to start the Digestif language server.","title":"lsp-clients-digestif-executable"},{"location":"page/lsp-tex/#lsp-clients-texlab-executable","text":"Type: file Default: texlab Command to start the texlab language server.","title":"lsp-clients-texlab-executable"},{"location":"page/lsp-tex/#lsp-tex-server","text":"Type: (choice (const :tag texlab texlab) (const :tag digestif digestif)) Default: texlab Choose LSP tex server.","title":"lsp-tex-server"},{"location":"page/lsp-texlab/","text":"TeX, LaTeX, etc. # Server # For more information about the LSP server, check texlab . Installation # cargo install --locked --git https://github.com/latex-lsp/texlab.git Debugger: Not available # Available configurations #","title":"TeX, LaTeX, etc (texlab)"},{"location":"page/lsp-texlab/#tex-latex-etc","text":"","title":"TeX, LaTeX, etc."},{"location":"page/lsp-texlab/#server","text":"For more information about the LSP server, check texlab .","title":"Server"},{"location":"page/lsp-texlab/#installation","text":"cargo install --locked --git https://github.com/latex-lsp/texlab.git","title":"Installation"},{"location":"page/lsp-texlab/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-texlab/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-tilt/","text":"Tilt LSP # Server # For more information about the LSP server, check tilt . Installation # To be used with tilt-mode available in https://github.com/Konubinix/tilt-mode For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Tilt"},{"location":"page/lsp-tilt/#tilt-lsp","text":"","title":"Tilt LSP"},{"location":"page/lsp-tilt/#server","text":"For more information about the LSP server, check tilt .","title":"Server"},{"location":"page/lsp-tilt/#installation","text":"To be used with tilt-mode available in https://github.com/Konubinix/tilt-mode For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-tilt/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-tilt/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-toml/","text":"TOML # Server # For more information about the LSP server, check taplo . Installation # cargo install taplo-cli --features lsp Debugger: Not available # Available configurations # lsp-toml-cache-path # Type: string Default: /home/runner/.emacs.d/.cache/lsp-toml Path to cache. lsp-toml-command # Type: string Default: taplo Path to taplo command. lsp-toml-completion-max-keys # Type: number Default: 5 The maximum amount of keys in a dotted key to display during completion, 0 effectively disables key completions. lsp-toml-schema-associations # Type: (alist :key-type symbol :value-type string) Default: nil Additional document and schema associations. The key must be a regular expression, this pattern is used to associate schemas with absolute document URIs. The value must be an absolute URI to the JSON schema lsp-toml-schema-cache-disk-expiration # Type: number Default: 600 The amount of seconds after which cached catalogs and schemas expire and will be attempted to be fetched again. lsp-toml-schema-cache-memory-expiration # Type: number Default: 60 The amount of seconds after which schemas will be invalidated from memory. lsp-toml-schema-catalogs # Type: lsp-string-vector Default: [https://www.schemastore.org/api/json/catalog.json] A list of URLs to schema catalogs where schemas and associations can be fetched from lsp-toml-schema-enabled # Type: boolean Default: t Enable completion and validation based on JSON schemas. lsp-toml-schema-links # Type: boolean Default: nil Whether to show clickable links for keys in the editor. lsp-toml-semantic-tokens # Type: boolean Default: nil Enable semantic tokens for inline table and array keys. lsp-toml-syntax-semantic-tokens # Type: boolean Default: t Whether to enable semantic tokens for tables and arrays. lsp-toml-taplo-config-file-enabled # Type: boolean Default: t Whether to enable the usage of a Taplo configuration file. lsp-toml-taplo-config-file-path # Type: string Default: nil An absolute, or workspace relative path to the Taplo configuration file.","title":"TOML"},{"location":"page/lsp-toml/#toml","text":"","title":"TOML"},{"location":"page/lsp-toml/#server","text":"For more information about the LSP server, check taplo .","title":"Server"},{"location":"page/lsp-toml/#installation","text":"cargo install taplo-cli --features lsp","title":"Installation"},{"location":"page/lsp-toml/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-toml/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-toml/#lsp-toml-cache-path","text":"Type: string Default: /home/runner/.emacs.d/.cache/lsp-toml Path to cache.","title":"lsp-toml-cache-path"},{"location":"page/lsp-toml/#lsp-toml-command","text":"Type: string Default: taplo Path to taplo command.","title":"lsp-toml-command"},{"location":"page/lsp-toml/#lsp-toml-completion-max-keys","text":"Type: number Default: 5 The maximum amount of keys in a dotted key to display during completion, 0 effectively disables key completions.","title":"lsp-toml-completion-max-keys"},{"location":"page/lsp-toml/#lsp-toml-schema-associations","text":"Type: (alist :key-type symbol :value-type string) Default: nil Additional document and schema associations. The key must be a regular expression, this pattern is used to associate schemas with absolute document URIs. The value must be an absolute URI to the JSON schema","title":"lsp-toml-schema-associations"},{"location":"page/lsp-toml/#lsp-toml-schema-cache-disk-expiration","text":"Type: number Default: 600 The amount of seconds after which cached catalogs and schemas expire and will be attempted to be fetched again.","title":"lsp-toml-schema-cache-disk-expiration"},{"location":"page/lsp-toml/#lsp-toml-schema-cache-memory-expiration","text":"Type: number Default: 60 The amount of seconds after which schemas will be invalidated from memory.","title":"lsp-toml-schema-cache-memory-expiration"},{"location":"page/lsp-toml/#lsp-toml-schema-catalogs","text":"Type: lsp-string-vector Default: [https://www.schemastore.org/api/json/catalog.json] A list of URLs to schema catalogs where schemas and associations can be fetched from","title":"lsp-toml-schema-catalogs"},{"location":"page/lsp-toml/#lsp-toml-schema-enabled","text":"Type: boolean Default: t Enable completion and validation based on JSON schemas.","title":"lsp-toml-schema-enabled"},{"location":"page/lsp-toml/#lsp-toml-schema-links","text":"Type: boolean Default: nil Whether to show clickable links for keys in the editor.","title":"lsp-toml-schema-links"},{"location":"page/lsp-toml/#lsp-toml-semantic-tokens","text":"Type: boolean Default: nil Enable semantic tokens for inline table and array keys.","title":"lsp-toml-semantic-tokens"},{"location":"page/lsp-toml/#lsp-toml-syntax-semantic-tokens","text":"Type: boolean Default: t Whether to enable semantic tokens for tables and arrays.","title":"lsp-toml-syntax-semantic-tokens"},{"location":"page/lsp-toml/#lsp-toml-taplo-config-file-enabled","text":"Type: boolean Default: t Whether to enable the usage of a Taplo configuration file.","title":"lsp-toml-taplo-config-file-enabled"},{"location":"page/lsp-toml/#lsp-toml-taplo-config-file-path","text":"Type: string Default: nil An absolute, or workspace relative path to the Taplo configuration file.","title":"lsp-toml-taplo-config-file-path"},{"location":"page/lsp-ttcn3/","text":"TTCN3 # Server # For more information about the LSP server, check ntt . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-ttcn3-lsp-server-command # Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: (ntt langserver) Command to start ttcn3-language-server.","title":"TTCN3"},{"location":"page/lsp-ttcn3/#ttcn3","text":"","title":"TTCN3"},{"location":"page/lsp-ttcn3/#server","text":"For more information about the LSP server, check ntt .","title":"Server"},{"location":"page/lsp-ttcn3/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-ttcn3/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ttcn3/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ttcn3/#lsp-ttcn3-lsp-server-command","text":"Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: (ntt langserver) Command to start ttcn3-language-server.","title":"lsp-ttcn3-lsp-server-command"},{"location":"page/lsp-typeprof/","text":"Ruby (TypeProf) # Server # For more information about the LSP server, check typeprof . Installation # It is included in Ruby >= 3.1 Debugger: Not available # Available configurations # lsp-typeprof-use-bundler # Type: boolean Default: nil Run typeprof under bundler.","title":"Ruby (TypeProf)"},{"location":"page/lsp-typeprof/#ruby-typeprof","text":"","title":"Ruby (TypeProf)"},{"location":"page/lsp-typeprof/#server","text":"For more information about the LSP server, check typeprof .","title":"Server"},{"location":"page/lsp-typeprof/#installation","text":"It is included in Ruby >= 3.1","title":"Installation"},{"location":"page/lsp-typeprof/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-typeprof/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-typeprof/#lsp-typeprof-use-bundler","text":"Type: boolean Default: nil Run typeprof under bundler.","title":"lsp-typeprof-use-bundler"},{"location":"page/lsp-typescript-javascript/","text":"JavaScript/TypeScript (sourcegraph - UNMAINTAINED) # Server # For more information about the LSP server, check javascript-typescript-stdio . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET jsts-ls RET . npm i -g javascript-typescript-langserver Debugger: Yes (Firefox/Chrome) # Available configurations # lsp-clients-typescript-javascript-server-args # Type: (repeat string) Default: nil Extra arguments for the typescript-language-server language server.","title":"JavaScript/TypeScript (sourcegraph)"},{"location":"page/lsp-typescript-javascript/#javascripttypescript-sourcegraph-unmaintained","text":"","title":"JavaScript/TypeScript (sourcegraph - UNMAINTAINED)"},{"location":"page/lsp-typescript-javascript/#server","text":"For more information about the LSP server, check javascript-typescript-stdio .","title":"Server"},{"location":"page/lsp-typescript-javascript/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET jsts-ls RET . npm i -g javascript-typescript-langserver","title":"Installation"},{"location":"page/lsp-typescript-javascript/#debugger-yes-firefoxchrome","text":"","title":"Debugger: Yes (Firefox/Chrome)"},{"location":"page/lsp-typescript-javascript/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-typescript-javascript/#lsp-clients-typescript-javascript-server-args","text":"Type: (repeat string) Default: nil Extra arguments for the typescript-language-server language server.","title":"lsp-clients-typescript-javascript-server-args"},{"location":"page/lsp-typescript/","text":"JavaScript/TypeScript (RECOMMENDED) # Server # For more information about the LSP server, check typescript-language-server (formerly theia-ide / TypeFox) . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET ts-ls RET . npm i -g typescript-language-server; npm i -g typescript Debugger: Yes (Firefox/Chrome) # Available configurations # lsp-clients-typescript-disable-automatic-typing-acquisition # Type: boolean Default: nil Disable tsserver from automatically fetching missing type definitions. (@types packages) for external modules. lsp-clients-typescript-log-verbosity # Type: (choice (const off) (const terse) (const normal) (const requesttime) (const verbose)) Default: info The verbosity level of the information printed in the log by tsserver. lsp-clients-typescript-max-ts-server-memory # Type: integer Default: nil The maximum size of the V8`s old memory section in megabytes. (for example 4096 means 4GB). The default value is dynamically configured by Node so can differ per system. Increase for very big projects that exceed allowed memory usage. lsp-clients-typescript-npm-location # Type: string Default: nil Specifies the path to the NPM exec used for Automatic Type Acquisition. lsp-clients-typescript-plugins # Type: (restricted-sexp :tag Vector :match-alternatives (lambda (xs) (and (vectorp xs) (seq-every-p (-lambda ((&plist :name :location)) (and name location)) xs)))) Default: [] The list of plugins to load. It should be a vector of plist with keys :location and :name where :name is the name of the package and :location is the directory containing the package. Example: (vector (list :name \"@vsintellicode/typescript-intellicode-plugin\" :location \" .vscode/extensions/visualstudioexptteam. vscodeintellicode-1.1.9/\")) lsp-clients-typescript-prefer-use-project-ts-server # Type: boolean Default: nil When set, prefers using the tsserver.js from your project. This can allow loading plugins configured in your tsconfig.json. lsp-clients-typescript-preferences # Type: plist Default: nil Preferences passed to the Typescript (tsserver) process. See https://github.com/typescript-language-server/typescript-language-server#initializationoptions for the list of preferences available in the latest version of TypeScript. lsp-clients-typescript-server-args # Type: (repeat string) Default: (--stdio) Extra arguments for the typescript-language-server language server. lsp-clients-typescript-tls-path # Type: string Default: typescript-language-server Path to the typescript-language-server binary. lsp-clients-typescript-tsserver # Type: plist Default: nil Options related to the tsserver process. See below for more info. See https://github.com/typescript-language-server/typescript-language-server#initializationoptions for the list of tsserver available in the latest version of TypeScript. lsp-javascript-auto-closing-tags # Type: boolean Default: t Enable/disable automatic closing of JSX tags. Requires using TypeScript 3.0 or newer in the workspace. lsp-javascript-completions-complete-function-calls # Type: boolean Default: t Complete function calls. lsp-javascript-display-enum-member-value-hints # Type: boolean Default: nil Show inlay hints for enum member values. lsp-javascript-display-parameter-name-hints # Type: (choice (const :tag none none) (const :tag literals literals) (const :tag all all)) Default: none Level of hinting for parameter types. lsp-javascript-display-parameter-name-hints-when-argument-matches-name # Type: boolean Default: nil Show inlay hints for function parameters even when argument matches name (e.g. data variable passed as data parameter). lsp-javascript-display-parameter-type-hints # Type: boolean Default: nil Show inlay hints for function parameters. lsp-javascript-display-property-declaration-type-hints # Type: boolean Default: nil Show inlay hints for property declaration types. lsp-javascript-display-return-type-hints # Type: boolean Default: nil Show inlay hints for function return types. lsp-javascript-display-variable-type-hints # Type: boolean Default: nil Show inlay hints for variable types. lsp-javascript-format-enable # Type: boolean Default: t Enable/disable default JavaScript formatter. lsp-javascript-format-insert-space-after-comma-delimiter # Type: boolean Default: t Defines space handling after a comma delimiter. lsp-javascript-format-insert-space-after-constructor # Type: boolean Default: nil Defines space handling after the constructor keyword. Requires using TypeScript 2.3.0 or newer in the workspace. lsp-javascript-format-insert-space-after-function-keyword-for-anonymous-functions # Type: boolean Default: t Defines space handling after function keyword for anonymous functions. lsp-javascript-format-insert-space-after-keywords-in-control-flow-statements # Type: boolean Default: t Defines space handling after keywords in a control flow statement. lsp-javascript-format-insert-space-after-opening-and-before-closing-empty-braces # Type: boolean Default: nil Defines space handling after opening/before closing empty braces. lsp-javascript-format-insert-space-after-opening-and-before-closing-jsx-expression-braces # Type: boolean Default: nil Defines space handling after opening/before closing JSX expression braces. lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-braces # Type: boolean Default: t Defines space handling after opening and before closing non-empty braces. Requires using TypeScript 2.3.0 or newer in the workspace. lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-brackets # Type: boolean Default: nil Defines space handling after opening and before closing non-empty brackets. lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-parenthesis # Type: boolean Default: nil Defines space handling after opening and before closing non-empty parenthesis. lsp-javascript-format-insert-space-after-opening-and-before-closing-template-string-braces # Type: boolean Default: nil Defines space handling after opening/before closing template string braces. lsp-javascript-format-insert-space-after-semicolon-in-for-statements # Type: boolean Default: t Defines space handling after a semicolon in a for statement. lsp-javascript-format-insert-space-before-and-after-binary-operators # Type: boolean Default: t Defines space handling after a binary operator. lsp-javascript-format-insert-space-before-function-parenthesis # Type: boolean Default: nil Defines space handling before function argument parentheses. lsp-javascript-format-place-open-brace-on-new-line-for-control-blocks # Type: boolean Default: nil Defines whether an open brace is put onto a new line for control blocks or not. lsp-javascript-format-place-open-brace-on-new-line-for-functions # Type: boolean Default: nil Defines whether an open brace is put onto a new line for functions or not. lsp-javascript-implicit-project-config-check-js # Type: boolean Default: nil Enable/disable semantic checking of JavaScript files. Existing jsconfig.json or tsconfig.json files override this setting. Requires using TypeScript 2.3.1 or newer in the workspace. lsp-javascript-implicit-project-config-experimental-decorators # Type: boolean Default: nil lsp-javascript-preferences-import-module-specifier # Type: (choice (const auto) (const relative) (const non-relative)) Default: auto Preferred path style for auto imports. lsp-javascript-preferences-quote-style # Type: (choice (const auto) (const single) (const double)) Default: auto lsp-javascript-preferences-rename-shorthand-properties # Type: boolean Default: t Enable/disable introducing aliases for object shorthand properties during renames. Requires using TypeScript 3.4 or newer in the workspace. lsp-javascript-suggest-auto-imports # Type: boolean Default: t Enable/disable auto import suggestions. Requires using TypeScript 2.6.1 or newer in the workspace. lsp-javascript-suggest-complete-function-calls # Type: boolean Default: nil Complete functions with their parameter signature. lsp-javascript-suggest-complete-js-docs # Type: boolean Default: t Enable/disable suggestion to complete JSDoc comments. lsp-javascript-suggest-enabled # Type: boolean Default: t Enabled/disable autocomplete suggestions. lsp-javascript-suggest-names # Type: boolean Default: t Enable/disable including unique names from the file in JavaScript suggestions. lsp-javascript-suggest-paths # Type: boolean Default: t Enable/disable suggestions for paths in import statements and require calls. lsp-javascript-suggestion-actions-enabled # Type: boolean Default: t Enable/disable suggestion diagnostics for JavaScript files in the editor. Requires using TypeScript 2.8 or newer in the workspace. lsp-javascript-update-imports-on-file-move-enabled # Type: (choice (const prompt) (const always) (const never)) Default: prompt Prompt on each rename. lsp-javascript-validate-enable # Type: boolean Default: t Enable/disable JavaScript validation. lsp-typescript-auto-closing-tags # Type: boolean Default: t Enable/disable automatic closing of JSX tags. Requires using TypeScript 3.0 or newer in the workspace. lsp-typescript-format-enable # Type: boolean Default: t Enable/disable default TypeScript formatter. lsp-typescript-format-insert-space-after-comma-delimiter # Type: boolean Default: t Defines space handling after a comma delimiter. lsp-typescript-format-insert-space-after-constructor # Type: boolean Default: nil Defines space handling after the constructor keyword. Requires using TypeScript 2.3.0 or newer in the workspace. lsp-typescript-format-insert-space-after-function-keyword-for-anonymous-functions # Type: boolean Default: t Defines space handling after function keyword for anonymous functions. lsp-typescript-format-insert-space-after-keywords-in-control-flow-statements # Type: boolean Default: t Defines space handling after keywords in a control flow statement. lsp-typescript-format-insert-space-after-opening-and-before-closing-empty-braces # Type: boolean Default: nil Defines space handling after opening/before closing empty braces. lsp-typescript-format-insert-space-after-opening-and-before-closing-jsx-expression-braces # Type: boolean Default: nil Defines space handling after opening/before closing JSX expression braces. lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-braces # Type: boolean Default: t Defines space handling after opening and before closing non-empty braces. Requires using TypeScript 2.3.0 or newer in the workspace. lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-brackets # Type: boolean Default: nil Defines space handling after opening and before closing non-empty brackets. lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-parenthesis # Type: boolean Default: nil Defines space handling after opening/before closing non-empty parenthesis. lsp-typescript-format-insert-space-after-opening-and-before-closing-template-string-braces # Type: boolean Default: nil Defines space handling after opening/before closing template string braces. lsp-typescript-format-insert-space-after-semicolon-in-for-statements # Type: boolean Default: t Defines space handling after a semicolon in a for statement. lsp-typescript-format-insert-space-after-type-assertion # Type: boolean Default: nil Defines space handling after type assertions in TypeScript. Requires using TypeScript 2.4 or newer in the workspace. lsp-typescript-format-insert-space-before-and-after-binary-operators # Type: boolean Default: t Defines space handling after a binary operator. lsp-typescript-format-insert-space-before-function-parenthesis # Type: boolean Default: nil Defines space handling before function argument parentheses. lsp-typescript-format-place-open-brace-on-new-line-for-control-blocks # Type: boolean Default: nil Defines whether an open brace is put onto a newline for control blocks. lsp-typescript-format-place-open-brace-on-new-line-for-functions # Type: boolean Default: nil Defines whether an open brace is put onto a new line for functions or not. lsp-typescript-locale # Type: (choice (const de) (const es) (const en) (const fr) (const it) (const ja) (const ko) (const ru) (const zh-CN) (const zh-TW) nil) Default: nil lsp-typescript-preferences-import-module-specifier # Type: (choice (const auto) (const relative) (const non-relative)) Default: auto Infer the shortest path type. lsp-typescript-preferences-quote-style # Type: (choice (const auto) (const single) (const double)) Default: auto lsp-typescript-preferences-rename-shorthand-properties # Type: boolean Default: t Enable/disable introducing aliases for object shorthand properties during renames. Requires using TypeScript 3.4 or newer in the workspace. lsp-typescript-report-style-checks-as-warnings # Type: boolean Default: t Report style checks as warnings. lsp-typescript-suggest-auto-imports # Type: boolean Default: t Enable/disable auto import suggestions. Requires using TypeScript 2.6.1 or newer in the workspace. lsp-typescript-suggest-complete-function-calls # Type: boolean Default: nil Complete functions with their parameter signature. lsp-typescript-suggest-complete-js-docs # Type: boolean Default: t Enable/disable suggestion to complete JSDoc comments. lsp-typescript-suggest-enabled # Type: boolean Default: t Enabled/disable autocomplete suggestions. lsp-typescript-suggest-paths # Type: boolean Default: t Enable/disable suggestions for paths in import statements and require calls. lsp-typescript-suggestion-actions-enabled # Type: boolean Default: t Enable/disable suggestion diagnostics for TypeScript files in the editor. Requires using TypeScript 2.8 or newer in the workspace. lsp-typescript-surveys-enabled # Type: boolean Default: t Enabled/disable occasional surveys that help us improve VS Code`s JavaScript and TypeScript support. lsp-typescript-tsc-auto-detect # Type: (choice (const on) (const off) (const build) (const watch)) Default: on Controls auto detection of tsc tasks. lsp-typescript-tsserver-plugin-paths # Type: (repeat string) Default: nil Additional paths to discover Typescript Language Service plugins. Requires using TypeScript 2.3.0 or newer in the workspace. lsp-typescript-tsserver-trace # Type: (choice (const off) (const messages) (const verbose)) Default: off Enables tracing of messages sent to the TS server. This trace can be used to diagnose TS Server issues. The trace may contain file paths, source code, and other potentially sensitive information from your project. lsp-typescript-update-imports-on-file-move-enabled # Type: (choice (const prompt) (const always) (const never)) Default: prompt Enable/disable automatic updating of import paths when you rename or move a file in VS Code. Requires using TypeScript 2.9 or newer in the workspace. lsp-typescript-validate-enable # Type: boolean Default: t Enable/disable TypeScript validation.","title":"JavaScript/TypeScript (theia-ide)"},{"location":"page/lsp-typescript/#javascripttypescript-recommended","text":"","title":"JavaScript/TypeScript (RECOMMENDED)"},{"location":"page/lsp-typescript/#server","text":"For more information about the LSP server, check typescript-language-server (formerly theia-ide / TypeFox) .","title":"Server"},{"location":"page/lsp-typescript/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET ts-ls RET . npm i -g typescript-language-server; npm i -g typescript","title":"Installation"},{"location":"page/lsp-typescript/#debugger-yes-firefoxchrome","text":"","title":"Debugger: Yes (Firefox/Chrome)"},{"location":"page/lsp-typescript/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-typescript/#lsp-clients-typescript-disable-automatic-typing-acquisition","text":"Type: boolean Default: nil Disable tsserver from automatically fetching missing type definitions. (@types packages) for external modules.","title":"lsp-clients-typescript-disable-automatic-typing-acquisition"},{"location":"page/lsp-typescript/#lsp-clients-typescript-log-verbosity","text":"Type: (choice (const off) (const terse) (const normal) (const requesttime) (const verbose)) Default: info The verbosity level of the information printed in the log by tsserver.","title":"lsp-clients-typescript-log-verbosity"},{"location":"page/lsp-typescript/#lsp-clients-typescript-max-ts-server-memory","text":"Type: integer Default: nil The maximum size of the V8`s old memory section in megabytes. (for example 4096 means 4GB). The default value is dynamically configured by Node so can differ per system. Increase for very big projects that exceed allowed memory usage.","title":"lsp-clients-typescript-max-ts-server-memory"},{"location":"page/lsp-typescript/#lsp-clients-typescript-npm-location","text":"Type: string Default: nil Specifies the path to the NPM exec used for Automatic Type Acquisition.","title":"lsp-clients-typescript-npm-location"},{"location":"page/lsp-typescript/#lsp-clients-typescript-plugins","text":"Type: (restricted-sexp :tag Vector :match-alternatives (lambda (xs) (and (vectorp xs) (seq-every-p (-lambda ((&plist :name :location)) (and name location)) xs)))) Default: [] The list of plugins to load. It should be a vector of plist with keys :location and :name where :name is the name of the package and :location is the directory containing the package. Example: (vector (list :name \"@vsintellicode/typescript-intellicode-plugin\" :location \" .vscode/extensions/visualstudioexptteam. vscodeintellicode-1.1.9/\"))","title":"lsp-clients-typescript-plugins"},{"location":"page/lsp-typescript/#lsp-clients-typescript-prefer-use-project-ts-server","text":"Type: boolean Default: nil When set, prefers using the tsserver.js from your project. This can allow loading plugins configured in your tsconfig.json.","title":"lsp-clients-typescript-prefer-use-project-ts-server"},{"location":"page/lsp-typescript/#lsp-clients-typescript-preferences","text":"Type: plist Default: nil Preferences passed to the Typescript (tsserver) process. See https://github.com/typescript-language-server/typescript-language-server#initializationoptions for the list of preferences available in the latest version of TypeScript.","title":"lsp-clients-typescript-preferences"},{"location":"page/lsp-typescript/#lsp-clients-typescript-server-args","text":"Type: (repeat string) Default: (--stdio) Extra arguments for the typescript-language-server language server.","title":"lsp-clients-typescript-server-args"},{"location":"page/lsp-typescript/#lsp-clients-typescript-tls-path","text":"Type: string Default: typescript-language-server Path to the typescript-language-server binary.","title":"lsp-clients-typescript-tls-path"},{"location":"page/lsp-typescript/#lsp-clients-typescript-tsserver","text":"Type: plist Default: nil Options related to the tsserver process. See below for more info. See https://github.com/typescript-language-server/typescript-language-server#initializationoptions for the list of tsserver available in the latest version of TypeScript.","title":"lsp-clients-typescript-tsserver"},{"location":"page/lsp-typescript/#lsp-javascript-auto-closing-tags","text":"Type: boolean Default: t Enable/disable automatic closing of JSX tags. Requires using TypeScript 3.0 or newer in the workspace.","title":"lsp-javascript-auto-closing-tags"},{"location":"page/lsp-typescript/#lsp-javascript-completions-complete-function-calls","text":"Type: boolean Default: t Complete function calls.","title":"lsp-javascript-completions-complete-function-calls"},{"location":"page/lsp-typescript/#lsp-javascript-display-enum-member-value-hints","text":"Type: boolean Default: nil Show inlay hints for enum member values.","title":"lsp-javascript-display-enum-member-value-hints"},{"location":"page/lsp-typescript/#lsp-javascript-display-parameter-name-hints","text":"Type: (choice (const :tag none none) (const :tag literals literals) (const :tag all all)) Default: none Level of hinting for parameter types.","title":"lsp-javascript-display-parameter-name-hints"},{"location":"page/lsp-typescript/#lsp-javascript-display-parameter-name-hints-when-argument-matches-name","text":"Type: boolean Default: nil Show inlay hints for function parameters even when argument matches name (e.g. data variable passed as data parameter).","title":"lsp-javascript-display-parameter-name-hints-when-argument-matches-name"},{"location":"page/lsp-typescript/#lsp-javascript-display-parameter-type-hints","text":"Type: boolean Default: nil Show inlay hints for function parameters.","title":"lsp-javascript-display-parameter-type-hints"},{"location":"page/lsp-typescript/#lsp-javascript-display-property-declaration-type-hints","text":"Type: boolean Default: nil Show inlay hints for property declaration types.","title":"lsp-javascript-display-property-declaration-type-hints"},{"location":"page/lsp-typescript/#lsp-javascript-display-return-type-hints","text":"Type: boolean Default: nil Show inlay hints for function return types.","title":"lsp-javascript-display-return-type-hints"},{"location":"page/lsp-typescript/#lsp-javascript-display-variable-type-hints","text":"Type: boolean Default: nil Show inlay hints for variable types.","title":"lsp-javascript-display-variable-type-hints"},{"location":"page/lsp-typescript/#lsp-javascript-format-enable","text":"Type: boolean Default: t Enable/disable default JavaScript formatter.","title":"lsp-javascript-format-enable"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-comma-delimiter","text":"Type: boolean Default: t Defines space handling after a comma delimiter.","title":"lsp-javascript-format-insert-space-after-comma-delimiter"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-constructor","text":"Type: boolean Default: nil Defines space handling after the constructor keyword. Requires using TypeScript 2.3.0 or newer in the workspace.","title":"lsp-javascript-format-insert-space-after-constructor"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-function-keyword-for-anonymous-functions","text":"Type: boolean Default: t Defines space handling after function keyword for anonymous functions.","title":"lsp-javascript-format-insert-space-after-function-keyword-for-anonymous-functions"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-keywords-in-control-flow-statements","text":"Type: boolean Default: t Defines space handling after keywords in a control flow statement.","title":"lsp-javascript-format-insert-space-after-keywords-in-control-flow-statements"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-opening-and-before-closing-empty-braces","text":"Type: boolean Default: nil Defines space handling after opening/before closing empty braces.","title":"lsp-javascript-format-insert-space-after-opening-and-before-closing-empty-braces"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-opening-and-before-closing-jsx-expression-braces","text":"Type: boolean Default: nil Defines space handling after opening/before closing JSX expression braces.","title":"lsp-javascript-format-insert-space-after-opening-and-before-closing-jsx-expression-braces"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-braces","text":"Type: boolean Default: t Defines space handling after opening and before closing non-empty braces. Requires using TypeScript 2.3.0 or newer in the workspace.","title":"lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-braces"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-brackets","text":"Type: boolean Default: nil Defines space handling after opening and before closing non-empty brackets.","title":"lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-brackets"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-parenthesis","text":"Type: boolean Default: nil Defines space handling after opening and before closing non-empty parenthesis.","title":"lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-parenthesis"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-opening-and-before-closing-template-string-braces","text":"Type: boolean Default: nil Defines space handling after opening/before closing template string braces.","title":"lsp-javascript-format-insert-space-after-opening-and-before-closing-template-string-braces"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-semicolon-in-for-statements","text":"Type: boolean Default: t Defines space handling after a semicolon in a for statement.","title":"lsp-javascript-format-insert-space-after-semicolon-in-for-statements"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-before-and-after-binary-operators","text":"Type: boolean Default: t Defines space handling after a binary operator.","title":"lsp-javascript-format-insert-space-before-and-after-binary-operators"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-before-function-parenthesis","text":"Type: boolean Default: nil Defines space handling before function argument parentheses.","title":"lsp-javascript-format-insert-space-before-function-parenthesis"},{"location":"page/lsp-typescript/#lsp-javascript-format-place-open-brace-on-new-line-for-control-blocks","text":"Type: boolean Default: nil Defines whether an open brace is put onto a new line for control blocks or not.","title":"lsp-javascript-format-place-open-brace-on-new-line-for-control-blocks"},{"location":"page/lsp-typescript/#lsp-javascript-format-place-open-brace-on-new-line-for-functions","text":"Type: boolean Default: nil Defines whether an open brace is put onto a new line for functions or not.","title":"lsp-javascript-format-place-open-brace-on-new-line-for-functions"},{"location":"page/lsp-typescript/#lsp-javascript-implicit-project-config-check-js","text":"Type: boolean Default: nil Enable/disable semantic checking of JavaScript files. Existing jsconfig.json or tsconfig.json files override this setting. Requires using TypeScript 2.3.1 or newer in the workspace.","title":"lsp-javascript-implicit-project-config-check-js"},{"location":"page/lsp-typescript/#lsp-javascript-implicit-project-config-experimental-decorators","text":"Type: boolean Default: nil","title":"lsp-javascript-implicit-project-config-experimental-decorators"},{"location":"page/lsp-typescript/#lsp-javascript-preferences-import-module-specifier","text":"Type: (choice (const auto) (const relative) (const non-relative)) Default: auto Preferred path style for auto imports.","title":"lsp-javascript-preferences-import-module-specifier"},{"location":"page/lsp-typescript/#lsp-javascript-preferences-quote-style","text":"Type: (choice (const auto) (const single) (const double)) Default: auto","title":"lsp-javascript-preferences-quote-style"},{"location":"page/lsp-typescript/#lsp-javascript-preferences-rename-shorthand-properties","text":"Type: boolean Default: t Enable/disable introducing aliases for object shorthand properties during renames. Requires using TypeScript 3.4 or newer in the workspace.","title":"lsp-javascript-preferences-rename-shorthand-properties"},{"location":"page/lsp-typescript/#lsp-javascript-suggest-auto-imports","text":"Type: boolean Default: t Enable/disable auto import suggestions. Requires using TypeScript 2.6.1 or newer in the workspace.","title":"lsp-javascript-suggest-auto-imports"},{"location":"page/lsp-typescript/#lsp-javascript-suggest-complete-function-calls","text":"Type: boolean Default: nil Complete functions with their parameter signature.","title":"lsp-javascript-suggest-complete-function-calls"},{"location":"page/lsp-typescript/#lsp-javascript-suggest-complete-js-docs","text":"Type: boolean Default: t Enable/disable suggestion to complete JSDoc comments.","title":"lsp-javascript-suggest-complete-js-docs"},{"location":"page/lsp-typescript/#lsp-javascript-suggest-enabled","text":"Type: boolean Default: t Enabled/disable autocomplete suggestions.","title":"lsp-javascript-suggest-enabled"},{"location":"page/lsp-typescript/#lsp-javascript-suggest-names","text":"Type: boolean Default: t Enable/disable including unique names from the file in JavaScript suggestions.","title":"lsp-javascript-suggest-names"},{"location":"page/lsp-typescript/#lsp-javascript-suggest-paths","text":"Type: boolean Default: t Enable/disable suggestions for paths in import statements and require calls.","title":"lsp-javascript-suggest-paths"},{"location":"page/lsp-typescript/#lsp-javascript-suggestion-actions-enabled","text":"Type: boolean Default: t Enable/disable suggestion diagnostics for JavaScript files in the editor. Requires using TypeScript 2.8 or newer in the workspace.","title":"lsp-javascript-suggestion-actions-enabled"},{"location":"page/lsp-typescript/#lsp-javascript-update-imports-on-file-move-enabled","text":"Type: (choice (const prompt) (const always) (const never)) Default: prompt Prompt on each rename.","title":"lsp-javascript-update-imports-on-file-move-enabled"},{"location":"page/lsp-typescript/#lsp-javascript-validate-enable","text":"Type: boolean Default: t Enable/disable JavaScript validation.","title":"lsp-javascript-validate-enable"},{"location":"page/lsp-typescript/#lsp-typescript-auto-closing-tags","text":"Type: boolean Default: t Enable/disable automatic closing of JSX tags. Requires using TypeScript 3.0 or newer in the workspace.","title":"lsp-typescript-auto-closing-tags"},{"location":"page/lsp-typescript/#lsp-typescript-format-enable","text":"Type: boolean Default: t Enable/disable default TypeScript formatter.","title":"lsp-typescript-format-enable"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-comma-delimiter","text":"Type: boolean Default: t Defines space handling after a comma delimiter.","title":"lsp-typescript-format-insert-space-after-comma-delimiter"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-constructor","text":"Type: boolean Default: nil Defines space handling after the constructor keyword. Requires using TypeScript 2.3.0 or newer in the workspace.","title":"lsp-typescript-format-insert-space-after-constructor"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-function-keyword-for-anonymous-functions","text":"Type: boolean Default: t Defines space handling after function keyword for anonymous functions.","title":"lsp-typescript-format-insert-space-after-function-keyword-for-anonymous-functions"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-keywords-in-control-flow-statements","text":"Type: boolean Default: t Defines space handling after keywords in a control flow statement.","title":"lsp-typescript-format-insert-space-after-keywords-in-control-flow-statements"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-opening-and-before-closing-empty-braces","text":"Type: boolean Default: nil Defines space handling after opening/before closing empty braces.","title":"lsp-typescript-format-insert-space-after-opening-and-before-closing-empty-braces"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-opening-and-before-closing-jsx-expression-braces","text":"Type: boolean Default: nil Defines space handling after opening/before closing JSX expression braces.","title":"lsp-typescript-format-insert-space-after-opening-and-before-closing-jsx-expression-braces"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-braces","text":"Type: boolean Default: t Defines space handling after opening and before closing non-empty braces. Requires using TypeScript 2.3.0 or newer in the workspace.","title":"lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-braces"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-brackets","text":"Type: boolean Default: nil Defines space handling after opening and before closing non-empty brackets.","title":"lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-brackets"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-parenthesis","text":"Type: boolean Default: nil Defines space handling after opening/before closing non-empty parenthesis.","title":"lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-parenthesis"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-opening-and-before-closing-template-string-braces","text":"Type: boolean Default: nil Defines space handling after opening/before closing template string braces.","title":"lsp-typescript-format-insert-space-after-opening-and-before-closing-template-string-braces"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-semicolon-in-for-statements","text":"Type: boolean Default: t Defines space handling after a semicolon in a for statement.","title":"lsp-typescript-format-insert-space-after-semicolon-in-for-statements"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-type-assertion","text":"Type: boolean Default: nil Defines space handling after type assertions in TypeScript. Requires using TypeScript 2.4 or newer in the workspace.","title":"lsp-typescript-format-insert-space-after-type-assertion"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-before-and-after-binary-operators","text":"Type: boolean Default: t Defines space handling after a binary operator.","title":"lsp-typescript-format-insert-space-before-and-after-binary-operators"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-before-function-parenthesis","text":"Type: boolean Default: nil Defines space handling before function argument parentheses.","title":"lsp-typescript-format-insert-space-before-function-parenthesis"},{"location":"page/lsp-typescript/#lsp-typescript-format-place-open-brace-on-new-line-for-control-blocks","text":"Type: boolean Default: nil Defines whether an open brace is put onto a newline for control blocks.","title":"lsp-typescript-format-place-open-brace-on-new-line-for-control-blocks"},{"location":"page/lsp-typescript/#lsp-typescript-format-place-open-brace-on-new-line-for-functions","text":"Type: boolean Default: nil Defines whether an open brace is put onto a new line for functions or not.","title":"lsp-typescript-format-place-open-brace-on-new-line-for-functions"},{"location":"page/lsp-typescript/#lsp-typescript-locale","text":"Type: (choice (const de) (const es) (const en) (const fr) (const it) (const ja) (const ko) (const ru) (const zh-CN) (const zh-TW) nil) Default: nil","title":"lsp-typescript-locale"},{"location":"page/lsp-typescript/#lsp-typescript-preferences-import-module-specifier","text":"Type: (choice (const auto) (const relative) (const non-relative)) Default: auto Infer the shortest path type.","title":"lsp-typescript-preferences-import-module-specifier"},{"location":"page/lsp-typescript/#lsp-typescript-preferences-quote-style","text":"Type: (choice (const auto) (const single) (const double)) Default: auto","title":"lsp-typescript-preferences-quote-style"},{"location":"page/lsp-typescript/#lsp-typescript-preferences-rename-shorthand-properties","text":"Type: boolean Default: t Enable/disable introducing aliases for object shorthand properties during renames. Requires using TypeScript 3.4 or newer in the workspace.","title":"lsp-typescript-preferences-rename-shorthand-properties"},{"location":"page/lsp-typescript/#lsp-typescript-report-style-checks-as-warnings","text":"Type: boolean Default: t Report style checks as warnings.","title":"lsp-typescript-report-style-checks-as-warnings"},{"location":"page/lsp-typescript/#lsp-typescript-suggest-auto-imports","text":"Type: boolean Default: t Enable/disable auto import suggestions. Requires using TypeScript 2.6.1 or newer in the workspace.","title":"lsp-typescript-suggest-auto-imports"},{"location":"page/lsp-typescript/#lsp-typescript-suggest-complete-function-calls","text":"Type: boolean Default: nil Complete functions with their parameter signature.","title":"lsp-typescript-suggest-complete-function-calls"},{"location":"page/lsp-typescript/#lsp-typescript-suggest-complete-js-docs","text":"Type: boolean Default: t Enable/disable suggestion to complete JSDoc comments.","title":"lsp-typescript-suggest-complete-js-docs"},{"location":"page/lsp-typescript/#lsp-typescript-suggest-enabled","text":"Type: boolean Default: t Enabled/disable autocomplete suggestions.","title":"lsp-typescript-suggest-enabled"},{"location":"page/lsp-typescript/#lsp-typescript-suggest-paths","text":"Type: boolean Default: t Enable/disable suggestions for paths in import statements and require calls.","title":"lsp-typescript-suggest-paths"},{"location":"page/lsp-typescript/#lsp-typescript-suggestion-actions-enabled","text":"Type: boolean Default: t Enable/disable suggestion diagnostics for TypeScript files in the editor. Requires using TypeScript 2.8 or newer in the workspace.","title":"lsp-typescript-suggestion-actions-enabled"},{"location":"page/lsp-typescript/#lsp-typescript-surveys-enabled","text":"Type: boolean Default: t Enabled/disable occasional surveys that help us improve VS Code`s JavaScript and TypeScript support.","title":"lsp-typescript-surveys-enabled"},{"location":"page/lsp-typescript/#lsp-typescript-tsc-auto-detect","text":"Type: (choice (const on) (const off) (const build) (const watch)) Default: on Controls auto detection of tsc tasks.","title":"lsp-typescript-tsc-auto-detect"},{"location":"page/lsp-typescript/#lsp-typescript-tsserver-plugin-paths","text":"Type: (repeat string) Default: nil Additional paths to discover Typescript Language Service plugins. Requires using TypeScript 2.3.0 or newer in the workspace.","title":"lsp-typescript-tsserver-plugin-paths"},{"location":"page/lsp-typescript/#lsp-typescript-tsserver-trace","text":"Type: (choice (const off) (const messages) (const verbose)) Default: off Enables tracing of messages sent to the TS server. This trace can be used to diagnose TS Server issues. The trace may contain file paths, source code, and other potentially sensitive information from your project.","title":"lsp-typescript-tsserver-trace"},{"location":"page/lsp-typescript/#lsp-typescript-update-imports-on-file-move-enabled","text":"Type: (choice (const prompt) (const always) (const never)) Default: prompt Enable/disable automatic updating of import paths when you rename or move a file in VS Code. Requires using TypeScript 2.9 or newer in the workspace.","title":"lsp-typescript-update-imports-on-file-move-enabled"},{"location":"page/lsp-typescript/#lsp-typescript-validate-enable","text":"Type: boolean Default: t Enable/disable TypeScript validation.","title":"lsp-typescript-validate-enable"},{"location":"page/lsp-v/","text":"V # Server # For more information about the LSP server, check vls . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-v-vls-executable # Type: string Default: vls The vls executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path .","title":"V"},{"location":"page/lsp-v/#v","text":"","title":"V"},{"location":"page/lsp-v/#server","text":"For more information about the LSP server, check vls .","title":"Server"},{"location":"page/lsp-v/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-v/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-v/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-v/#lsp-v-vls-executable","text":"Type: string Default: vls The vls executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path .","title":"lsp-v-vls-executable"},{"location":"page/lsp-vala/","text":"Vala # Server # For more information about the LSP server, check vala-language-server . Installation # meson build && ninja -C build install Debugger: Not available # Available configurations # lsp-clients-vala-ls-executable # Type: file Default: vala-language-server Path to the vala-language-server binary.","title":"Vala"},{"location":"page/lsp-vala/#vala","text":"","title":"Vala"},{"location":"page/lsp-vala/#server","text":"For more information about the LSP server, check vala-language-server .","title":"Server"},{"location":"page/lsp-vala/#installation","text":"meson build && ninja -C build install","title":"Installation"},{"location":"page/lsp-vala/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-vala/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-vala/#lsp-clients-vala-ls-executable","text":"Type: file Default: vala-language-server Path to the vala-language-server binary.","title":"lsp-clients-vala-ls-executable"},{"location":"page/lsp-verilog/","text":"Verilog/SystemVerilog # Server # For more information about the LSP server, check hdl_checker . Installation # pip install hdl-checker --upgrade Debugger: Not available # Available configurations # lsp-clients-verilog-executable # Type: file Default: (hdl_checker --lsp) Command to start the hdl_checker language server. lsp-clients-verilog-executable # Type: file Default: (hdl_checker --lsp) Command to start the hdl_checker language server.","title":"Verilog/SystemVerilog (hdl-checker)"},{"location":"page/lsp-verilog/#verilogsystemverilog","text":"","title":"Verilog/SystemVerilog"},{"location":"page/lsp-verilog/#server","text":"For more information about the LSP server, check hdl_checker .","title":"Server"},{"location":"page/lsp-verilog/#installation","text":"pip install hdl-checker --upgrade","title":"Installation"},{"location":"page/lsp-verilog/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-verilog/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-verilog/#lsp-clients-verilog-executable","text":"Type: file Default: (hdl_checker --lsp) Command to start the hdl_checker language server.","title":"lsp-clients-verilog-executable"},{"location":"page/lsp-verilog/#lsp-clients-verilog-executable_1","text":"Type: file Default: (hdl_checker --lsp) Command to start the hdl_checker language server.","title":"lsp-clients-verilog-executable"},{"location":"page/lsp-vetur/","text":"Vue 2 # Server # For more information about the LSP server, check vue-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET vls RET . npm install -g vls Debugger: Yes (Firefox/Chrome) # Available configurations # lsp-javascript-references-code-lens-enabled # Type: boolean Default: nil Enable/disable references CodeLens in JavaScript files. lsp-typescript-check-npm-is-installed # Type: boolean Default: t Check if NPM is installed for Automatic Type Acquisition. lsp-typescript-disable-automatic-type-acquisition # Type: boolean Default: nil Disables automatic type acquisition. Automatic type acquisition fetches @types packages from npm to improve IntelliSense for external libraries. lsp-typescript-implementations-code-lens-enabled # Type: boolean Default: nil Enable/disable implementations CodeLens. This CodeLens shows the implementers of an interface. lsp-typescript-npm # Type: (repeat string) Default: nil Specifies the path to the NPM exec used for Automatic Type Acquisition. Requires using TypeScript 2.3.4 or newer in the workspace. lsp-typescript-references-code-lens-enabled # Type: boolean Default: nil Enable/disable references CodeLens in TypeScript files. lsp-typescript-tsdk # Type: (repeat string) Default: nil Specifies the folder path containing tsserver and lib*.d.ts files to use. lsp-typescript-tsserver-log # Type: (choice (const off) (const terse) (const normal) (const verbose)) Default: off Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project. lsp-vetur-completion-auto-import # Type: boolean Default: t Include completion for module export and auto import them lsp-vetur-completion-scaffold-snippet-sources # Type: alist Default: ((workspace . (W)) (user . (U)) (vetur . (V))) Where Vetur source Scaffold Snippets from and how to indicate them. - workspace: /.vscode/vetur/snippets. - user: /User/snippets/vetur. - vetur: Bundled in Vetur. The source value can be a string \"(User)\" or an emoji \"\u270c\". Set a source to \"\" to disable it. lsp-vetur-completion-tag-casing # Type: (choice (const initial) (const kebab)) Default: kebab Casing conversion for tag completion lsp-vetur-dev-log-level # Type: (choice (const INFO) (const DEBUG)) Default: INFO The vls log level for development lsp-vetur-dev-vls-path # Type: string Default: `` The vls path for development lsp-vetur-dev-vls-port # Type: integer Default: -1 The vls port for development lsp-vetur-emmet # Type: (choice (const never) (const inMarkupAndStylesheetFilesOnly) (const always)) Default: never Controls the Emmet suggestions that show up in the suggestion/completion list. lsp-vetur-experimental-template-interpolation-service # Type: boolean Default: nil Whether to have template interpolation service lsp-vetur-format-default-formatter-css # Type: (choice (const none) (const prettier)) Default: prettier Default formatter for","title":"Vue 2"},{"location":"page/lsp-vetur/#vue-2","text":"","title":"Vue 2"},{"location":"page/lsp-vetur/#server","text":"For more information about the LSP server, check vue-language-server .","title":"Server"},{"location":"page/lsp-vetur/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET vls RET . npm install -g vls","title":"Installation"},{"location":"page/lsp-vetur/#debugger-yes-firefoxchrome","text":"","title":"Debugger: Yes (Firefox/Chrome)"},{"location":"page/lsp-vetur/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-vetur/#lsp-javascript-references-code-lens-enabled","text":"Type: boolean Default: nil Enable/disable references CodeLens in JavaScript files.","title":"lsp-javascript-references-code-lens-enabled"},{"location":"page/lsp-vetur/#lsp-typescript-check-npm-is-installed","text":"Type: boolean Default: t Check if NPM is installed for Automatic Type Acquisition.","title":"lsp-typescript-check-npm-is-installed"},{"location":"page/lsp-vetur/#lsp-typescript-disable-automatic-type-acquisition","text":"Type: boolean Default: nil Disables automatic type acquisition. Automatic type acquisition fetches @types packages from npm to improve IntelliSense for external libraries.","title":"lsp-typescript-disable-automatic-type-acquisition"},{"location":"page/lsp-vetur/#lsp-typescript-implementations-code-lens-enabled","text":"Type: boolean Default: nil Enable/disable implementations CodeLens. This CodeLens shows the implementers of an interface.","title":"lsp-typescript-implementations-code-lens-enabled"},{"location":"page/lsp-vetur/#lsp-typescript-npm","text":"Type: (repeat string) Default: nil Specifies the path to the NPM exec used for Automatic Type Acquisition. Requires using TypeScript 2.3.4 or newer in the workspace.","title":"lsp-typescript-npm"},{"location":"page/lsp-vetur/#lsp-typescript-references-code-lens-enabled","text":"Type: boolean Default: nil Enable/disable references CodeLens in TypeScript files.","title":"lsp-typescript-references-code-lens-enabled"},{"location":"page/lsp-vetur/#lsp-typescript-tsdk","text":"Type: (repeat string) Default: nil Specifies the folder path containing tsserver and lib*.d.ts files to use.","title":"lsp-typescript-tsdk"},{"location":"page/lsp-vetur/#lsp-typescript-tsserver-log","text":"Type: (choice (const off) (const terse) (const normal) (const verbose)) Default: off Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","title":"lsp-typescript-tsserver-log"},{"location":"page/lsp-vetur/#lsp-vetur-completion-auto-import","text":"Type: boolean Default: t Include completion for module export and auto import them","title":"lsp-vetur-completion-auto-import"},{"location":"page/lsp-vetur/#lsp-vetur-completion-scaffold-snippet-sources","text":"Type: alist Default: ((workspace . (W)) (user . (U)) (vetur . (V))) Where Vetur source Scaffold Snippets from and how to indicate them. - workspace: /.vscode/vetur/snippets. - user: /User/snippets/vetur. - vetur: Bundled in Vetur. The source value can be a string \"(User)\" or an emoji \"\u270c\". Set a source to \"\" to disable it.","title":"lsp-vetur-completion-scaffold-snippet-sources"},{"location":"page/lsp-vetur/#lsp-vetur-completion-tag-casing","text":"Type: (choice (const initial) (const kebab)) Default: kebab Casing conversion for tag completion","title":"lsp-vetur-completion-tag-casing"},{"location":"page/lsp-vetur/#lsp-vetur-dev-log-level","text":"Type: (choice (const INFO) (const DEBUG)) Default: INFO The vls log level for development","title":"lsp-vetur-dev-log-level"},{"location":"page/lsp-vetur/#lsp-vetur-dev-vls-path","text":"Type: string Default: `` The vls path for development","title":"lsp-vetur-dev-vls-path"},{"location":"page/lsp-vetur/#lsp-vetur-dev-vls-port","text":"Type: integer Default: -1 The vls port for development","title":"lsp-vetur-dev-vls-port"},{"location":"page/lsp-vetur/#lsp-vetur-emmet","text":"Type: (choice (const never) (const inMarkupAndStylesheetFilesOnly) (const always)) Default: never Controls the Emmet suggestions that show up in the suggestion/completion list.","title":"lsp-vetur-emmet"},{"location":"page/lsp-vetur/#lsp-vetur-experimental-template-interpolation-service","text":"Type: boolean Default: nil Whether to have template interpolation service","title":"lsp-vetur-experimental-template-interpolation-service"},{"location":"page/lsp-vetur/#lsp-vetur-format-default-formatter-css","text":"Type: (choice (const none) (const prettier)) Default: prettier Default formatter for","title":"lsp-vetur-format-default-formatter-css"},{"location":"page/lsp-vhdl/","text":"VHDL # Server # For more information about the LSP server, check VHDL Tool . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-vhdl-server # Type: (choice (const :tag VHDL-tool vhdl-tool) (const :tag HDL Checker hdl-checker) (const :tag VHDL LS vhdl-ls) (const :tag GHDL LS ghdl-ls)) Default: vhdl-tool Select which server to use: VHDL-tool: A syntax checking, type checking and linting tool (http://vhdltool.com). HDL Checker: A wrapper for third party tools such as GHDL, ModelSim, Vivado Simulator (https://github.com/suoto/hdl_checker). VHDL LS: A complete VHDL language server protocol implementation with diagnostics, navigate to symbol, find all references etc (https://github.com/VHDL-LS/rust_hdl). GHDL LS: A LSP server for VHDL based on GHDL (https://github.com/ghdl/ghdl-language-server). lsp-vhdl-server-path # Type: file Default: nil Path to binary server file.","title":"VHDL"},{"location":"page/lsp-vhdl/#vhdl","text":"","title":"VHDL"},{"location":"page/lsp-vhdl/#server","text":"For more information about the LSP server, check VHDL Tool .","title":"Server"},{"location":"page/lsp-vhdl/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-vhdl/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-vhdl/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-vhdl/#lsp-vhdl-server","text":"Type: (choice (const :tag VHDL-tool vhdl-tool) (const :tag HDL Checker hdl-checker) (const :tag VHDL LS vhdl-ls) (const :tag GHDL LS ghdl-ls)) Default: vhdl-tool Select which server to use: VHDL-tool: A syntax checking, type checking and linting tool (http://vhdltool.com). HDL Checker: A wrapper for third party tools such as GHDL, ModelSim, Vivado Simulator (https://github.com/suoto/hdl_checker). VHDL LS: A complete VHDL language server protocol implementation with diagnostics, navigate to symbol, find all references etc (https://github.com/VHDL-LS/rust_hdl). GHDL LS: A LSP server for VHDL based on GHDL (https://github.com/ghdl/ghdl-language-server).","title":"lsp-vhdl-server"},{"location":"page/lsp-vhdl/#lsp-vhdl-server-path","text":"Type: file Default: nil Path to binary server file.","title":"lsp-vhdl-server-path"},{"location":"page/lsp-vimscript/","text":"Vimscript # Server # For more information about the LSP server, check vim-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET vimls RET . npm install -g vim-language-server Debugger: n/a # Available configurations #","title":"Vimscript"},{"location":"page/lsp-vimscript/#vimscript","text":"","title":"Vimscript"},{"location":"page/lsp-vimscript/#server","text":"For more information about the LSP server, check vim-language-server .","title":"Server"},{"location":"page/lsp-vimscript/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET vimls RET . npm install -g vim-language-server","title":"Installation"},{"location":"page/lsp-vimscript/#debugger-na","text":"","title":"Debugger: n/a"},{"location":"page/lsp-vimscript/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-volar/","text":"Vue 3 # Server # For more information about the LSP server, check volar-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET vue-semantic-server RET . npm install -g @volar/vue-language-server Debugger: Not available # Available configurations # lsp-volar-activate-file # Type: string Default: .volarrc A file with a custom name placed in WORKSPACE-ROOT is used to force enable volar when there is no package.json in the WORKSPACE-ROOT. lsp-volar-take-over-mode # Type: boolean Default: t Enable Take Over Mode.","title":"Vue 3"},{"location":"page/lsp-volar/#vue-3","text":"","title":"Vue 3"},{"location":"page/lsp-volar/#server","text":"For more information about the LSP server, check volar-language-server .","title":"Server"},{"location":"page/lsp-volar/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET vue-semantic-server RET . npm install -g @volar/vue-language-server","title":"Installation"},{"location":"page/lsp-volar/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-volar/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-volar/#lsp-volar-activate-file","text":"Type: string Default: .volarrc A file with a custom name placed in WORKSPACE-ROOT is used to force enable volar when there is no package.json in the WORKSPACE-ROOT.","title":"lsp-volar-activate-file"},{"location":"page/lsp-volar/#lsp-volar-take-over-mode","text":"Type: boolean Default: t Enable Take Over Mode.","title":"lsp-volar-take-over-mode"},{"location":"page/lsp-xml/","text":"XML # Server # For more information about the LSP server, check lsp4xml . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET xmlls RET . Automatic by lsp-mode Debugger: Not available # Available configurations # lsp-xml-catalogs # Type: (repeat string) Default: nil Array of XML Catalogs lsp-xml-completion-auto-close-tags # Type: boolean Default: t Enable/disable autoclosing of XML tags. IMPORTANT: Turn off editor.autoClosingTags for this to work lsp-xml-file-associations # Type: (repeat string) Default: nil Allows XML schemas to be associated to file name patterns. Example: [{ \"systemId\":\"path/to/file.xsd\",\"pattern\": \"file1.xml\" },{ \"systemId\": \"http://www.w3.org/2001/XMLSchema.xsd\",\"pattern\": \"* / .xsd\" }] lsp-xml-format-closing-bracket-new-line # Type: boolean Default: nil Enable/disable moving the closing bracket. This only affects tags with two or more (split) attributes. lsp-xml-format-comments # Type: boolean Default: t Enable/disable comment formatting. lsp-xml-format-enabled # Type: boolean Default: t Enable/disable ability to format document lsp-xml-format-enforce-quote-style # Type: (choice (const ignore) (const preferred)) Default: ignore The way in which quote style should be enforced. lsp-xml-format-experimental # Type: boolean Default: nil Enable/disable experimental formatter. lsp-xml-format-grammar-aware-formatting # Type: boolean Default: t Enable/disable grammar aware formatting. This only affects the experimental formatter. lsp-xml-format-join-cdata-lines # Type: boolean Default: nil Join lines in a CDATA tag`s content lsp-xml-format-join-comment-lines # Type: boolean Default: nil Join comment content on format lsp-xml-format-join-content-lines # Type: boolean Default: nil Normalize the whitespace of content inside an element. Newlines and excess whitespace are removed. lsp-xml-format-max-line-width # Type: integer Default: 80 Max line width. This only applies to experimental formatter. lsp-xml-format-preserve-attribute-line-breaks # Type: boolean Default: t Enable/disable preserving line breaks in attributes. lsp-xml-format-preserve-empty-content # Type: boolean Default: nil Preserve empty content/whitespace in a tag. lsp-xml-format-preserve-space # Type: lsp-string-vector Default: [xsl:text xsl:comment xsl:processing-instruction literallayout programlisting screen synopsis pre xd:pre] List of elements which must preserve space. This option only affects the experimental formatter. lsp-xml-format-preserved-newlines # Type: integer Default: 2 The number of empty newlines to be preserved. lsp-xml-format-space-before-empty-close-tag # Type: boolean Default: t Insert space before end of self closing tag. Example: -> lsp-xml-format-split-attributes # Type: boolean Default: nil Split multiple attributes each onto a new line lsp-xml-format-split-attributes-indent-size # Type: integer Default: 2 The indentation used for split attributes. lsp-xml-format-xsi-schema-location-split # Type: (choice (const onElement) (const onPair) (const none)) Default: onPair XSI schema location split settings. lsp-xml-jar-download-url # Type: string Default: https://repo.eclipse.org/content/repositories/lemminx-releases/org/eclipse/lemminx/org.eclipse.lemminx/0.21.0/org.eclipse.lemminx-0.21.0-uber.jar Automatic download url for lsp-xml. lsp-xml-jar-file # Type: file Default: ~/.emacs.d/.cache/lsp/xmlls/org.eclipse.lemminx-0.21.0-uber.jar Xml server jar command. lsp-xml-logs-client # Type: boolean Default: t Should the server log to client output lsp-xml-preferences-quote-style # Type: (choice (const double) (const single)) Default: double The preferred quote style for attribute values. lsp-xml-server-command # Type: (repeat string) Default: (java -jar /home/runner/.emacs.d/.cache/lsp/xmlls/org.eclipse.lemminx-0.21.0-uber.jar) Xml server command. lsp-xml-server-vmargs # Type: lsp-string-vector Default: [-noverify -Xmx64M -XX:+UseG1GC -XX:+UseStringDeduplication] Specifies extra VM arguments used to launch the XML Language Server. Eg. use -noverify -Xmx1G -XX:+UseG1GC -XX:+UseStringDeduplication to bypass class verification, increase the heap size to 1GB and enable String deduplication with the G1 Garbage collector lsp-xml-server-work-dir # Type: string Default: /home/runner/.lsp4xml Set a custom folder path for cached XML Schemas. An absolute path is expected, although the ~ prefix (for the user home directory) is supported. lsp-xml-trace-server # Type: (choice (const off) (const messages) (const verbose)) Default: off Traces the communication between VS Code and the XML language server. lsp-xml-validation-enabled # Type: boolean Default: t Enable/disable all validation. lsp-xml-validation-no-grammar # Type: (choice (:tag ignore hint info warning error)) Default: hint The message severity when a document has no associated grammar. lsp-xml-validation-resolve-external-entities # Type: boolean Default: nil Enable/disable resolution (downloading) of external entities from the internet. lsp-xml-validation-schema # Type: alist Default: ((enabled . always)) The XML schema settings. The value for enabled can be always, never or onValidSchema.","title":"XML"},{"location":"page/lsp-xml/#xml","text":"","title":"XML"},{"location":"page/lsp-xml/#server","text":"For more information about the LSP server, check lsp4xml .","title":"Server"},{"location":"page/lsp-xml/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET xmlls RET . Automatic by lsp-mode","title":"Installation"},{"location":"page/lsp-xml/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-xml/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-xml/#lsp-xml-catalogs","text":"Type: (repeat string) Default: nil Array of XML Catalogs","title":"lsp-xml-catalogs"},{"location":"page/lsp-xml/#lsp-xml-completion-auto-close-tags","text":"Type: boolean Default: t Enable/disable autoclosing of XML tags. IMPORTANT: Turn off editor.autoClosingTags for this to work","title":"lsp-xml-completion-auto-close-tags"},{"location":"page/lsp-xml/#lsp-xml-file-associations","text":"Type: (repeat string) Default: nil Allows XML schemas to be associated to file name patterns. Example: [{ \"systemId\":\"path/to/file.xsd\",\"pattern\": \"file1.xml\" },{ \"systemId\": \"http://www.w3.org/2001/XMLSchema.xsd\",\"pattern\": \"* / .xsd\" }]","title":"lsp-xml-file-associations"},{"location":"page/lsp-xml/#lsp-xml-format-closing-bracket-new-line","text":"Type: boolean Default: nil Enable/disable moving the closing bracket. This only affects tags with two or more (split) attributes.","title":"lsp-xml-format-closing-bracket-new-line"},{"location":"page/lsp-xml/#lsp-xml-format-comments","text":"Type: boolean Default: t Enable/disable comment formatting.","title":"lsp-xml-format-comments"},{"location":"page/lsp-xml/#lsp-xml-format-enabled","text":"Type: boolean Default: t Enable/disable ability to format document","title":"lsp-xml-format-enabled"},{"location":"page/lsp-xml/#lsp-xml-format-enforce-quote-style","text":"Type: (choice (const ignore) (const preferred)) Default: ignore The way in which quote style should be enforced.","title":"lsp-xml-format-enforce-quote-style"},{"location":"page/lsp-xml/#lsp-xml-format-experimental","text":"Type: boolean Default: nil Enable/disable experimental formatter.","title":"lsp-xml-format-experimental"},{"location":"page/lsp-xml/#lsp-xml-format-grammar-aware-formatting","text":"Type: boolean Default: t Enable/disable grammar aware formatting. This only affects the experimental formatter.","title":"lsp-xml-format-grammar-aware-formatting"},{"location":"page/lsp-xml/#lsp-xml-format-join-cdata-lines","text":"Type: boolean Default: nil Join lines in a CDATA tag`s content","title":"lsp-xml-format-join-cdata-lines"},{"location":"page/lsp-xml/#lsp-xml-format-join-comment-lines","text":"Type: boolean Default: nil Join comment content on format","title":"lsp-xml-format-join-comment-lines"},{"location":"page/lsp-xml/#lsp-xml-format-join-content-lines","text":"Type: boolean Default: nil Normalize the whitespace of content inside an element. Newlines and excess whitespace are removed.","title":"lsp-xml-format-join-content-lines"},{"location":"page/lsp-xml/#lsp-xml-format-max-line-width","text":"Type: integer Default: 80 Max line width. This only applies to experimental formatter.","title":"lsp-xml-format-max-line-width"},{"location":"page/lsp-xml/#lsp-xml-format-preserve-attribute-line-breaks","text":"Type: boolean Default: t Enable/disable preserving line breaks in attributes.","title":"lsp-xml-format-preserve-attribute-line-breaks"},{"location":"page/lsp-xml/#lsp-xml-format-preserve-empty-content","text":"Type: boolean Default: nil Preserve empty content/whitespace in a tag.","title":"lsp-xml-format-preserve-empty-content"},{"location":"page/lsp-xml/#lsp-xml-format-preserve-space","text":"Type: lsp-string-vector Default: [xsl:text xsl:comment xsl:processing-instruction literallayout programlisting screen synopsis pre xd:pre] List of elements which must preserve space. This option only affects the experimental formatter.","title":"lsp-xml-format-preserve-space"},{"location":"page/lsp-xml/#lsp-xml-format-preserved-newlines","text":"Type: integer Default: 2 The number of empty newlines to be preserved.","title":"lsp-xml-format-preserved-newlines"},{"location":"page/lsp-xml/#lsp-xml-format-space-before-empty-close-tag","text":"Type: boolean Default: t Insert space before end of self closing tag. Example: ->","title":"lsp-xml-format-space-before-empty-close-tag"},{"location":"page/lsp-xml/#lsp-xml-format-split-attributes","text":"Type: boolean Default: nil Split multiple attributes each onto a new line","title":"lsp-xml-format-split-attributes"},{"location":"page/lsp-xml/#lsp-xml-format-split-attributes-indent-size","text":"Type: integer Default: 2 The indentation used for split attributes.","title":"lsp-xml-format-split-attributes-indent-size"},{"location":"page/lsp-xml/#lsp-xml-format-xsi-schema-location-split","text":"Type: (choice (const onElement) (const onPair) (const none)) Default: onPair XSI schema location split settings.","title":"lsp-xml-format-xsi-schema-location-split"},{"location":"page/lsp-xml/#lsp-xml-jar-download-url","text":"Type: string Default: https://repo.eclipse.org/content/repositories/lemminx-releases/org/eclipse/lemminx/org.eclipse.lemminx/0.21.0/org.eclipse.lemminx-0.21.0-uber.jar Automatic download url for lsp-xml.","title":"lsp-xml-jar-download-url"},{"location":"page/lsp-xml/#lsp-xml-jar-file","text":"Type: file Default: ~/.emacs.d/.cache/lsp/xmlls/org.eclipse.lemminx-0.21.0-uber.jar Xml server jar command.","title":"lsp-xml-jar-file"},{"location":"page/lsp-xml/#lsp-xml-logs-client","text":"Type: boolean Default: t Should the server log to client output","title":"lsp-xml-logs-client"},{"location":"page/lsp-xml/#lsp-xml-preferences-quote-style","text":"Type: (choice (const double) (const single)) Default: double The preferred quote style for attribute values.","title":"lsp-xml-preferences-quote-style"},{"location":"page/lsp-xml/#lsp-xml-server-command","text":"Type: (repeat string) Default: (java -jar /home/runner/.emacs.d/.cache/lsp/xmlls/org.eclipse.lemminx-0.21.0-uber.jar) Xml server command.","title":"lsp-xml-server-command"},{"location":"page/lsp-xml/#lsp-xml-server-vmargs","text":"Type: lsp-string-vector Default: [-noverify -Xmx64M -XX:+UseG1GC -XX:+UseStringDeduplication] Specifies extra VM arguments used to launch the XML Language Server. Eg. use -noverify -Xmx1G -XX:+UseG1GC -XX:+UseStringDeduplication to bypass class verification, increase the heap size to 1GB and enable String deduplication with the G1 Garbage collector","title":"lsp-xml-server-vmargs"},{"location":"page/lsp-xml/#lsp-xml-server-work-dir","text":"Type: string Default: /home/runner/.lsp4xml Set a custom folder path for cached XML Schemas. An absolute path is expected, although the ~ prefix (for the user home directory) is supported.","title":"lsp-xml-server-work-dir"},{"location":"page/lsp-xml/#lsp-xml-trace-server","text":"Type: (choice (const off) (const messages) (const verbose)) Default: off Traces the communication between VS Code and the XML language server.","title":"lsp-xml-trace-server"},{"location":"page/lsp-xml/#lsp-xml-validation-enabled","text":"Type: boolean Default: t Enable/disable all validation.","title":"lsp-xml-validation-enabled"},{"location":"page/lsp-xml/#lsp-xml-validation-no-grammar","text":"Type: (choice (:tag ignore hint info warning error)) Default: hint The message severity when a document has no associated grammar.","title":"lsp-xml-validation-no-grammar"},{"location":"page/lsp-xml/#lsp-xml-validation-resolve-external-entities","text":"Type: boolean Default: nil Enable/disable resolution (downloading) of external entities from the internet.","title":"lsp-xml-validation-resolve-external-entities"},{"location":"page/lsp-xml/#lsp-xml-validation-schema","text":"Type: alist Default: ((enabled . always)) The XML schema settings. The value for enabled can be always, never or onValidSchema.","title":"lsp-xml-validation-schema"},{"location":"page/lsp-yaml/","text":"YAML # Server # For more information about the LSP server, check yaml . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET yamlls RET . npm install -g yaml-language-server Debugger: Not available # Available configurations # lsp-yaml-bracket-spacing # Type: boolean Default: t Print spaces between brackets in objects. lsp-yaml-completion # Type: boolean Default: t Enable/disable completion feature. lsp-yaml-custom-tags # Type: (lsp-repeatable-vector string) Default: nil Custom tags for the parser to use. lsp-yaml-format-enable # Type: boolean Default: t Enable/disable default YAML formatter. lsp-yaml-hover # Type: boolean Default: t Enable/disable hover feature. lsp-yaml-max-items-computed # Type: number Default: 5000 The maximum number of outline symbols and folding regions computed. Limited for performance reasons. lsp-yaml-print-width # Type: number Default: 80 Specify the line length that the printer will wrap on. lsp-yaml-prose-wrap # Type: (choice (const always) (const never) (const preserve)) Default: preserve Options for prose-wrap. Always: wrap prose if it exceeds the print width. Never: never wrap the prose. Preserve: wrap prose as-is. lsp-yaml-schema-store-enable # Type: boolean Default: t Enable/disable JSON Schema store. When set to true, available YAML schemas will be automatically pulled from the store. lsp-yaml-schema-store-local-db # Type: file Default: ~/.emacs.d/.cache/lsp/lsp-yaml-schemas.json Cached database of schema store. lsp-yaml-schema-store-uri # Type: string Default: https://www.schemastore.org/api/json/catalog.json URL of schema store catalog to use. lsp-yaml-schemas # Type: (alist :key-type (symbol :tag schema) :value-type (lsp-string-vector :tag files (glob))) Default: nil Associate schemas to YAML files in a glob pattern. lsp-yaml-server-command # Type: (repeat string) Default: (yaml-language-server --stdio) Command to start yaml-languageserver. lsp-yaml-single-quote # Type: boolean Default: nil Use single quote instead of double quotes. lsp-yaml-validate # Type: boolean Default: t Enable/disable validation feature.","title":"YAML"},{"location":"page/lsp-yaml/#yaml","text":"","title":"YAML"},{"location":"page/lsp-yaml/#server","text":"For more information about the LSP server, check yaml .","title":"Server"},{"location":"page/lsp-yaml/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET yamlls RET . npm install -g yaml-language-server","title":"Installation"},{"location":"page/lsp-yaml/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-yaml/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-yaml/#lsp-yaml-bracket-spacing","text":"Type: boolean Default: t Print spaces between brackets in objects.","title":"lsp-yaml-bracket-spacing"},{"location":"page/lsp-yaml/#lsp-yaml-completion","text":"Type: boolean Default: t Enable/disable completion feature.","title":"lsp-yaml-completion"},{"location":"page/lsp-yaml/#lsp-yaml-custom-tags","text":"Type: (lsp-repeatable-vector string) Default: nil Custom tags for the parser to use.","title":"lsp-yaml-custom-tags"},{"location":"page/lsp-yaml/#lsp-yaml-format-enable","text":"Type: boolean Default: t Enable/disable default YAML formatter.","title":"lsp-yaml-format-enable"},{"location":"page/lsp-yaml/#lsp-yaml-hover","text":"Type: boolean Default: t Enable/disable hover feature.","title":"lsp-yaml-hover"},{"location":"page/lsp-yaml/#lsp-yaml-max-items-computed","text":"Type: number Default: 5000 The maximum number of outline symbols and folding regions computed. Limited for performance reasons.","title":"lsp-yaml-max-items-computed"},{"location":"page/lsp-yaml/#lsp-yaml-print-width","text":"Type: number Default: 80 Specify the line length that the printer will wrap on.","title":"lsp-yaml-print-width"},{"location":"page/lsp-yaml/#lsp-yaml-prose-wrap","text":"Type: (choice (const always) (const never) (const preserve)) Default: preserve Options for prose-wrap. Always: wrap prose if it exceeds the print width. Never: never wrap the prose. Preserve: wrap prose as-is.","title":"lsp-yaml-prose-wrap"},{"location":"page/lsp-yaml/#lsp-yaml-schema-store-enable","text":"Type: boolean Default: t Enable/disable JSON Schema store. When set to true, available YAML schemas will be automatically pulled from the store.","title":"lsp-yaml-schema-store-enable"},{"location":"page/lsp-yaml/#lsp-yaml-schema-store-local-db","text":"Type: file Default: ~/.emacs.d/.cache/lsp/lsp-yaml-schemas.json Cached database of schema store.","title":"lsp-yaml-schema-store-local-db"},{"location":"page/lsp-yaml/#lsp-yaml-schema-store-uri","text":"Type: string Default: https://www.schemastore.org/api/json/catalog.json URL of schema store catalog to use.","title":"lsp-yaml-schema-store-uri"},{"location":"page/lsp-yaml/#lsp-yaml-schemas","text":"Type: (alist :key-type (symbol :tag schema) :value-type (lsp-string-vector :tag files (glob))) Default: nil Associate schemas to YAML files in a glob pattern.","title":"lsp-yaml-schemas"},{"location":"page/lsp-yaml/#lsp-yaml-server-command","text":"Type: (repeat string) Default: (yaml-language-server --stdio) Command to start yaml-languageserver.","title":"lsp-yaml-server-command"},{"location":"page/lsp-yaml/#lsp-yaml-single-quote","text":"Type: boolean Default: nil Use single quote instead of double quotes.","title":"lsp-yaml-single-quote"},{"location":"page/lsp-yaml/#lsp-yaml-validate","text":"Type: boolean Default: t Enable/disable validation feature.","title":"lsp-yaml-validate"},{"location":"page/lsp-zig/","text":"Zig # Server # For more information about the LSP server, check zls . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-zig-zls-executable # Type: string Default: zls The zls executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path .","title":"Zig"},{"location":"page/lsp-zig/#zig","text":"","title":"Zig"},{"location":"page/lsp-zig/#server","text":"For more information about the LSP server, check zls .","title":"Server"},{"location":"page/lsp-zig/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-zig/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-zig/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-zig/#lsp-zig-zls-executable","text":"Type: string Default: zls The zls executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path .","title":"lsp-zig-zls-executable"},{"location":"page/main-features/","text":"Main features # Completion at point # If LSP server supports completion, lsp-mode use symbols returned by the server to present the user when completion is triggered via completion-at-point . For the traditional completion popup, install company-mode . You can check above the recommended settings for company-mode : ( setq company-minimum-prefix-length 1 company-idle-delay 0.0 ) ;; default is 0.2 Code navigation # lsp-find-definition lsp-find-references Code lens # In case the LSP server supports code lens: Project errors on modeline # To see all error statistics in the modeline you can enable lsp-modeline-diagnostics-mode or (setq lsp-modeline-diagnostics-enable t) . This is especially useful for languages that compilation might be broken due to errors in other files(e.g. Java/Haskell). ( with-eval-after-load 'lsp-mode ;; :global/:workspace/:file ( setq lsp-modeline-diagnostics-scope :workspace )) Tip: To find out the global errors you might use lsp-treemacs-errors-list . Code actions on modeline # For a UI feedback of the available code actions, you can enable lsp-modeline-code-actions-mode which shows available code actions on modeline: With lsp-modeline-code-actions-segments you can customize what to show on the modeline as you want: lsp-modeline-code-actions-segments result '(count icon) (Default) '(name icon) '(icon) '(count icon name) Breadcrumb on headerline # For a UI feedback on headerline of the document symbols at point, current file or project name, you can enable lsp-headerline-breadcrumb-mode which shows a breadcrumb on top of window. You can customize the breadcrumb segments via lsp-headerline-breadcrumb-segments variable, some examples: lsp-headerline-breadcrumb-segments result '(path-up-to-project file symbols) (Default) '(project file symbols) '(symbols) If lsp-headerline-breadcrumb-segments contains 'symbols , you can optionally label the corresponding entries in the headerline display by setting lsp-headerline-breadcrumb-enable-symbol-numbers to t . Symbol highlights # In case LSP server supports hover feature: Formatting # In general the formatter settings are language server specific(e. g. JDT LS uses eclipse formatter file and lsp-java-format-settings-url to configure it while clangd uses clangd-format and lsp-dart uses the built-in dartfmt from Dart SDK ). The only settings that are controlled on lsp-mode level are indent size and whether the server should use tabs or spaces. Refer to lsp--formatting-indent-alist to find out what is the variable that is used for the current major mode. Some language servers, e.g. for C++, Java, etc, can format code as you type and the formatting is triggered when the corresponding character is pressed(typically, } , RET ). This behaviour is controlled via lsp-enable-on-type-formatting and it is enabled by default. Debugger # lsp-mode integrates with dap-mode with implements the DAP(Debugger Adapter Protocol), for more information check the dap-mode documentation . Integrations # lsp-mode supports many integrations for improve the user experience like treemacs , Helm , Ivy and others. For all available integrations, check the Extensions section on the left navigation.","title":"Main features"},{"location":"page/main-features/#main-features","text":"","title":"Main features"},{"location":"page/main-features/#completion-at-point","text":"If LSP server supports completion, lsp-mode use symbols returned by the server to present the user when completion is triggered via completion-at-point . For the traditional completion popup, install company-mode . You can check above the recommended settings for company-mode : ( setq company-minimum-prefix-length 1 company-idle-delay 0.0 ) ;; default is 0.2","title":"Completion at point"},{"location":"page/main-features/#code-navigation","text":"lsp-find-definition lsp-find-references","title":"Code navigation"},{"location":"page/main-features/#code-lens","text":"In case the LSP server supports code lens:","title":"Code lens"},{"location":"page/main-features/#project-errors-on-modeline","text":"To see all error statistics in the modeline you can enable lsp-modeline-diagnostics-mode or (setq lsp-modeline-diagnostics-enable t) . This is especially useful for languages that compilation might be broken due to errors in other files(e.g. Java/Haskell). ( with-eval-after-load 'lsp-mode ;; :global/:workspace/:file ( setq lsp-modeline-diagnostics-scope :workspace )) Tip: To find out the global errors you might use lsp-treemacs-errors-list .","title":"Project errors on modeline"},{"location":"page/main-features/#code-actions-on-modeline","text":"For a UI feedback of the available code actions, you can enable lsp-modeline-code-actions-mode which shows available code actions on modeline: With lsp-modeline-code-actions-segments you can customize what to show on the modeline as you want: lsp-modeline-code-actions-segments result '(count icon) (Default) '(name icon) '(icon) '(count icon name)","title":"Code actions on modeline"},{"location":"page/main-features/#breadcrumb-on-headerline","text":"For a UI feedback on headerline of the document symbols at point, current file or project name, you can enable lsp-headerline-breadcrumb-mode which shows a breadcrumb on top of window. You can customize the breadcrumb segments via lsp-headerline-breadcrumb-segments variable, some examples: lsp-headerline-breadcrumb-segments result '(path-up-to-project file symbols) (Default) '(project file symbols) '(symbols) If lsp-headerline-breadcrumb-segments contains 'symbols , you can optionally label the corresponding entries in the headerline display by setting lsp-headerline-breadcrumb-enable-symbol-numbers to t .","title":"Breadcrumb on headerline"},{"location":"page/main-features/#symbol-highlights","text":"In case LSP server supports hover feature:","title":"Symbol highlights"},{"location":"page/main-features/#formatting","text":"In general the formatter settings are language server specific(e. g. JDT LS uses eclipse formatter file and lsp-java-format-settings-url to configure it while clangd uses clangd-format and lsp-dart uses the built-in dartfmt from Dart SDK ). The only settings that are controlled on lsp-mode level are indent size and whether the server should use tabs or spaces. Refer to lsp--formatting-indent-alist to find out what is the variable that is used for the current major mode. Some language servers, e.g. for C++, Java, etc, can format code as you type and the formatting is triggered when the corresponding character is pressed(typically, } , RET ). This behaviour is controlled via lsp-enable-on-type-formatting and it is enabled by default.","title":"Formatting"},{"location":"page/main-features/#debugger","text":"lsp-mode integrates with dap-mode with implements the DAP(Debugger Adapter Protocol), for more information check the dap-mode documentation .","title":"Debugger"},{"location":"page/main-features/#integrations","text":"lsp-mode supports many integrations for improve the user experience like treemacs , Helm , Ivy and others. For all available integrations, check the Extensions section on the left navigation.","title":"Integrations"},{"location":"page/performance/","text":"Performance # Tuning # Use M-x lsp-doctor to validate if your lsp-mode is properly configured. In the section below, you could find description for each of the checks: When configured properly lsp-mode 's performance is on par with mainstream LSP clients (e. g. VScode , Theia , etc). Here are steps to achieve optimal results. JSON native serialization/deserialization # Use Emacs 27+ with native json support. (Note: this requires that you have libjansson installed, and that emacs was compiled with `\u2013with-json` passed to `./configure`.) You can check your installation for native json support by running M-: (functionp 'json-serialize) RET . Benchmarks show that Emacs 27 is ~15 times faster than Emacs when using Elisp json parser implementation. Adjust gc-cons-threshold # The default setting is too low for lsp-mode 's needs due to the fact that client/server communication generates a lot of memory/garbage. You have two options: - Set it to big number ( 100 mb ) like most of the popular starter kits like Spacemacs / Doom / Prelude , etc do : ``` elisp ( setq gc - cons - threshold 100000000 ) ``` - Follow the method recommended by Gnu Emacs Maintainer Eli Zaretskii : \" My suggestion is to repeatedly multiply gc-cons-threshold by 2 until you stop seeing significant improvements in responsiveness, and in any case not to increase by a factor larger than 100 or somesuch. If even a 100-fold increase doesn't help, there's some deeper problem with the Lisp code which produces so much garbage, or maybe GC is not the reason for slowdown. \" Source : < https : // www . reddit . com / r / emacs / comments / brc05y / is_lspmode_too_slow_to_use_for_anyone_else / eofulix /> Increase the amount of data which Emacs reads from the process # Again the emacs default is too low 4k considering that the some of the language server responses are in 800k - 3M range. ( setq read-process-output-max ( * 1024 1024 )) ;; 1mb Use plists for deserialization. # lsp-mode can be compiled in 2 modes plist and hash-table based lsp-use-plists flag. plist s provide better performance in deserialization and also put less presure than hash-table s. To switch to plist you have to perform 2 steps: Configure the following env variable. Make sure that Emacs can see that variable (best way to do that is to start Emacs from the shell, not from the icon). export LSP_USE_PLISTS = true Delete lsp-mode related packages. Make sure that lsp-use-plists is non-nil. Restart Emacs and install again lsp-mode related packages. NB: make sure that lsp-use-plists does not change after you compile the file. Furthermore, if you are using something like exec-path-from-shell you'll need to make sure to add LSP_USE_PLISTS to exec-path-from-shell-variables . Optional steps # Optional: Disable lsp-ui . Normally, lsp-ui is very fast but in some systems (especially when using Windows ) lsp-ui overlays and popups might slow down emacs. Optional: fine-tune lsp-idle-delay . This variable determines how often lsp-mode will refresh the highlights, lenses, links, etc while you type. ( setq lsp-idle-delay 0.500 ) Using Emacs 28.1 or later # Emacs 28.1 includes \"native compilation\" of elisp code ( changelog ). For optimal performance, using Emacs 28.1 or later (with native compilation enabled) is recommended. Ignore watch folders/files # If the server supports watch files, by default lsp-mode tries to watch all files and folders of the project ignoring the regexp from lsp-file-watch-ignored . If you don't want some file or folder to be watched for performance reasons, you can add a regexp to that variable excluding the file or folder. Check the file watchers section for details. Check if logging is switched off. # Make sure lsp-log-io is nil . You might have forgotten it after a debugging session, for example. It can cause a great performance hit. ( setq lsp-log-io nil ) ; if set to true can cause a performance hit Sometimes you might need to check logging for specific LSP server configuration as well, i.e. for lsp-eslint it is: lsp-eslint-trace-server . Reporting performance problems # If you have tried all of the non-optional steps from the list and emacs is still not very responsive please open a PR with the following information: Include emacs performance report. Use the following step to collect it: M-x profiler-start and select CPU Reproduce the slow behavior. M-x profiler-stop M-x profiler-report to create a report In the profiler report expand all nodes by doing C-u TAB . Note: - lsp-mode is just a frontend and the performance depends on server as well. Some servers (e. g. Palantir's Python Language Server) might be slow when performing auto-completion.","title":"Performance"},{"location":"page/performance/#performance","text":"","title":"Performance"},{"location":"page/performance/#tuning","text":"Use M-x lsp-doctor to validate if your lsp-mode is properly configured. In the section below, you could find description for each of the checks: When configured properly lsp-mode 's performance is on par with mainstream LSP clients (e. g. VScode , Theia , etc). Here are steps to achieve optimal results.","title":"Tuning"},{"location":"page/performance/#json-native-serializationdeserialization","text":"Use Emacs 27+ with native json support. (Note: this requires that you have libjansson installed, and that emacs was compiled with `\u2013with-json` passed to `./configure`.) You can check your installation for native json support by running M-: (functionp 'json-serialize) RET . Benchmarks show that Emacs 27 is ~15 times faster than Emacs when using Elisp json parser implementation.","title":"JSON native serialization/deserialization"},{"location":"page/performance/#adjust-gc-cons-threshold","text":"The default setting is too low for lsp-mode 's needs due to the fact that client/server communication generates a lot of memory/garbage. You have two options: - Set it to big number ( 100 mb ) like most of the popular starter kits like Spacemacs / Doom / Prelude , etc do : ``` elisp ( setq gc - cons - threshold 100000000 ) ``` - Follow the method recommended by Gnu Emacs Maintainer Eli Zaretskii : \" My suggestion is to repeatedly multiply gc-cons-threshold by 2 until you stop seeing significant improvements in responsiveness, and in any case not to increase by a factor larger than 100 or somesuch. If even a 100-fold increase doesn't help, there's some deeper problem with the Lisp code which produces so much garbage, or maybe GC is not the reason for slowdown. \" Source : < https : // www . reddit . com / r / emacs / comments / brc05y / is_lspmode_too_slow_to_use_for_anyone_else / eofulix />","title":"Adjust gc-cons-threshold"},{"location":"page/performance/#increase-the-amount-of-data-which-emacs-reads-from-the-process","text":"Again the emacs default is too low 4k considering that the some of the language server responses are in 800k - 3M range. ( setq read-process-output-max ( * 1024 1024 )) ;; 1mb","title":"Increase the amount of data which Emacs reads from the process"},{"location":"page/performance/#use-plists-for-deserialization","text":"lsp-mode can be compiled in 2 modes plist and hash-table based lsp-use-plists flag. plist s provide better performance in deserialization and also put less presure than hash-table s. To switch to plist you have to perform 2 steps: Configure the following env variable. Make sure that Emacs can see that variable (best way to do that is to start Emacs from the shell, not from the icon). export LSP_USE_PLISTS = true Delete lsp-mode related packages. Make sure that lsp-use-plists is non-nil. Restart Emacs and install again lsp-mode related packages. NB: make sure that lsp-use-plists does not change after you compile the file. Furthermore, if you are using something like exec-path-from-shell you'll need to make sure to add LSP_USE_PLISTS to exec-path-from-shell-variables .","title":"Use plists for deserialization."},{"location":"page/performance/#optional-steps","text":"Optional: Disable lsp-ui . Normally, lsp-ui is very fast but in some systems (especially when using Windows ) lsp-ui overlays and popups might slow down emacs. Optional: fine-tune lsp-idle-delay . This variable determines how often lsp-mode will refresh the highlights, lenses, links, etc while you type. ( setq lsp-idle-delay 0.500 )","title":"Optional steps"},{"location":"page/performance/#using-emacs-281-or-later","text":"Emacs 28.1 includes \"native compilation\" of elisp code ( changelog ). For optimal performance, using Emacs 28.1 or later (with native compilation enabled) is recommended.","title":"Using Emacs 28.1 or later"},{"location":"page/performance/#ignore-watch-foldersfiles","text":"If the server supports watch files, by default lsp-mode tries to watch all files and folders of the project ignoring the regexp from lsp-file-watch-ignored . If you don't want some file or folder to be watched for performance reasons, you can add a regexp to that variable excluding the file or folder. Check the file watchers section for details.","title":"Ignore watch folders/files"},{"location":"page/performance/#check-if-logging-is-switched-off","text":"Make sure lsp-log-io is nil . You might have forgotten it after a debugging session, for example. It can cause a great performance hit. ( setq lsp-log-io nil ) ; if set to true can cause a performance hit Sometimes you might need to check logging for specific LSP server configuration as well, i.e. for lsp-eslint it is: lsp-eslint-trace-server .","title":"Check if logging is switched off."},{"location":"page/performance/#reporting-performance-problems","text":"If you have tried all of the non-optional steps from the list and emacs is still not very responsive please open a PR with the following information: Include emacs performance report. Use the following step to collect it: M-x profiler-start and select CPU Reproduce the slow behavior. M-x profiler-stop M-x profiler-report to create a report In the profiler report expand all nodes by doing C-u TAB . Note: - lsp-mode is just a frontend and the performance depends on server as well. Some servers (e. g. Palantir's Python Language Server) might be slow when performing auto-completion.","title":"Reporting performance problems"},{"location":"page/remote/","text":"Remote # TRAMP # LSP mode has support for tramp buffers with the following requirements: The language server has to be present on the remote server. Having multi folder language server (like Eclipse JDT LS ) cannot have local and remote workspace folders. How does it work? # lsp-mode detects whether a particular file is located on remote machine and looks for a client which matches current file and it is marked as :remote? t. Then lsp-mode starts the client through tramp. Sample configuration # Here it is example how you can configure python language server to work when using TRAMP . Note that if you are trying to convert existing language server configuration you should copy all of it's properties(e. g. :request-handlers , activation-fn , etc). Also, when you are doing that you should make sure that none of the custom language server settings are not pointing to local path because those settings will be sent to the remote server. ( lsp-register-client ( make-lsp-client :new-connection ( lsp-tramp-connection \"\" ) :major-modes ' ( python-mode ) :remote? t :server-id 'pyls-remote )) Note: when you do not have root privileges on the remote machine to put the language server on the path you may alter the remote path by changing tramp-remote-path . Dealing with stderr # With TRAMP, Emacs does not have an easy way to distinguish stdout and stderr, so when the underlying LSP process writes to stderr, it breaks the lsp-mode parser. As a workaround, lsp-mode is redirecting stderr to /tmp/-~stderr . Docker # Refer to lsp-docker README which provides a guide on how you can run lsp-mode in docker container.","title":"Remote"},{"location":"page/remote/#remote","text":"","title":"Remote"},{"location":"page/remote/#tramp","text":"LSP mode has support for tramp buffers with the following requirements: The language server has to be present on the remote server. Having multi folder language server (like Eclipse JDT LS ) cannot have local and remote workspace folders.","title":"TRAMP"},{"location":"page/remote/#how-does-it-work","text":"lsp-mode detects whether a particular file is located on remote machine and looks for a client which matches current file and it is marked as :remote? t. Then lsp-mode starts the client through tramp.","title":"How does it work?"},{"location":"page/remote/#sample-configuration","text":"Here it is example how you can configure python language server to work when using TRAMP . Note that if you are trying to convert existing language server configuration you should copy all of it's properties(e. g. :request-handlers , activation-fn , etc). Also, when you are doing that you should make sure that none of the custom language server settings are not pointing to local path because those settings will be sent to the remote server. ( lsp-register-client ( make-lsp-client :new-connection ( lsp-tramp-connection \"\" ) :major-modes ' ( python-mode ) :remote? t :server-id 'pyls-remote )) Note: when you do not have root privileges on the remote machine to put the language server on the path you may alter the remote path by changing tramp-remote-path .","title":"Sample configuration"},{"location":"page/remote/#dealing-with-stderr","text":"With TRAMP, Emacs does not have an easy way to distinguish stdout and stderr, so when the underlying LSP process writes to stderr, it breaks the lsp-mode parser. As a workaround, lsp-mode is redirecting stderr to /tmp/-~stderr .","title":"Dealing with stderr"},{"location":"page/remote/#docker","text":"Refer to lsp-docker README which provides a guide on how you can run lsp-mode in docker container.","title":"Docker"},{"location":"page/troubleshooting/","text":"Troubleshooting # lsp-log # Check *lsp-log* buffer and verify that lsp-mode is able to find the server. If lsp-mode is unable to find the binary but it is on the path it is probably caused by the fact that emacs is running with different path. You may check the current path by executing M-: (getenv \"PATH\") . If this is the case, you have several options to fix the issue. Make sure that emacs is using the proper path by running emacs from terminal. Modify the path using setpath function. Server path # Look for lsp-mode variable to customize server path. Usually, you may find the variable by doing: M-x customize-group RET lsp-LANGUAGE-SERVER-ID . Log client<->server json # Set lsp-log-io to t to inspect communication between client and the server. Use lsp-workspace-show-log to switch to the corresponding log buffer. Check project roots # lsp-describe-session will show the current projects roots + the started servers and allows inspecting the server capabilities: Updating package.el packages # If you manage your Emacs packages with the built-in package.el , we recommend the following procedure to update your packages: Delete your LSP-related packages Restart Emacs Install the new versions of the packages. Check if any package or wrong config could be causing the issue # Try to repro the issue with our lsp-start-plain.el file, which has just the necessary config/packages for lsp-mode work using M-x lsp-start-plain .","title":"Troubleshooting"},{"location":"page/troubleshooting/#troubleshooting","text":"","title":"Troubleshooting"},{"location":"page/troubleshooting/#lsp-log","text":"Check *lsp-log* buffer and verify that lsp-mode is able to find the server. If lsp-mode is unable to find the binary but it is on the path it is probably caused by the fact that emacs is running with different path. You may check the current path by executing M-: (getenv \"PATH\") . If this is the case, you have several options to fix the issue. Make sure that emacs is using the proper path by running emacs from terminal. Modify the path using setpath function.","title":"lsp-log"},{"location":"page/troubleshooting/#server-path","text":"Look for lsp-mode variable to customize server path. Usually, you may find the variable by doing: M-x customize-group RET lsp-LANGUAGE-SERVER-ID .","title":"Server path"},{"location":"page/troubleshooting/#log-client-server-json","text":"Set lsp-log-io to t to inspect communication between client and the server. Use lsp-workspace-show-log to switch to the corresponding log buffer.","title":"Log client<->server json"},{"location":"page/troubleshooting/#check-project-roots","text":"lsp-describe-session will show the current projects roots + the started servers and allows inspecting the server capabilities:","title":"Check project roots"},{"location":"page/troubleshooting/#updating-packageel-packages","text":"If you manage your Emacs packages with the built-in package.el , we recommend the following procedure to update your packages: Delete your LSP-related packages Restart Emacs Install the new versions of the packages.","title":"Updating package.el packages"},{"location":"page/troubleshooting/#check-if-any-package-or-wrong-config-could-be-causing-the-issue","text":"Try to repro the issue with our lsp-start-plain.el file, which has just the necessary config/packages for lsp-mode work using M-x lsp-start-plain .","title":"Check if any package or wrong config could be causing the issue"},{"location":"page/integration/dired/","text":"Dired integration # lsp-mode provides integration with dired file explorer. lsp-mode will show which files/folders contain errors/warnings/hints. To enable this behaviour add (lsp-dired-mode) call to your config. Screenshot #","title":"Dired integration"},{"location":"page/integration/dired/#dired-integration","text":"lsp-mode provides integration with dired file explorer. lsp-mode will show which files/folders contain errors/warnings/hints. To enable this behaviour add (lsp-dired-mode) call to your config.","title":"Dired integration"},{"location":"page/integration/dired/#screenshot","text":"","title":"Screenshot"},{"location":"page/integration/ido/","text":"Ido integration # lsp-mode provides integration with ido for workspace-symbol command. lsp-mode will show all workspace/project symbols using IDO. To enable this behaviour add (require 'lsp-ido) call to your config. By installing ido-completing-read+ lsp-mode will use IDO for showing candidates on other commands as well e.g. refactor, code actions, etc. Screenshot # Command # lsp-ido-workspace-symbol command will be available as an interactive call. Configuration # You can disable symbol kind and symbol filepath from the candidate list by changing the following settings ( setq lsp-ido-show-symbol-kind nil lsp-ido-show-symbol-filename nil )","title":"Ido"},{"location":"page/integration/ido/#ido-integration","text":"lsp-mode provides integration with ido for workspace-symbol command. lsp-mode will show all workspace/project symbols using IDO. To enable this behaviour add (require 'lsp-ido) call to your config. By installing ido-completing-read+ lsp-mode will use IDO for showing candidates on other commands as well e.g. refactor, code actions, etc.","title":"Ido integration"},{"location":"page/integration/ido/#screenshot","text":"","title":"Screenshot"},{"location":"page/integration/ido/#command","text":"lsp-ido-workspace-symbol command will be available as an interactive call.","title":"Command"},{"location":"page/integration/ido/#configuration","text":"You can disable symbol kind and symbol filepath from the candidate list by changing the following settings ( setq lsp-ido-show-symbol-kind nil lsp-ido-show-symbol-filename nil )","title":"Configuration"},{"location":"page/integration/iedit/","text":"iedit # lsp-mode can leverage iedit to edit semantic matches in parallel: lsp-iedit-highlights : invoke iedit on the symbol highlights at point, all of which will be edited in parallel. To finish and exit, press C-g , with the cursor on iedit highlight. If an iedit session is already active, lsp-iedit-highlights will simply add the document highlights to it, without restarting it. This way, another group of symbol highlights can be added to the current iedit session.","title":"Iedit"},{"location":"page/integration/iedit/#iedit","text":"lsp-mode can leverage iedit to edit semantic matches in parallel: lsp-iedit-highlights : invoke iedit on the symbol highlights at point, all of which will be edited in parallel. To finish and exit, press C-g , with the cursor on iedit highlight. If an iedit session is already active, lsp-iedit-highlights will simply add the document highlights to it, without restarting it. This way, another group of symbol highlights can be added to the current iedit session.","title":"iedit"},{"location":"page/settings/completion/","text":"Completion # lsp-completion-enable # Type: boolean Default: t Enable completion-at-point integration. lsp-completion-enable-additional-text-edit # Type: boolean Default: t Whether or not to apply additional text edit when performing completion. If set to non-nil, lsp-mode will apply additional text edits from the server. Otherwise, the additional text edits are ignored. lsp-completion-filter-on-incomplete # Type: boolean Default: t Whether or not filter incomplete results. lsp-completion-no-cache # Type: boolean Default: nil Whether or not caching the returned completions from server. lsp-completion-provider # Type: (choice (const :tag Use company-capf :capf) (const :tag None :none)) Default: :capf The completion backend provider. lsp-completion-show-detail # Type: boolean Default: t Whether or not to show detail of completion candidates. lsp-completion-show-kind # Type: boolean Default: t Whether or not to show kind of completion candidates. lsp-completion-show-label-description # Type: boolean Default: t Whether or not to show description of completion candidates. lsp-completion-sort-initial-results # Type: boolean Default: t Whether or not filter initial results from server. lsp-completion-use-last-result # Type: boolean Default: t Temporarily use last server result when interrupted by keyboard. This will help minimize popup flickering issue in company-mode . lsp-enable-snippet # Type: boolean Default: t Enable/disable snippet completion support.","title":"Completion"},{"location":"page/settings/completion/#completion","text":"","title":"Completion"},{"location":"page/settings/completion/#lsp-completion-enable","text":"Type: boolean Default: t Enable completion-at-point integration.","title":"lsp-completion-enable"},{"location":"page/settings/completion/#lsp-completion-enable-additional-text-edit","text":"Type: boolean Default: t Whether or not to apply additional text edit when performing completion. If set to non-nil, lsp-mode will apply additional text edits from the server. Otherwise, the additional text edits are ignored.","title":"lsp-completion-enable-additional-text-edit"},{"location":"page/settings/completion/#lsp-completion-filter-on-incomplete","text":"Type: boolean Default: t Whether or not filter incomplete results.","title":"lsp-completion-filter-on-incomplete"},{"location":"page/settings/completion/#lsp-completion-no-cache","text":"Type: boolean Default: nil Whether or not caching the returned completions from server.","title":"lsp-completion-no-cache"},{"location":"page/settings/completion/#lsp-completion-provider","text":"Type: (choice (const :tag Use company-capf :capf) (const :tag None :none)) Default: :capf The completion backend provider.","title":"lsp-completion-provider"},{"location":"page/settings/completion/#lsp-completion-show-detail","text":"Type: boolean Default: t Whether or not to show detail of completion candidates.","title":"lsp-completion-show-detail"},{"location":"page/settings/completion/#lsp-completion-show-kind","text":"Type: boolean Default: t Whether or not to show kind of completion candidates.","title":"lsp-completion-show-kind"},{"location":"page/settings/completion/#lsp-completion-show-label-description","text":"Type: boolean Default: t Whether or not to show description of completion candidates.","title":"lsp-completion-show-label-description"},{"location":"page/settings/completion/#lsp-completion-sort-initial-results","text":"Type: boolean Default: t Whether or not filter initial results from server.","title":"lsp-completion-sort-initial-results"},{"location":"page/settings/completion/#lsp-completion-use-last-result","text":"Type: boolean Default: t Temporarily use last server result when interrupted by keyboard. This will help minimize popup flickering issue in company-mode .","title":"lsp-completion-use-last-result"},{"location":"page/settings/completion/#lsp-enable-snippet","text":"Type: boolean Default: t Enable/disable snippet completion support.","title":"lsp-enable-snippet"},{"location":"page/settings/diagnostics/","text":"Diagnostics # lsp-diagnostic-clean-after-change # Type: boolean Default: nil When non-nil, clean the diagnostics on change. Note that when that setting is nil, lsp-mode will show stale diagnostics until server publishes the new set of diagnostics lsp-diagnostics-attributes # Type: (repeat list) Default: ((unnecessary :foreground gray) (deprecated :strike-through t)) The Attributes used on the diagnostics. List containing (tag attributes) where tag is the LSP diagnostic tag and attributes is a plist containing face attributes which will be applied on top the flycheck face for that error level. lsp-diagnostics-disabled-modes # Type: (repeat symbol) Default: nil A list of major models for which lsp-diagnostics-mode should be disabled. lsp-diagnostics-flycheck-default-level # Type: (choice (const error) (const warning) (const info)) Default: error Error level to use when the server does not report back a diagnostic level. lsp-diagnostics-provider # Type: (choice (const :tag Pick flycheck if present and fallback to flymake :auto) (const :tag Pick flycheck :flycheck) (const :tag Pick flymake :flymake) (const :tag Use neither flymake nor lsp :none) (const :tag Prefer flymake t) (const :tag Prefer flycheck nil)) Default: :auto The checker backend provider.","title":"Diagnostics"},{"location":"page/settings/diagnostics/#diagnostics","text":"","title":"Diagnostics"},{"location":"page/settings/diagnostics/#lsp-diagnostic-clean-after-change","text":"Type: boolean Default: nil When non-nil, clean the diagnostics on change. Note that when that setting is nil, lsp-mode will show stale diagnostics until server publishes the new set of diagnostics","title":"lsp-diagnostic-clean-after-change"},{"location":"page/settings/diagnostics/#lsp-diagnostics-attributes","text":"Type: (repeat list) Default: ((unnecessary :foreground gray) (deprecated :strike-through t)) The Attributes used on the diagnostics. List containing (tag attributes) where tag is the LSP diagnostic tag and attributes is a plist containing face attributes which will be applied on top the flycheck face for that error level.","title":"lsp-diagnostics-attributes"},{"location":"page/settings/diagnostics/#lsp-diagnostics-disabled-modes","text":"Type: (repeat symbol) Default: nil A list of major models for which lsp-diagnostics-mode should be disabled.","title":"lsp-diagnostics-disabled-modes"},{"location":"page/settings/diagnostics/#lsp-diagnostics-flycheck-default-level","text":"Type: (choice (const error) (const warning) (const info)) Default: error Error level to use when the server does not report back a diagnostic level.","title":"lsp-diagnostics-flycheck-default-level"},{"location":"page/settings/diagnostics/#lsp-diagnostics-provider","text":"Type: (choice (const :tag Pick flycheck if present and fallback to flymake :auto) (const :tag Pick flycheck :flycheck) (const :tag Pick flymake :flymake) (const :tag Use neither flymake nor lsp :none) (const :tag Prefer flymake t) (const :tag Prefer flycheck nil)) Default: :auto The checker backend provider.","title":"lsp-diagnostics-provider"},{"location":"page/settings/dired/","text":"Dired # lsp-dired-mode # Type: boolean Default: nil Non-nil if Lsp-Dired mode is enabled. See the lsp-dired-mode command for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node Easy Customization ) or call the function lsp-dired-mode . lsp-dired-path-error-face # Type: face Default: ((t :underline (:style wave :color Red1))) Face used for breadcrumb paths on headerline when there is an error under that path lsp-dired-path-face # Type: face Default: ((t :inherit font-lock-string-face)) Face used for breadcrumb paths on headerline. lsp-dired-path-hint-face # Type: face Default: ((t :underline (:style wave :color Green))) Face used for breadcrumb paths on headerline when there is an hint under that path lsp-dired-path-info-face # Type: face Default: ((t :underline (:style wave :color Green))) Face used for breadcrumb paths on headerline when there is an info under that path lsp-dired-path-warning-face # Type: face Default: ((t :underline (:style wave :color Yellow))) Face used for breadcrumb paths on headerline when there is an warning under that path","title":"Dired"},{"location":"page/settings/dired/#dired","text":"","title":"Dired"},{"location":"page/settings/dired/#lsp-dired-mode","text":"Type: boolean Default: nil Non-nil if Lsp-Dired mode is enabled. See the lsp-dired-mode command for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node Easy Customization ) or call the function lsp-dired-mode .","title":"lsp-dired-mode"},{"location":"page/settings/dired/#lsp-dired-path-error-face","text":"Type: face Default: ((t :underline (:style wave :color Red1))) Face used for breadcrumb paths on headerline when there is an error under that path","title":"lsp-dired-path-error-face"},{"location":"page/settings/dired/#lsp-dired-path-face","text":"Type: face Default: ((t :inherit font-lock-string-face)) Face used for breadcrumb paths on headerline.","title":"lsp-dired-path-face"},{"location":"page/settings/dired/#lsp-dired-path-hint-face","text":"Type: face Default: ((t :underline (:style wave :color Green))) Face used for breadcrumb paths on headerline when there is an hint under that path","title":"lsp-dired-path-hint-face"},{"location":"page/settings/dired/#lsp-dired-path-info-face","text":"Type: face Default: ((t :underline (:style wave :color Green))) Face used for breadcrumb paths on headerline when there is an info under that path","title":"lsp-dired-path-info-face"},{"location":"page/settings/dired/#lsp-dired-path-warning-face","text":"Type: face Default: ((t :underline (:style wave :color Yellow))) Face used for breadcrumb paths on headerline when there is an warning under that path","title":"lsp-dired-path-warning-face"},{"location":"page/settings/headerline/","text":"Headerline # lsp-headerline-breadcrumb-deprecated-face # Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :strike-through t)) Face used on breadcrumb deprecated text on modeline. lsp-headerline-breadcrumb-enable # Type: boolean Default: t Whether to enable breadcrumb on headerline. lsp-headerline-breadcrumb-enable-diagnostics # Type: boolean Default: t If non-nil, apply different face on the breadcrumb based on the errors. lsp-headerline-breadcrumb-enable-symbol-numbers # Type: boolean Default: nil Whether to label symbols with numbers on the breadcrumb. lsp-headerline-breadcrumb-path-error-face # Type: face Default: ((t :underline (:style wave :color Red1) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an error under that path lsp-headerline-breadcrumb-path-face # Type: face Default: ((t :inherit font-lock-string-face)) Face used for breadcrumb paths on headerline. lsp-headerline-breadcrumb-path-hint-face # Type: face Default: ((t :underline (:style wave :color Green) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an hint under that path lsp-headerline-breadcrumb-path-info-face # Type: face Default: ((t :underline (:style wave :color Green) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an info under that path lsp-headerline-breadcrumb-path-warning-face # Type: face Default: ((t :underline (:style wave :color Yellow) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an warning under that path lsp-headerline-breadcrumb-project-prefix-face # Type: face Default: ((t :inherit font-lock-string-face :weight bold)) Face used for breadcrumb prefix on headerline. Only if lsp-headerline-breadcrumb-prefix is project-name-only . lsp-headerline-breadcrumb-segments # Type: (repeat (choice (const :tag Include the project name. project) (const :tag Include the open file name. file) (const :tag Include the directories up to project. path-up-to-project) (const :tag Include document symbols if server supports it. symbols))) Default: (path-up-to-project file symbols) Segments used in breadcrumb text on headerline. lsp-headerline-breadcrumb-separator-face # Type: face Default: ((t :inherit shadow :height 0.8)) Face used for breadcrumb separator on headerline. lsp-headerline-breadcrumb-symbols-error-face # Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Red1))) Face used for breadcrumb symbols text on headerline when there is an error in symbols range. lsp-headerline-breadcrumb-symbols-face # Type: face Default: ((t :inherit font-lock-doc-face :weight bold)) Face used for breadcrumb symbols text on headerline. lsp-headerline-breadcrumb-symbols-hint-face # Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Green))) Face used for breadcrumb symbols text on headerline when there is an hints in symbols range. lsp-headerline-breadcrumb-symbols-info-face # Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Green))) Face used for breadcrumb symbols text on headerline when there is an info in symbols range. lsp-headerline-breadcrumb-symbols-warning-face # Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Yellow))) Face used for breadcrumb symbols text on headerline when there is an warning in symbols range. lsp-headerline-breadcrumb-unknown-project-prefix-face # Type: face Default: ((t :inherit shadow :weight bold)) Face used for breadcrumb prefix on headerline. Only if lsp-headerline-breadcrumb-prefix is project-name-only .","title":"Headerline"},{"location":"page/settings/headerline/#headerline","text":"","title":"Headerline"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-deprecated-face","text":"Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :strike-through t)) Face used on breadcrumb deprecated text on modeline.","title":"lsp-headerline-breadcrumb-deprecated-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-enable","text":"Type: boolean Default: t Whether to enable breadcrumb on headerline.","title":"lsp-headerline-breadcrumb-enable"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-enable-diagnostics","text":"Type: boolean Default: t If non-nil, apply different face on the breadcrumb based on the errors.","title":"lsp-headerline-breadcrumb-enable-diagnostics"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-enable-symbol-numbers","text":"Type: boolean Default: nil Whether to label symbols with numbers on the breadcrumb.","title":"lsp-headerline-breadcrumb-enable-symbol-numbers"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-path-error-face","text":"Type: face Default: ((t :underline (:style wave :color Red1) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an error under that path","title":"lsp-headerline-breadcrumb-path-error-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-path-face","text":"Type: face Default: ((t :inherit font-lock-string-face)) Face used for breadcrumb paths on headerline.","title":"lsp-headerline-breadcrumb-path-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-path-hint-face","text":"Type: face Default: ((t :underline (:style wave :color Green) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an hint under that path","title":"lsp-headerline-breadcrumb-path-hint-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-path-info-face","text":"Type: face Default: ((t :underline (:style wave :color Green) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an info under that path","title":"lsp-headerline-breadcrumb-path-info-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-path-warning-face","text":"Type: face Default: ((t :underline (:style wave :color Yellow) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an warning under that path","title":"lsp-headerline-breadcrumb-path-warning-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-project-prefix-face","text":"Type: face Default: ((t :inherit font-lock-string-face :weight bold)) Face used for breadcrumb prefix on headerline. Only if lsp-headerline-breadcrumb-prefix is project-name-only .","title":"lsp-headerline-breadcrumb-project-prefix-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-segments","text":"Type: (repeat (choice (const :tag Include the project name. project) (const :tag Include the open file name. file) (const :tag Include the directories up to project. path-up-to-project) (const :tag Include document symbols if server supports it. symbols))) Default: (path-up-to-project file symbols) Segments used in breadcrumb text on headerline.","title":"lsp-headerline-breadcrumb-segments"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-separator-face","text":"Type: face Default: ((t :inherit shadow :height 0.8)) Face used for breadcrumb separator on headerline.","title":"lsp-headerline-breadcrumb-separator-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-symbols-error-face","text":"Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Red1))) Face used for breadcrumb symbols text on headerline when there is an error in symbols range.","title":"lsp-headerline-breadcrumb-symbols-error-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-symbols-face","text":"Type: face Default: ((t :inherit font-lock-doc-face :weight bold)) Face used for breadcrumb symbols text on headerline.","title":"lsp-headerline-breadcrumb-symbols-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-symbols-hint-face","text":"Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Green))) Face used for breadcrumb symbols text on headerline when there is an hints in symbols range.","title":"lsp-headerline-breadcrumb-symbols-hint-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-symbols-info-face","text":"Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Green))) Face used for breadcrumb symbols text on headerline when there is an info in symbols range.","title":"lsp-headerline-breadcrumb-symbols-info-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-symbols-warning-face","text":"Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Yellow))) Face used for breadcrumb symbols text on headerline when there is an warning in symbols range.","title":"lsp-headerline-breadcrumb-symbols-warning-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-unknown-project-prefix-face","text":"Type: face Default: ((t :inherit shadow :weight bold)) Face used for breadcrumb prefix on headerline. Only if lsp-headerline-breadcrumb-prefix is project-name-only .","title":"lsp-headerline-breadcrumb-unknown-project-prefix-face"},{"location":"page/settings/icons/","text":"Icons # lsp-headerline-breadcrumb-icons-enable # Type: boolean Default: t If non-nil, icons support is enabled for headerline-breadcrumb.","title":"Icons"},{"location":"page/settings/icons/#icons","text":"","title":"Icons"},{"location":"page/settings/icons/#lsp-headerline-breadcrumb-icons-enable","text":"Type: boolean Default: t If non-nil, icons support is enabled for headerline-breadcrumb.","title":"lsp-headerline-breadcrumb-icons-enable"},{"location":"page/settings/ido/","text":"Ido # lsp-ido-show-symbol-filename # Type: boolean Default: t Whether to show the project-relative path to a symbol`s point of definition. lsp-ido-show-symbol-kind # Type: boolean Default: t Whether to show the symbol`s kind when showing lsp symbols. lsp-ido-symbol-kind-to-string # Type: vector Default: [ File Modu Nmsp Pack Clss Meth Prop Fld Cons Enum Intf Func Var Cnst Str Num Bool Arr Obj Key Null EmMm Srct Evnt Op TPar] A vector of 26 items representing the SymbolKind.","title":"Ido"},{"location":"page/settings/ido/#ido","text":"","title":"Ido"},{"location":"page/settings/ido/#lsp-ido-show-symbol-filename","text":"Type: boolean Default: t Whether to show the project-relative path to a symbol`s point of definition.","title":"lsp-ido-show-symbol-filename"},{"location":"page/settings/ido/#lsp-ido-show-symbol-kind","text":"Type: boolean Default: t Whether to show the symbol`s kind when showing lsp symbols.","title":"lsp-ido-show-symbol-kind"},{"location":"page/settings/ido/#lsp-ido-symbol-kind-to-string","text":"Type: vector Default: [ File Modu Nmsp Pack Clss Meth Prop Fld Cons Enum Intf Func Var Cnst Str Num Bool Arr Obj Key Null EmMm Srct Evnt Op TPar] A vector of 26 items representing the SymbolKind.","title":"lsp-ido-symbol-kind-to-string"},{"location":"page/settings/iedit/","text":"Iedit # No custom variables available.","title":"Iedit"},{"location":"page/settings/iedit/#iedit","text":"No custom variables available.","title":"Iedit"},{"location":"page/settings/lens/","text":"Lens # lsp-lens-debounce-interval # Type: number Default: 0.001 Debounce interval for loading lenses. lsp-lens-enable # Type: boolean Default: t Auto enable lenses if server supports. lsp-lens-face # Type: face Default: ((t :inherit lsp-details-face)) The face used for code lens overlays. lsp-lens-mouse-face # Type: face Default: ((t :height 0.8 :inherit link)) The face used for code lens overlays. lsp-lens-place-position # Type: (choice (const above-line) (const end-of-line)) Default: end-of-line The position to place lens relative to returned lens position.","title":"Lens"},{"location":"page/settings/lens/#lens","text":"","title":"Lens"},{"location":"page/settings/lens/#lsp-lens-debounce-interval","text":"Type: number Default: 0.001 Debounce interval for loading lenses.","title":"lsp-lens-debounce-interval"},{"location":"page/settings/lens/#lsp-lens-enable","text":"Type: boolean Default: t Auto enable lenses if server supports.","title":"lsp-lens-enable"},{"location":"page/settings/lens/#lsp-lens-face","text":"Type: face Default: ((t :inherit lsp-details-face)) The face used for code lens overlays.","title":"lsp-lens-face"},{"location":"page/settings/lens/#lsp-lens-mouse-face","text":"Type: face Default: ((t :height 0.8 :inherit link)) The face used for code lens overlays.","title":"lsp-lens-mouse-face"},{"location":"page/settings/lens/#lsp-lens-place-position","text":"Type: (choice (const above-line) (const end-of-line)) Default: end-of-line The position to place lens relative to returned lens position.","title":"lsp-lens-place-position"},{"location":"page/settings/mode/","text":"Core # lsp-after-apply-edits-hook # Type: hook Default: nil Hooks to run when text edit is applied. It contains the operation source. lsp-after-diagnostics-hook # Type: hook Default: nil Hooks to run after diagnostics are received. lsp-after-initialize-hook # Type: hook Default: nil List of functions to be called after a Language Server has been initialized for a new workspace. lsp-after-open-hook # Type: hook Default: nil List of functions to be called after a new file with LSP support is opened. lsp-after-uninitialized-functions # Type: hook Default: nil List of functions to be called after a Language Server has been uninitialized. lsp-apply-edits-after-file-operations # Type: boolean Default: t Whether to apply edits returned by server after file operations if any. Applicable only if server supports workspace.fileOperations for operations: workspace/willRenameFiles , workspace/willCreateFiles and workspace/willDeleteFiles . lsp-auto-configure # Type: boolean Default: t Auto configure lsp-mode main features. When set to t lsp-mode will auto-configure completion, code-actions, breadcrumb, flycheck , flymake , imenu , symbol highlighting, lenses, links, and so on. For finer granularity you may use lsp-enable-* properties. lsp-auto-execute-action # Type: boolean Default: t Auto-execute single action. lsp-auto-guess-root # Type: boolean Default: nil Automatically guess the project root using projectile/project. Do not use this setting unless you are familiar with lsp-mode internals and you are sure that all of your projects are following projectile / project.el conventions. lsp-auto-select-workspace # Type: boolean Default: t Shutdown or restart a single workspace. If set and the current buffer has only a single workspace associated with it, lsp-shutdown-workspace and lsp-restart-workspace will act on it without asking. lsp-auto-touch-files # Type: boolean Default: t If non-nil ensure the files exist before sending textDocument/didOpen notification. lsp-before-apply-edits-hook # Type: hook Default: nil Hooks to run before applying edits. lsp-before-initialize-hook # Type: hook Default: nil List of functions to be called before a Language Server has been initialized for a new workspace. lsp-before-open-hook # Type: hook Default: nil List of functions to be called before a new file with LSP support is opened. lsp-before-save-edits # Type: boolean Default: t If non-nil, lsp-mode will apply edits suggested by the language server before saving a document. lsp-client-packages # Type: (repeat symbol) Default: (ccls lsp-actionscript lsp-ada lsp-angular lsp-ansible lsp-awk lsp-astro lsp-bash lsp-beancount lsp-clangd lsp-clojure lsp-cmake lsp-credo lsp-crystal lsp-csharp lsp-css lsp-d lsp-dart lsp-dhall lsp-docker lsp-dockerfile lsp-elm lsp-elixir lsp-emmet lsp-erlang lsp-eslint lsp-fortran lsp-fsharp lsp-gdscript lsp-go lsp-gleam lsp-glsl lsp-graphql lsp-hack lsp-grammarly lsp-groovy lsp-haskell lsp-haxe lsp-idris lsp-java lsp-javascript lsp-json lsp-kotlin lsp-latex lsp-ltex lsp-lua lsp-markdown lsp-marksman lsp-mdx lsp-mint lsp-move lsp-nginx lsp-nim lsp-nix lsp-magik lsp-metals lsp-mssql lsp-ocaml lsp-openscad lsp-pascal lsp-perl lsp-perlnavigator lsp-pls lsp-php lsp-pwsh lsp-pyls lsp-pylsp lsp-pyright lsp-python-ms lsp-purescript lsp-r lsp-racket lsp-remark lsp-ruff-lsp lsp-rf lsp-rubocop lsp-rust lsp-semgrep lsp-shader lsp-solargraph lsp-sorbet lsp-sourcekit lsp-sonarlint lsp-tailwindcss lsp-tex lsp-terraform lsp-toml lsp-ttcn3 lsp-typeprof lsp-v lsp-vala lsp-verilog lsp-vetur lsp-volar lsp-vhdl lsp-vimscript lsp-xml lsp-yaml lsp-ruby-lsp lsp-ruby-syntax-tree lsp-sqls lsp-svelte lsp-steep lsp-tilt lsp-zig) List of the clients to be automatically required. lsp-completion-default-behaviour # Type: (choice (const :insert :tag Default completion inserts) (const :replace :tag Default completion replaces)) Default: :replace Default behaviour of InsertReplaceEdit . lsp-configure-hook # Type: hook Default: ((closure (flymake-mode flymake-diagnostic-functions lsp-diagnostics-mode flycheck-checkers flycheck-checker flycheck-check-syntax-automatically flycheck-mode t) nil (if lsp-auto-configure (progn (lsp-diagnostics--enable)))) (closure (company-abort-on-unique-match company-backends yas-indent-line t) nil (if (and lsp-auto-configure lsp-completion-enable) (progn (lsp-completion--enable))))) Hooks to run when lsp-configure-buffer is called. lsp-debounce-full-sync-notifications # Type: boolean Default: t If non-nil debounce full sync events. This flag affects only servers which do not support incremental updates. lsp-debounce-full-sync-notifications-interval # Type: float Default: 1.0 Time to wait before sending full sync synchronization after buffer modification. lsp-default-create-error-handler-fn # Type: function Default: nil Default error handler customization. Handler should give METHOD as argument and return function of one argument ERROR. lsp-details-face # Type: face Default: ((t :height 0.8 :inherit shadow)) Used to display additional information throughout lsp . Things like line numbers, signatures, ... are considered additional information. Often, additional faces are defined that inherit from this face by default, like lsp-signature-face , and they may be customized for finer control. lsp-diagnostics-updated-hook # Type: hook Default: nil Hooks to run after diagnostics are received. lsp-disabled-clients # Type: (repeat (symbol)) Default: nil A list of disabled/blacklisted clients. Each entry in the list can be either: a symbol, the server-id for the LSP client, or a cons pair (MAJOR-MODE . CLIENTS), where MAJOR-MODE is the major-mode, and CLIENTS is either a client or a list of clients. This option can also be used as a file- or directory-local variable to disable a language server for individual files or directories/projects respectively. lsp-display-inline-image # Type: boolean Default: t Showing inline image or not. lsp-document-sync-method # Type: (choice (const :tag Documents should not be synced at all. nil) (const :tag Documents are synced by always sending the full content of the document. lsp--sync-full) (const :tag Documents are synced by always sending incremental changes to the document. lsp--sync-incremental) (const :tag Use the method recommended by the language server. nil)) Default: nil How to sync the document with the language server. lsp-eldoc-enable-hover # Type: boolean Default: t If non-nil, eldoc will display hover info when it is present. lsp-eldoc-render-all # Type: boolean Default: nil Display all of the info returned by document/onHover. If this is set to nil, eldoc will show only the symbol information. lsp-enable-dap-auto-configure # Type: boolean Default: t If non-nil, enable dap-auto-configure-mode . lsp-enable-file-watchers # Type: boolean Default: t If non-nil lsp-mode will watch the files in the workspace if the server has requested that. lsp-enable-folding # Type: boolean Default: t Enable/disable code folding support. lsp-enable-imenu # Type: boolean Default: t If non-nil, automatically enable imenu integration when server provides textDocument/documentSymbol . lsp-enable-indentation # Type: boolean Default: t Indent regions using the file formatting functionality provided by the language server. lsp-enable-links # Type: boolean Default: t If non-nil, all references to links in a file will be made clickable, if supported by the language server. lsp-enable-on-type-formatting # Type: boolean Default: t Enable textDocument/onTypeFormatting integration. lsp-enable-suggest-server-download # Type: boolean Default: t When non-nil enable server downloading suggestions. lsp-enable-symbol-highlighting # Type: boolean Default: t Highlight references of the symbol at point. lsp-enable-text-document-color # Type: boolean Default: t Enable textDocument/documentColor integration. lsp-enable-xref # Type: boolean Default: t Enable xref integration. lsp-face-highlight-read # Type: face Default: ((t :inherit highlight :underline t)) Face used for highlighting symbols being read. lsp-face-highlight-textual # Type: face Default: ((t :inherit highlight)) Face used for textual occurrences of symbols. lsp-face-highlight-write # Type: face Default: ((t :inherit highlight :weight bold)) Face used for highlighting symbols being written to. lsp-face-rename # Type: face Default: ((t :underline t)) Face used to highlight the identifier being renamed. Renaming can be done using lsp-rename . lsp-file-watch-ignored-directories # Type: (repeat string) Default: ([/\\\\]\\.git\\' [/\\\\]\\.github\\' [/\\\\]\\.gitlab\\' [/\\\\]\\.circleci\\' [/\\\\]\\.hg\\' [/\\\\]\\.bzr\\' [/\\\\]_darcs\\' [/\\\\]\\.svn\\' [/\\\\]_FOSSIL_\\' [/\\\\]\\.idea\\' [/\\\\]\\.ensime_cache\\' [/\\\\]\\.eunit\\' [/\\\\]node_modules [/\\\\]\\.yarn\\' [/\\\\]\\.fslckout\\' [/\\\\]\\.tox\\' [/\\\\]\\.nox\\' [/\\\\]dist\\' [/\\\\]dist-newstyle\\' [/\\\\]\\.stack-work\\' [/\\\\]\\.bloop\\' [/\\\\]\\.metals\\' [/\\\\]target\\' [/\\\\]\\.ccls-cache\\' [/\\\\]\\.vscode\\' [/\\\\]\\.venv\\' [/\\\\]\\.mypy_cache\\' [/\\\\]\\.pytest_cache\\' [/\\\\]\\.build\\' [/\\\\]__pycache__\\' [/\\\\]\\.deps\\' [/\\\\]build-aux\\' [/\\\\]autom4te.cache\\' [/\\\\]\\.reference\\' [/\\\\]bazel-[^/\\\\]+\\' [/\\\\]\\.meta\\' [/\\\\]Library\\' [/\\\\]\\.lsp\\' [/\\\\]\\.clj-kondo\\' [/\\\\]\\.shadow-cljs\\' [/\\\\]\\.babel_cache\\' [/\\\\]\\.cpcache\\' [/\\\\]\\checkouts\\' [/\\\\]\\.gradle\\' [/\\\\]\\.m2\\' [/\\\\]bin/Debug\\' [/\\\\]obj\\' [/\\\\]_opam\\' [/\\\\]_build\\' [/\\\\]\\.elixir_ls\\' [/\\\\]\\.elixir-tools\\' [/\\\\]\\.terraform\\' [/\\\\]\\.terragrunt-cache\\' [/\\\\]\\.direnv\\') List of regexps matching directory paths which won`t be monitored when creating file watches. Customization of this variable is only honored at the global level or at a root of an lsp workspace. lsp-file-watch-ignored-files # Type: (repeat string) Default: ([/\\\\]flycheck_[^/\\\\]+\\' [/\\\\]\\.#[^/\\\\]+\\' [/\\\\][^/\\\\]+~\\') List of regexps matching files for which change events will not be sent to the server. This setting has no impact on whether a file-watch is created for a directory; it merely prevents notifications pertaining to matched files from being sent to the server. To prevent a file-watch from being created for a directory, customize lsp-file-watch-ignored-directories Customization of this variable is only honored at the global level or at a root of an lsp workspace. lsp-file-watch-threshold # Type: number Default: 1000 Show warning if the files to watch are more than. Set to nil to disable the warning. lsp-folding-line-folding-only # Type: boolean Default: nil If non-nil, only fold complete lines. lsp-folding-range-limit # Type: (choice (const :tag No limit. nil) (integer :tag Number of lines.)) Default: nil The maximum number of folding ranges to receive from the language server. lsp-guess-root-without-session # Type: boolean Default: nil Ignore the session file when calculating the project root. You almost always want to set lsp-auto-guess-root too. Do not use this setting unless you are familiar with lsp-mode internals and you are sure that all of your projects are following projectile / project.el conventions. lsp-gunzip-script # Type: string Default: (closure (view-inhibit-help-message lsp-help-mode-abbrev-table lsp-help-mode-syntax-table eldoc-documentation-default cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines company-minimum-prefix-length dap-ui-menu-items dap-auto-configure-mode yas-also-auto-indent-first-line yas-wrap-around-region yas-indent-line yas-inhibit-overlay-modification-protection t) nil (cond ((executable-find gzip) lsp-ext-gunzip-script) (t nil))) The script to decompress a gzipped file. Should be a format string with one argument for the file to be decompressed in place. lsp-idle-delay # Type: number Default: 0.5 Debounce interval for after-change-functions . lsp-inlay-hint-enable # Type: boolean Default: nil If non-nil it will enable inlay hints. lsp-inlay-hint-face # Type: face Default: ((t :inherit font-lock-comment-face)) The face to use for the JavaScript inlays. lsp-inlay-hint-param-format # Type: (string :tag String) Default: %s Format string for parameter inlays (part of the inlay face). lsp-inlay-hint-parameter-face # Type: face Default: ((t :inherit lsp-inlay-hint-face)) Face for inlay parameter hints (e.g. function parameter names at call-site). lsp-inlay-hint-type-face # Type: face Default: ((t :inherit lsp-inlay-hint-face)) Face for inlay type hints (e.g. inferred variable types). lsp-inlay-hint-type-format # Type: (string :tag String) Default: %s Format string for variable inlays (part of the inlay face). lsp-insert-final-newline # Type: boolean Default: t Insert a newline character at the end of the file if one does not exist. lsp-installation-buffer-face # Type: face Default: ((t :foreground green)) Face used for installation buffers still in progress. Used in lsp-select-installation-buffer . lsp-installation-finished-buffer-face # Type: face Default: ((t :foreground orange)) Face used for finished installation buffers. Used in lsp-select-installation-buffer . lsp-io-messages-max # Type: (choice (const :tag Unlimited t) (integer :tag Messages)) Default: t Maximum number of messages that can be locked in a lsp-io buffer. lsp-keep-workspace-alive # Type: boolean Default: t If non nil keep workspace alive when the last workspace buffer is closed. lsp-keymap-prefix # Type: string Default: s-l LSP-mode keymap prefix. lsp-log-io # Type: boolean Default: nil If non-nil, log all messages from the language server to a lsp-log buffer. lsp-log-io-allowlist-methods # Type: (repeat string) Default: nil The methods to filter before print to lsp-log-io. lsp-log-max # Type: (choice (const :tag Disable nil) (integer :tag lines) (const :tag Unlimited t)) Default: 1000 Maximum number of lines to keep in the log buffer. If nil, disable message logging. If t, log messages but don`t truncate the buffer when it becomes large. lsp-on-change-hook # Type: hook Default: nil Hooks to run when buffer has changed. lsp-on-idle-hook # Type: hook Default: nil Hooks to run after lsp-idle-delay . lsp-overlay-document-color-char # Type: string Default: \u25a0 Display the char represent the document color in overlay lsp-progress-function # Type: (choice (const :tag Use modeline lsp-on-progress-modeline) (const :tag Legacy(uses either progress-reporter' or spinner' based on lsp-progress-via-spinner') lsp-on-progress-legacy) (const ignore :tag Ignore) (function :tag Other function))` Default: lsp-on-progress-modeline Function for handling the progress notifications. lsp-progress-prefix # Type: string Default: \u231b Progress prefix. lsp-progress-spinner-type # Type: (choice :tag Choose a spinner by name (const 3-line-clock) (const 2-line-clock) (const flipping-line) (const rotating-line) (const progress-bar) (const progress-bar-filled) (const vertical-breathing) (const vertical-rising) (const horizontal-breathing) (const horizontal-breathing-long) (const horizontal-moving) (const minibox) (const triangle) (const box-in-box) (const box-in-circle) (const half-circle) (const moon)) Default: progress-bar Holds the type of spinner to be used in the mode-line. Takes a value accepted by spinner-start . lsp-progress-via-spinner # Type: boolean Default: t If non-nil, display LSP $/progress reports via a spinner in the modeline. lsp-references-exclude-definition # Type: boolean Default: nil If non-nil, exclude declarations when finding references. lsp-rename-placeholder-face # Type: face Default: ((t :inherit font-lock-variable-name-face)) Face used to display the rename placeholder in. When calling lsp-rename interactively, this will be the face of the new name. lsp-rename-use-prepare # Type: boolean Default: t Whether lsp-rename should do a prepareRename first. For some language servers, textDocument/prepareRename might be too slow, in which case this variable may be set to nil. lsp-rename will then use thing-at-point symbol to determine the symbol to rename at point. lsp-request-while-no-input-may-block # Type: boolean Default: nil Have lsp-request-while-no-input block unless non-essential is t. lsp-response-timeout # Type: (choice (number :tag Seconds) (const :tag No timeout nil)) Default: 10 Number of seconds to wait for a response from the language server before timing out. Nil if no timeout. lsp-restart # Type: (choice (const interactive) (const auto-restart) (const ignore)) Default: interactive Defines how server-exited events must be handled. lsp-server-install-dir # Type: directory Default: ~/.emacs.d/.cache/lsp Directory in which the servers will be installed. lsp-server-trace # Type: (choice (const :tag Disabled off) (const :tag Messages only messages) (const :tag Verbose verbose) (const :tag Default (disabled) nil)) Default: nil Request tracing on the server side. The actual trace output at each level depends on the language server in use. Changes take effect only when a new session is started. lsp-session-file # Type: file Default: ~/.emacs.d/.lsp-session-v1 File where session information is stored. lsp-signature-auto-activate # Type: (repeat (choice (const :tag On trigger chars pressed. :on-trigger-char) (const :tag After selected completion. :after-completion) (const :tag When the server has sent show signature help. :on-server-request))) Default: (:on-trigger-char :on-server-request) Auto activate signature conditions. lsp-signature-cycle # Type: boolean Default: t Whether lsp-signature-next and prev should cycle. lsp-signature-doc-lines # Type: number Default: 20 If number, limit the number of lines to show in the docs. lsp-signature-face # Type: face Default: ((t :inherit lsp-details-face)) Used to display signatures in imenu , .... lsp-signature-function # Type: function Default: lsp-lv-message The function used for displaying signature info. It will be called with one param - the signature info. When called with nil the signature info must be cleared. lsp-signature-posframe # Type: face Default: ((t :inherit tooltip)) Background and foreground for lsp-signature-posframe . lsp-signature-render-documentation # Type: boolean Default: t Display signature documentation in eldoc . lsp-symbol-highlighting-skip-current # Type: boolean Default: nil If non-nil skip current symbol when setting symbol highlights. lsp-symbol-kinds # Type: (alist :key-type integer :value-type string) Default: ((1 . File) (2 . Module) (3 . Namespace) (4 . Package) (5 . Class) (6 . Method) (7 . Property) (8 . Field) (9 . Constructor) (10 . Enum) (11 . Interface) (12 . Function) (13 . Variable) (14 . Constant) (15 . String) (16 . Number) (17 . Boolean) (18 . Array) (19 . Object) (20 . Key) (21 . Null) (22 . Enum Member) (23 . Struct) (24 . Event) (25 . Operator) (26 . Type Parameter)) Alist mapping SymbolKinds to human-readable strings. Various Symbol objects in the LSP protocol have an integral type, specifying what they are. This alist maps such type integrals to readable representations of them. See https://microsoft.github.io/language-server-protocol/specifications/specification-current/ , namespace SymbolKind. lsp-tar-script # Type: string Default: (closure (view-inhibit-help-message lsp-help-mode-abbrev-table lsp-help-mode-syntax-table eldoc-documentation-default cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines company-minimum-prefix-length dap-ui-menu-items dap-auto-configure-mode yas-also-auto-indent-first-line yas-wrap-around-region yas-indent-line yas-inhibit-overlay-modification-protection t) nil (cond ((executable-find tar) lsp-ext-tar-script) (t nil))) The script to decompress a .tar.gz file. Should be a format string with one argument for the file to be decompressed in place. lsp-tcp-connection-timeout # Type: number Default: 2 The timeout for tcp connection in seconds. lsp-trim-final-newlines # Type: boolean Default: t Trim all newlines after the final newline at the end of the file. lsp-trim-trailing-whitespace # Type: boolean Default: t Trim trailing whitespace on a line. lsp-unconfigure-hook # Type: hook Default: nil Hooks to run when lsp-unconfig-buffer is called. lsp-unzip-script # Type: string Default: (closure (view-inhibit-help-message lsp-help-mode-abbrev-table lsp-help-mode-syntax-table eldoc-documentation-default cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines company-minimum-prefix-length dap-ui-menu-items dap-auto-configure-mode yas-also-auto-indent-first-line yas-wrap-around-region yas-indent-line yas-inhibit-overlay-modification-protection t) nil (cond ((executable-find unzip) lsp-ext-unzip-script) ((executable-find powershell) lsp-ext-pwsh-script) (t nil))) The script to unzip. lsp-verify-signature # Type: boolean Default: t Whether to check GPG signatures of downloaded files. lsp-vscode-ext-url # Type: string Default: https://marketplace.visualstudio.com/_apis/public/gallery/publishers/%s/vsextensions/%s/%s/vspackage%s Vscode extension template url. lsp-warn-no-matched-clients # Type: boolean Default: t Whether to show messages when there are no supported clients. lsp-workspace-folders-changed-functions # Type: hook Default: nil Hooks to run after the folders has changed. The hook will receive two parameters list of added and removed folders. lsp-xref-force-references # Type: boolean Default: nil If non-nil threat everything as references(e. g. jump if only one item.)","title":"Core"},{"location":"page/settings/mode/#core","text":"","title":"Core"},{"location":"page/settings/mode/#lsp-after-apply-edits-hook","text":"Type: hook Default: nil Hooks to run when text edit is applied. It contains the operation source.","title":"lsp-after-apply-edits-hook"},{"location":"page/settings/mode/#lsp-after-diagnostics-hook","text":"Type: hook Default: nil Hooks to run after diagnostics are received.","title":"lsp-after-diagnostics-hook"},{"location":"page/settings/mode/#lsp-after-initialize-hook","text":"Type: hook Default: nil List of functions to be called after a Language Server has been initialized for a new workspace.","title":"lsp-after-initialize-hook"},{"location":"page/settings/mode/#lsp-after-open-hook","text":"Type: hook Default: nil List of functions to be called after a new file with LSP support is opened.","title":"lsp-after-open-hook"},{"location":"page/settings/mode/#lsp-after-uninitialized-functions","text":"Type: hook Default: nil List of functions to be called after a Language Server has been uninitialized.","title":"lsp-after-uninitialized-functions"},{"location":"page/settings/mode/#lsp-apply-edits-after-file-operations","text":"Type: boolean Default: t Whether to apply edits returned by server after file operations if any. Applicable only if server supports workspace.fileOperations for operations: workspace/willRenameFiles , workspace/willCreateFiles and workspace/willDeleteFiles .","title":"lsp-apply-edits-after-file-operations"},{"location":"page/settings/mode/#lsp-auto-configure","text":"Type: boolean Default: t Auto configure lsp-mode main features. When set to t lsp-mode will auto-configure completion, code-actions, breadcrumb, flycheck , flymake , imenu , symbol highlighting, lenses, links, and so on. For finer granularity you may use lsp-enable-* properties.","title":"lsp-auto-configure"},{"location":"page/settings/mode/#lsp-auto-execute-action","text":"Type: boolean Default: t Auto-execute single action.","title":"lsp-auto-execute-action"},{"location":"page/settings/mode/#lsp-auto-guess-root","text":"Type: boolean Default: nil Automatically guess the project root using projectile/project. Do not use this setting unless you are familiar with lsp-mode internals and you are sure that all of your projects are following projectile / project.el conventions.","title":"lsp-auto-guess-root"},{"location":"page/settings/mode/#lsp-auto-select-workspace","text":"Type: boolean Default: t Shutdown or restart a single workspace. If set and the current buffer has only a single workspace associated with it, lsp-shutdown-workspace and lsp-restart-workspace will act on it without asking.","title":"lsp-auto-select-workspace"},{"location":"page/settings/mode/#lsp-auto-touch-files","text":"Type: boolean Default: t If non-nil ensure the files exist before sending textDocument/didOpen notification.","title":"lsp-auto-touch-files"},{"location":"page/settings/mode/#lsp-before-apply-edits-hook","text":"Type: hook Default: nil Hooks to run before applying edits.","title":"lsp-before-apply-edits-hook"},{"location":"page/settings/mode/#lsp-before-initialize-hook","text":"Type: hook Default: nil List of functions to be called before a Language Server has been initialized for a new workspace.","title":"lsp-before-initialize-hook"},{"location":"page/settings/mode/#lsp-before-open-hook","text":"Type: hook Default: nil List of functions to be called before a new file with LSP support is opened.","title":"lsp-before-open-hook"},{"location":"page/settings/mode/#lsp-before-save-edits","text":"Type: boolean Default: t If non-nil, lsp-mode will apply edits suggested by the language server before saving a document.","title":"lsp-before-save-edits"},{"location":"page/settings/mode/#lsp-client-packages","text":"Type: (repeat symbol) Default: (ccls lsp-actionscript lsp-ada lsp-angular lsp-ansible lsp-awk lsp-astro lsp-bash lsp-beancount lsp-clangd lsp-clojure lsp-cmake lsp-credo lsp-crystal lsp-csharp lsp-css lsp-d lsp-dart lsp-dhall lsp-docker lsp-dockerfile lsp-elm lsp-elixir lsp-emmet lsp-erlang lsp-eslint lsp-fortran lsp-fsharp lsp-gdscript lsp-go lsp-gleam lsp-glsl lsp-graphql lsp-hack lsp-grammarly lsp-groovy lsp-haskell lsp-haxe lsp-idris lsp-java lsp-javascript lsp-json lsp-kotlin lsp-latex lsp-ltex lsp-lua lsp-markdown lsp-marksman lsp-mdx lsp-mint lsp-move lsp-nginx lsp-nim lsp-nix lsp-magik lsp-metals lsp-mssql lsp-ocaml lsp-openscad lsp-pascal lsp-perl lsp-perlnavigator lsp-pls lsp-php lsp-pwsh lsp-pyls lsp-pylsp lsp-pyright lsp-python-ms lsp-purescript lsp-r lsp-racket lsp-remark lsp-ruff-lsp lsp-rf lsp-rubocop lsp-rust lsp-semgrep lsp-shader lsp-solargraph lsp-sorbet lsp-sourcekit lsp-sonarlint lsp-tailwindcss lsp-tex lsp-terraform lsp-toml lsp-ttcn3 lsp-typeprof lsp-v lsp-vala lsp-verilog lsp-vetur lsp-volar lsp-vhdl lsp-vimscript lsp-xml lsp-yaml lsp-ruby-lsp lsp-ruby-syntax-tree lsp-sqls lsp-svelte lsp-steep lsp-tilt lsp-zig) List of the clients to be automatically required.","title":"lsp-client-packages"},{"location":"page/settings/mode/#lsp-completion-default-behaviour","text":"Type: (choice (const :insert :tag Default completion inserts) (const :replace :tag Default completion replaces)) Default: :replace Default behaviour of InsertReplaceEdit .","title":"lsp-completion-default-behaviour"},{"location":"page/settings/mode/#lsp-configure-hook","text":"Type: hook Default: ((closure (flymake-mode flymake-diagnostic-functions lsp-diagnostics-mode flycheck-checkers flycheck-checker flycheck-check-syntax-automatically flycheck-mode t) nil (if lsp-auto-configure (progn (lsp-diagnostics--enable)))) (closure (company-abort-on-unique-match company-backends yas-indent-line t) nil (if (and lsp-auto-configure lsp-completion-enable) (progn (lsp-completion--enable))))) Hooks to run when lsp-configure-buffer is called.","title":"lsp-configure-hook"},{"location":"page/settings/mode/#lsp-debounce-full-sync-notifications","text":"Type: boolean Default: t If non-nil debounce full sync events. This flag affects only servers which do not support incremental updates.","title":"lsp-debounce-full-sync-notifications"},{"location":"page/settings/mode/#lsp-debounce-full-sync-notifications-interval","text":"Type: float Default: 1.0 Time to wait before sending full sync synchronization after buffer modification.","title":"lsp-debounce-full-sync-notifications-interval"},{"location":"page/settings/mode/#lsp-default-create-error-handler-fn","text":"Type: function Default: nil Default error handler customization. Handler should give METHOD as argument and return function of one argument ERROR.","title":"lsp-default-create-error-handler-fn"},{"location":"page/settings/mode/#lsp-details-face","text":"Type: face Default: ((t :height 0.8 :inherit shadow)) Used to display additional information throughout lsp . Things like line numbers, signatures, ... are considered additional information. Often, additional faces are defined that inherit from this face by default, like lsp-signature-face , and they may be customized for finer control.","title":"lsp-details-face"},{"location":"page/settings/mode/#lsp-diagnostics-updated-hook","text":"Type: hook Default: nil Hooks to run after diagnostics are received.","title":"lsp-diagnostics-updated-hook"},{"location":"page/settings/mode/#lsp-disabled-clients","text":"Type: (repeat (symbol)) Default: nil A list of disabled/blacklisted clients. Each entry in the list can be either: a symbol, the server-id for the LSP client, or a cons pair (MAJOR-MODE . CLIENTS), where MAJOR-MODE is the major-mode, and CLIENTS is either a client or a list of clients. This option can also be used as a file- or directory-local variable to disable a language server for individual files or directories/projects respectively.","title":"lsp-disabled-clients"},{"location":"page/settings/mode/#lsp-display-inline-image","text":"Type: boolean Default: t Showing inline image or not.","title":"lsp-display-inline-image"},{"location":"page/settings/mode/#lsp-document-sync-method","text":"Type: (choice (const :tag Documents should not be synced at all. nil) (const :tag Documents are synced by always sending the full content of the document. lsp--sync-full) (const :tag Documents are synced by always sending incremental changes to the document. lsp--sync-incremental) (const :tag Use the method recommended by the language server. nil)) Default: nil How to sync the document with the language server.","title":"lsp-document-sync-method"},{"location":"page/settings/mode/#lsp-eldoc-enable-hover","text":"Type: boolean Default: t If non-nil, eldoc will display hover info when it is present.","title":"lsp-eldoc-enable-hover"},{"location":"page/settings/mode/#lsp-eldoc-render-all","text":"Type: boolean Default: nil Display all of the info returned by document/onHover. If this is set to nil, eldoc will show only the symbol information.","title":"lsp-eldoc-render-all"},{"location":"page/settings/mode/#lsp-enable-dap-auto-configure","text":"Type: boolean Default: t If non-nil, enable dap-auto-configure-mode .","title":"lsp-enable-dap-auto-configure"},{"location":"page/settings/mode/#lsp-enable-file-watchers","text":"Type: boolean Default: t If non-nil lsp-mode will watch the files in the workspace if the server has requested that.","title":"lsp-enable-file-watchers"},{"location":"page/settings/mode/#lsp-enable-folding","text":"Type: boolean Default: t Enable/disable code folding support.","title":"lsp-enable-folding"},{"location":"page/settings/mode/#lsp-enable-imenu","text":"Type: boolean Default: t If non-nil, automatically enable imenu integration when server provides textDocument/documentSymbol .","title":"lsp-enable-imenu"},{"location":"page/settings/mode/#lsp-enable-indentation","text":"Type: boolean Default: t Indent regions using the file formatting functionality provided by the language server.","title":"lsp-enable-indentation"},{"location":"page/settings/mode/#lsp-enable-links","text":"Type: boolean Default: t If non-nil, all references to links in a file will be made clickable, if supported by the language server.","title":"lsp-enable-links"},{"location":"page/settings/mode/#lsp-enable-on-type-formatting","text":"Type: boolean Default: t Enable textDocument/onTypeFormatting integration.","title":"lsp-enable-on-type-formatting"},{"location":"page/settings/mode/#lsp-enable-suggest-server-download","text":"Type: boolean Default: t When non-nil enable server downloading suggestions.","title":"lsp-enable-suggest-server-download"},{"location":"page/settings/mode/#lsp-enable-symbol-highlighting","text":"Type: boolean Default: t Highlight references of the symbol at point.","title":"lsp-enable-symbol-highlighting"},{"location":"page/settings/mode/#lsp-enable-text-document-color","text":"Type: boolean Default: t Enable textDocument/documentColor integration.","title":"lsp-enable-text-document-color"},{"location":"page/settings/mode/#lsp-enable-xref","text":"Type: boolean Default: t Enable xref integration.","title":"lsp-enable-xref"},{"location":"page/settings/mode/#lsp-face-highlight-read","text":"Type: face Default: ((t :inherit highlight :underline t)) Face used for highlighting symbols being read.","title":"lsp-face-highlight-read"},{"location":"page/settings/mode/#lsp-face-highlight-textual","text":"Type: face Default: ((t :inherit highlight)) Face used for textual occurrences of symbols.","title":"lsp-face-highlight-textual"},{"location":"page/settings/mode/#lsp-face-highlight-write","text":"Type: face Default: ((t :inherit highlight :weight bold)) Face used for highlighting symbols being written to.","title":"lsp-face-highlight-write"},{"location":"page/settings/mode/#lsp-face-rename","text":"Type: face Default: ((t :underline t)) Face used to highlight the identifier being renamed. Renaming can be done using lsp-rename .","title":"lsp-face-rename"},{"location":"page/settings/mode/#lsp-file-watch-ignored-directories","text":"Type: (repeat string) Default: ([/\\\\]\\.git\\' [/\\\\]\\.github\\' [/\\\\]\\.gitlab\\' [/\\\\]\\.circleci\\' [/\\\\]\\.hg\\' [/\\\\]\\.bzr\\' [/\\\\]_darcs\\' [/\\\\]\\.svn\\' [/\\\\]_FOSSIL_\\' [/\\\\]\\.idea\\' [/\\\\]\\.ensime_cache\\' [/\\\\]\\.eunit\\' [/\\\\]node_modules [/\\\\]\\.yarn\\' [/\\\\]\\.fslckout\\' [/\\\\]\\.tox\\' [/\\\\]\\.nox\\' [/\\\\]dist\\' [/\\\\]dist-newstyle\\' [/\\\\]\\.stack-work\\' [/\\\\]\\.bloop\\' [/\\\\]\\.metals\\' [/\\\\]target\\' [/\\\\]\\.ccls-cache\\' [/\\\\]\\.vscode\\' [/\\\\]\\.venv\\' [/\\\\]\\.mypy_cache\\' [/\\\\]\\.pytest_cache\\' [/\\\\]\\.build\\' [/\\\\]__pycache__\\' [/\\\\]\\.deps\\' [/\\\\]build-aux\\' [/\\\\]autom4te.cache\\' [/\\\\]\\.reference\\' [/\\\\]bazel-[^/\\\\]+\\' [/\\\\]\\.meta\\' [/\\\\]Library\\' [/\\\\]\\.lsp\\' [/\\\\]\\.clj-kondo\\' [/\\\\]\\.shadow-cljs\\' [/\\\\]\\.babel_cache\\' [/\\\\]\\.cpcache\\' [/\\\\]\\checkouts\\' [/\\\\]\\.gradle\\' [/\\\\]\\.m2\\' [/\\\\]bin/Debug\\' [/\\\\]obj\\' [/\\\\]_opam\\' [/\\\\]_build\\' [/\\\\]\\.elixir_ls\\' [/\\\\]\\.elixir-tools\\' [/\\\\]\\.terraform\\' [/\\\\]\\.terragrunt-cache\\' [/\\\\]\\.direnv\\') List of regexps matching directory paths which won`t be monitored when creating file watches. Customization of this variable is only honored at the global level or at a root of an lsp workspace.","title":"lsp-file-watch-ignored-directories"},{"location":"page/settings/mode/#lsp-file-watch-ignored-files","text":"Type: (repeat string) Default: ([/\\\\]flycheck_[^/\\\\]+\\' [/\\\\]\\.#[^/\\\\]+\\' [/\\\\][^/\\\\]+~\\') List of regexps matching files for which change events will not be sent to the server. This setting has no impact on whether a file-watch is created for a directory; it merely prevents notifications pertaining to matched files from being sent to the server. To prevent a file-watch from being created for a directory, customize lsp-file-watch-ignored-directories Customization of this variable is only honored at the global level or at a root of an lsp workspace.","title":"lsp-file-watch-ignored-files"},{"location":"page/settings/mode/#lsp-file-watch-threshold","text":"Type: number Default: 1000 Show warning if the files to watch are more than. Set to nil to disable the warning.","title":"lsp-file-watch-threshold"},{"location":"page/settings/mode/#lsp-folding-line-folding-only","text":"Type: boolean Default: nil If non-nil, only fold complete lines.","title":"lsp-folding-line-folding-only"},{"location":"page/settings/mode/#lsp-folding-range-limit","text":"Type: (choice (const :tag No limit. nil) (integer :tag Number of lines.)) Default: nil The maximum number of folding ranges to receive from the language server.","title":"lsp-folding-range-limit"},{"location":"page/settings/mode/#lsp-guess-root-without-session","text":"Type: boolean Default: nil Ignore the session file when calculating the project root. You almost always want to set lsp-auto-guess-root too. Do not use this setting unless you are familiar with lsp-mode internals and you are sure that all of your projects are following projectile / project.el conventions.","title":"lsp-guess-root-without-session"},{"location":"page/settings/mode/#lsp-gunzip-script","text":"Type: string Default: (closure (view-inhibit-help-message lsp-help-mode-abbrev-table lsp-help-mode-syntax-table eldoc-documentation-default cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines company-minimum-prefix-length dap-ui-menu-items dap-auto-configure-mode yas-also-auto-indent-first-line yas-wrap-around-region yas-indent-line yas-inhibit-overlay-modification-protection t) nil (cond ((executable-find gzip) lsp-ext-gunzip-script) (t nil))) The script to decompress a gzipped file. Should be a format string with one argument for the file to be decompressed in place.","title":"lsp-gunzip-script"},{"location":"page/settings/mode/#lsp-idle-delay","text":"Type: number Default: 0.5 Debounce interval for after-change-functions .","title":"lsp-idle-delay"},{"location":"page/settings/mode/#lsp-inlay-hint-enable","text":"Type: boolean Default: nil If non-nil it will enable inlay hints.","title":"lsp-inlay-hint-enable"},{"location":"page/settings/mode/#lsp-inlay-hint-face","text":"Type: face Default: ((t :inherit font-lock-comment-face)) The face to use for the JavaScript inlays.","title":"lsp-inlay-hint-face"},{"location":"page/settings/mode/#lsp-inlay-hint-param-format","text":"Type: (string :tag String) Default: %s Format string for parameter inlays (part of the inlay face).","title":"lsp-inlay-hint-param-format"},{"location":"page/settings/mode/#lsp-inlay-hint-parameter-face","text":"Type: face Default: ((t :inherit lsp-inlay-hint-face)) Face for inlay parameter hints (e.g. function parameter names at call-site).","title":"lsp-inlay-hint-parameter-face"},{"location":"page/settings/mode/#lsp-inlay-hint-type-face","text":"Type: face Default: ((t :inherit lsp-inlay-hint-face)) Face for inlay type hints (e.g. inferred variable types).","title":"lsp-inlay-hint-type-face"},{"location":"page/settings/mode/#lsp-inlay-hint-type-format","text":"Type: (string :tag String) Default: %s Format string for variable inlays (part of the inlay face).","title":"lsp-inlay-hint-type-format"},{"location":"page/settings/mode/#lsp-insert-final-newline","text":"Type: boolean Default: t Insert a newline character at the end of the file if one does not exist.","title":"lsp-insert-final-newline"},{"location":"page/settings/mode/#lsp-installation-buffer-face","text":"Type: face Default: ((t :foreground green)) Face used for installation buffers still in progress. Used in lsp-select-installation-buffer .","title":"lsp-installation-buffer-face"},{"location":"page/settings/mode/#lsp-installation-finished-buffer-face","text":"Type: face Default: ((t :foreground orange)) Face used for finished installation buffers. Used in lsp-select-installation-buffer .","title":"lsp-installation-finished-buffer-face"},{"location":"page/settings/mode/#lsp-io-messages-max","text":"Type: (choice (const :tag Unlimited t) (integer :tag Messages)) Default: t Maximum number of messages that can be locked in a lsp-io buffer.","title":"lsp-io-messages-max"},{"location":"page/settings/mode/#lsp-keep-workspace-alive","text":"Type: boolean Default: t If non nil keep workspace alive when the last workspace buffer is closed.","title":"lsp-keep-workspace-alive"},{"location":"page/settings/mode/#lsp-keymap-prefix","text":"Type: string Default: s-l LSP-mode keymap prefix.","title":"lsp-keymap-prefix"},{"location":"page/settings/mode/#lsp-log-io","text":"Type: boolean Default: nil If non-nil, log all messages from the language server to a lsp-log buffer.","title":"lsp-log-io"},{"location":"page/settings/mode/#lsp-log-io-allowlist-methods","text":"Type: (repeat string) Default: nil The methods to filter before print to lsp-log-io.","title":"lsp-log-io-allowlist-methods"},{"location":"page/settings/mode/#lsp-log-max","text":"Type: (choice (const :tag Disable nil) (integer :tag lines) (const :tag Unlimited t)) Default: 1000 Maximum number of lines to keep in the log buffer. If nil, disable message logging. If t, log messages but don`t truncate the buffer when it becomes large.","title":"lsp-log-max"},{"location":"page/settings/mode/#lsp-on-change-hook","text":"Type: hook Default: nil Hooks to run when buffer has changed.","title":"lsp-on-change-hook"},{"location":"page/settings/mode/#lsp-on-idle-hook","text":"Type: hook Default: nil Hooks to run after lsp-idle-delay .","title":"lsp-on-idle-hook"},{"location":"page/settings/mode/#lsp-overlay-document-color-char","text":"Type: string Default: \u25a0 Display the char represent the document color in overlay","title":"lsp-overlay-document-color-char"},{"location":"page/settings/mode/#lsp-progress-function","text":"Type: (choice (const :tag Use modeline lsp-on-progress-modeline) (const :tag Legacy(uses either progress-reporter' or spinner' based on lsp-progress-via-spinner') lsp-on-progress-legacy) (const ignore :tag Ignore) (function :tag Other function))` Default: lsp-on-progress-modeline Function for handling the progress notifications.","title":"lsp-progress-function"},{"location":"page/settings/mode/#lsp-progress-prefix","text":"Type: string Default: \u231b Progress prefix.","title":"lsp-progress-prefix"},{"location":"page/settings/mode/#lsp-progress-spinner-type","text":"Type: (choice :tag Choose a spinner by name (const 3-line-clock) (const 2-line-clock) (const flipping-line) (const rotating-line) (const progress-bar) (const progress-bar-filled) (const vertical-breathing) (const vertical-rising) (const horizontal-breathing) (const horizontal-breathing-long) (const horizontal-moving) (const minibox) (const triangle) (const box-in-box) (const box-in-circle) (const half-circle) (const moon)) Default: progress-bar Holds the type of spinner to be used in the mode-line. Takes a value accepted by spinner-start .","title":"lsp-progress-spinner-type"},{"location":"page/settings/mode/#lsp-progress-via-spinner","text":"Type: boolean Default: t If non-nil, display LSP $/progress reports via a spinner in the modeline.","title":"lsp-progress-via-spinner"},{"location":"page/settings/mode/#lsp-references-exclude-definition","text":"Type: boolean Default: nil If non-nil, exclude declarations when finding references.","title":"lsp-references-exclude-definition"},{"location":"page/settings/mode/#lsp-rename-placeholder-face","text":"Type: face Default: ((t :inherit font-lock-variable-name-face)) Face used to display the rename placeholder in. When calling lsp-rename interactively, this will be the face of the new name.","title":"lsp-rename-placeholder-face"},{"location":"page/settings/mode/#lsp-rename-use-prepare","text":"Type: boolean Default: t Whether lsp-rename should do a prepareRename first. For some language servers, textDocument/prepareRename might be too slow, in which case this variable may be set to nil. lsp-rename will then use thing-at-point symbol to determine the symbol to rename at point.","title":"lsp-rename-use-prepare"},{"location":"page/settings/mode/#lsp-request-while-no-input-may-block","text":"Type: boolean Default: nil Have lsp-request-while-no-input block unless non-essential is t.","title":"lsp-request-while-no-input-may-block"},{"location":"page/settings/mode/#lsp-response-timeout","text":"Type: (choice (number :tag Seconds) (const :tag No timeout nil)) Default: 10 Number of seconds to wait for a response from the language server before timing out. Nil if no timeout.","title":"lsp-response-timeout"},{"location":"page/settings/mode/#lsp-restart","text":"Type: (choice (const interactive) (const auto-restart) (const ignore)) Default: interactive Defines how server-exited events must be handled.","title":"lsp-restart"},{"location":"page/settings/mode/#lsp-server-install-dir","text":"Type: directory Default: ~/.emacs.d/.cache/lsp Directory in which the servers will be installed.","title":"lsp-server-install-dir"},{"location":"page/settings/mode/#lsp-server-trace","text":"Type: (choice (const :tag Disabled off) (const :tag Messages only messages) (const :tag Verbose verbose) (const :tag Default (disabled) nil)) Default: nil Request tracing on the server side. The actual trace output at each level depends on the language server in use. Changes take effect only when a new session is started.","title":"lsp-server-trace"},{"location":"page/settings/mode/#lsp-session-file","text":"Type: file Default: ~/.emacs.d/.lsp-session-v1 File where session information is stored.","title":"lsp-session-file"},{"location":"page/settings/mode/#lsp-signature-auto-activate","text":"Type: (repeat (choice (const :tag On trigger chars pressed. :on-trigger-char) (const :tag After selected completion. :after-completion) (const :tag When the server has sent show signature help. :on-server-request))) Default: (:on-trigger-char :on-server-request) Auto activate signature conditions.","title":"lsp-signature-auto-activate"},{"location":"page/settings/mode/#lsp-signature-cycle","text":"Type: boolean Default: t Whether lsp-signature-next and prev should cycle.","title":"lsp-signature-cycle"},{"location":"page/settings/mode/#lsp-signature-doc-lines","text":"Type: number Default: 20 If number, limit the number of lines to show in the docs.","title":"lsp-signature-doc-lines"},{"location":"page/settings/mode/#lsp-signature-face","text":"Type: face Default: ((t :inherit lsp-details-face)) Used to display signatures in imenu , ....","title":"lsp-signature-face"},{"location":"page/settings/mode/#lsp-signature-function","text":"Type: function Default: lsp-lv-message The function used for displaying signature info. It will be called with one param - the signature info. When called with nil the signature info must be cleared.","title":"lsp-signature-function"},{"location":"page/settings/mode/#lsp-signature-posframe","text":"Type: face Default: ((t :inherit tooltip)) Background and foreground for lsp-signature-posframe .","title":"lsp-signature-posframe"},{"location":"page/settings/mode/#lsp-signature-render-documentation","text":"Type: boolean Default: t Display signature documentation in eldoc .","title":"lsp-signature-render-documentation"},{"location":"page/settings/mode/#lsp-symbol-highlighting-skip-current","text":"Type: boolean Default: nil If non-nil skip current symbol when setting symbol highlights.","title":"lsp-symbol-highlighting-skip-current"},{"location":"page/settings/mode/#lsp-symbol-kinds","text":"Type: (alist :key-type integer :value-type string) Default: ((1 . File) (2 . Module) (3 . Namespace) (4 . Package) (5 . Class) (6 . Method) (7 . Property) (8 . Field) (9 . Constructor) (10 . Enum) (11 . Interface) (12 . Function) (13 . Variable) (14 . Constant) (15 . String) (16 . Number) (17 . Boolean) (18 . Array) (19 . Object) (20 . Key) (21 . Null) (22 . Enum Member) (23 . Struct) (24 . Event) (25 . Operator) (26 . Type Parameter)) Alist mapping SymbolKinds to human-readable strings. Various Symbol objects in the LSP protocol have an integral type, specifying what they are. This alist maps such type integrals to readable representations of them. See https://microsoft.github.io/language-server-protocol/specifications/specification-current/ , namespace SymbolKind.","title":"lsp-symbol-kinds"},{"location":"page/settings/mode/#lsp-tar-script","text":"Type: string Default: (closure (view-inhibit-help-message lsp-help-mode-abbrev-table lsp-help-mode-syntax-table eldoc-documentation-default cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines company-minimum-prefix-length dap-ui-menu-items dap-auto-configure-mode yas-also-auto-indent-first-line yas-wrap-around-region yas-indent-line yas-inhibit-overlay-modification-protection t) nil (cond ((executable-find tar) lsp-ext-tar-script) (t nil))) The script to decompress a .tar.gz file. Should be a format string with one argument for the file to be decompressed in place.","title":"lsp-tar-script"},{"location":"page/settings/mode/#lsp-tcp-connection-timeout","text":"Type: number Default: 2 The timeout for tcp connection in seconds.","title":"lsp-tcp-connection-timeout"},{"location":"page/settings/mode/#lsp-trim-final-newlines","text":"Type: boolean Default: t Trim all newlines after the final newline at the end of the file.","title":"lsp-trim-final-newlines"},{"location":"page/settings/mode/#lsp-trim-trailing-whitespace","text":"Type: boolean Default: t Trim trailing whitespace on a line.","title":"lsp-trim-trailing-whitespace"},{"location":"page/settings/mode/#lsp-unconfigure-hook","text":"Type: hook Default: nil Hooks to run when lsp-unconfig-buffer is called.","title":"lsp-unconfigure-hook"},{"location":"page/settings/mode/#lsp-unzip-script","text":"Type: string Default: (closure (view-inhibit-help-message lsp-help-mode-abbrev-table lsp-help-mode-syntax-table eldoc-documentation-default cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines company-minimum-prefix-length dap-ui-menu-items dap-auto-configure-mode yas-also-auto-indent-first-line yas-wrap-around-region yas-indent-line yas-inhibit-overlay-modification-protection t) nil (cond ((executable-find unzip) lsp-ext-unzip-script) ((executable-find powershell) lsp-ext-pwsh-script) (t nil))) The script to unzip.","title":"lsp-unzip-script"},{"location":"page/settings/mode/#lsp-verify-signature","text":"Type: boolean Default: t Whether to check GPG signatures of downloaded files.","title":"lsp-verify-signature"},{"location":"page/settings/mode/#lsp-vscode-ext-url","text":"Type: string Default: https://marketplace.visualstudio.com/_apis/public/gallery/publishers/%s/vsextensions/%s/%s/vspackage%s Vscode extension template url.","title":"lsp-vscode-ext-url"},{"location":"page/settings/mode/#lsp-warn-no-matched-clients","text":"Type: boolean Default: t Whether to show messages when there are no supported clients.","title":"lsp-warn-no-matched-clients"},{"location":"page/settings/mode/#lsp-workspace-folders-changed-functions","text":"Type: hook Default: nil Hooks to run after the folders has changed. The hook will receive two parameters list of added and removed folders.","title":"lsp-workspace-folders-changed-functions"},{"location":"page/settings/mode/#lsp-xref-force-references","text":"Type: boolean Default: nil If non-nil threat everything as references(e. g. jump if only one item.)","title":"lsp-xref-force-references"},{"location":"page/settings/modeline/","text":"Modeline # lsp-modeline-code-action-fallback-icon # Type: string Default: \ud83d\udca1 Define what should display on the modeline when code actions are available. lsp-modeline-code-actions-enable # Type: boolean Default: t Whether to show code actions on modeline. lsp-modeline-code-actions-face # Type: face Default: ((t :inherit homoglyph)) Face used to code action text on modeline. lsp-modeline-code-actions-kind-regex # Type: string Default: $\\|quickfix.*\\|refactor.* Regex for the code actions kinds to show in the modeline. lsp-modeline-code-actions-preferred-face # Type: face Default: ((t :foreground yellow)) Face used to code action text on modeline. lsp-modeline-code-actions-segments # Type: (repeat (choice (const :tag Show the lightbulb icon icon) (const :tag Show the name of the preferred code action name) (const :tag Show the count of how many code actions available count))) Default: (count icon) Define what should display on the modeline when code actions are available. lsp-modeline-diagnostics-enable # Type: boolean Default: t Whether to show diagnostics on modeline. lsp-modeline-diagnostics-scope # Type: (choice (const :tag File :file) (const :tag Project :workspace) (const :tag All Projects :global)) Default: :workspace The modeline diagnostics scope. lsp-modeline-workspace-status-enable # Type: boolean Default: t Whether to show workspace status on modeline.","title":"Modeline"},{"location":"page/settings/modeline/#modeline","text":"","title":"Modeline"},{"location":"page/settings/modeline/#lsp-modeline-code-action-fallback-icon","text":"Type: string Default: \ud83d\udca1 Define what should display on the modeline when code actions are available.","title":"lsp-modeline-code-action-fallback-icon"},{"location":"page/settings/modeline/#lsp-modeline-code-actions-enable","text":"Type: boolean Default: t Whether to show code actions on modeline.","title":"lsp-modeline-code-actions-enable"},{"location":"page/settings/modeline/#lsp-modeline-code-actions-face","text":"Type: face Default: ((t :inherit homoglyph)) Face used to code action text on modeline.","title":"lsp-modeline-code-actions-face"},{"location":"page/settings/modeline/#lsp-modeline-code-actions-kind-regex","text":"Type: string Default: $\\|quickfix.*\\|refactor.* Regex for the code actions kinds to show in the modeline.","title":"lsp-modeline-code-actions-kind-regex"},{"location":"page/settings/modeline/#lsp-modeline-code-actions-preferred-face","text":"Type: face Default: ((t :foreground yellow)) Face used to code action text on modeline.","title":"lsp-modeline-code-actions-preferred-face"},{"location":"page/settings/modeline/#lsp-modeline-code-actions-segments","text":"Type: (repeat (choice (const :tag Show the lightbulb icon icon) (const :tag Show the name of the preferred code action name) (const :tag Show the count of how many code actions available count))) Default: (count icon) Define what should display on the modeline when code actions are available.","title":"lsp-modeline-code-actions-segments"},{"location":"page/settings/modeline/#lsp-modeline-diagnostics-enable","text":"Type: boolean Default: t Whether to show diagnostics on modeline.","title":"lsp-modeline-diagnostics-enable"},{"location":"page/settings/modeline/#lsp-modeline-diagnostics-scope","text":"Type: (choice (const :tag File :file) (const :tag Project :workspace) (const :tag All Projects :global)) Default: :workspace The modeline diagnostics scope.","title":"lsp-modeline-diagnostics-scope"},{"location":"page/settings/modeline/#lsp-modeline-workspace-status-enable","text":"Type: boolean Default: t Whether to show workspace status on modeline.","title":"lsp-modeline-workspace-status-enable"},{"location":"page/settings/semantic-tokens/","text":"Semantic tokens # lsp-face-semhl-class # Type: face Default: ((t (:inherit font-lock-type-face))) Face used for classes. lsp-face-semhl-comment # Type: face Default: ((t (:inherit font-lock-comment-face))) Face used for comments. lsp-face-semhl-constant # Type: face Default: ((t :inherit font-lock-constant-face)) Face used for semantic highlighting scopes matching constant scopes. lsp-face-semhl-default-library # Type: face Default: ((t :inherit font-lock-builtin-face)) Face used for defaultLibrary modifier. lsp-face-semhl-definition # Type: face Default: ((t :inherit font-lock-function-name-face :weight bold)) Face used for definition modifier. lsp-face-semhl-deprecated # Type: face Default: ((t :strike-through t)) Face used for semantic highlighting scopes matching constant scopes. lsp-face-semhl-enum # Type: face Default: ((t (:inherit font-lock-type-face))) Face used for enums. lsp-face-semhl-event # Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for event properties. lsp-face-semhl-function # Type: face Default: ((t :inherit font-lock-function-name-face)) Face used for semantic highlighting scopes matching entity.name.function.*. Unless overridden by a more specific face association. lsp-face-semhl-implementation # Type: face Default: ((t :inherit font-lock-function-name-face :weight bold)) Face used for implementation modifier. lsp-face-semhl-interface # Type: face Default: ((t (:inherit font-lock-type-face))) Face used for interfaces. lsp-face-semhl-keyword # Type: face Default: ((t (:inherit font-lock-keyword-face))) Face used for keywords. lsp-face-semhl-label # Type: face Default: ((t (:inherit font-lock-comment-face))) Face used for labels. lsp-face-semhl-macro # Type: face Default: ((t (:inherit font-lock-preprocessor-face))) Face used for macros. lsp-face-semhl-member # Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for members. lsp-face-semhl-method # Type: face Default: ((t :inherit lsp-face-semhl-function)) Face used for semantic highlighting scopes matching entity.name.method.*. Unless overridden by a more specific face association. lsp-face-semhl-namespace # Type: face Default: ((t :inherit font-lock-type-face :weight bold)) Face used for semantic highlighting scopes matching entity.name.namespace.*. Unless overridden by a more specific face association. lsp-face-semhl-number # Type: face Default: ((t (:inherit font-lock-constant-face))) Face used for numbers. lsp-face-semhl-operator # Type: face Default: ((t (:inherit font-lock-function-name-face))) Face used for operators. lsp-face-semhl-parameter # Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for parameters. lsp-face-semhl-property # Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for properties. lsp-face-semhl-regexp # Type: face Default: ((t (:inherit font-lock-string-face :slant italic))) Face used for regexps. lsp-face-semhl-static # Type: face Default: ((t :inherit font-lock-keyword-face)) Face used for static modifier. lsp-face-semhl-string # Type: face Default: ((t (:inherit font-lock-string-face))) Face used for keywords. lsp-face-semhl-struct # Type: face Default: ((t (:inherit font-lock-type-face))) Face used for structs. lsp-face-semhl-type # Type: face Default: ((t (:inherit font-lock-type-face))) Face used for types. lsp-face-semhl-type-parameter # Type: face Default: ((t (:inherit font-lock-type-face))) Face used for type parameters. lsp-face-semhl-variable # Type: face Default: ((t :inherit font-lock-variable-name-face)) Face used for semantic highlighting scopes matching variable.*. Unless overridden by a more specific face association. lsp-semantic-tokens-allow-delta-requests # Type: boolean Default: t Whether to use semantic token delta requests when available. When supported by the language server, delta requests are always preferred over both full and ranged token requests. lsp-semantic-tokens-allow-ranged-requests # Type: boolean Default: t Whether to use ranged semantic token requests when available. Note that even when this is set to t, delta requests will be preferred whenever possible, unless lsp-semantic-tokens-allow-delta-requests is false. lsp-semantic-tokens-apply-modifiers # Type: boolean Default: t Whether semantic tokens should take token modifiers into account. lsp-semantic-tokens-enable # Type: boolean Default: nil Enable/disable support for semantic tokens. As defined by the Language Server Protocol 3.16. lsp-semantic-tokens-enable-multiline-token-support # Type: boolean Default: t When set to nil, tokens will be truncated after end-of-line. lsp-semantic-tokens-honor-refresh-requests # Type: boolean Default: nil Whether to honor semanticTokens/refresh requests. When set to nil, refresh requests will be silently discarded. When set to t, semantic tokens will be re-requested for all buffers associated with the requesting language server. lsp-semantic-tokens-max-concurrent-idle-requests # Type: integer Default: 1 Maximum number of on-idle token requests to be dispatched simultaneously. lsp-semantic-tokens-warn-on-missing-face # Type: boolean Default: nil Warning on missing face for token type/modifier. When non-nil, this option will emit a warning any time a token or modifier type returned by a language server has no face associated with it.","title":"Semantic Tokens"},{"location":"page/settings/semantic-tokens/#semantic-tokens","text":"","title":"Semantic tokens"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-class","text":"Type: face Default: ((t (:inherit font-lock-type-face))) Face used for classes.","title":"lsp-face-semhl-class"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-comment","text":"Type: face Default: ((t (:inherit font-lock-comment-face))) Face used for comments.","title":"lsp-face-semhl-comment"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-constant","text":"Type: face Default: ((t :inherit font-lock-constant-face)) Face used for semantic highlighting scopes matching constant scopes.","title":"lsp-face-semhl-constant"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-default-library","text":"Type: face Default: ((t :inherit font-lock-builtin-face)) Face used for defaultLibrary modifier.","title":"lsp-face-semhl-default-library"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-definition","text":"Type: face Default: ((t :inherit font-lock-function-name-face :weight bold)) Face used for definition modifier.","title":"lsp-face-semhl-definition"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-deprecated","text":"Type: face Default: ((t :strike-through t)) Face used for semantic highlighting scopes matching constant scopes.","title":"lsp-face-semhl-deprecated"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-enum","text":"Type: face Default: ((t (:inherit font-lock-type-face))) Face used for enums.","title":"lsp-face-semhl-enum"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-event","text":"Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for event properties.","title":"lsp-face-semhl-event"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-function","text":"Type: face Default: ((t :inherit font-lock-function-name-face)) Face used for semantic highlighting scopes matching entity.name.function.*. Unless overridden by a more specific face association.","title":"lsp-face-semhl-function"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-implementation","text":"Type: face Default: ((t :inherit font-lock-function-name-face :weight bold)) Face used for implementation modifier.","title":"lsp-face-semhl-implementation"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-interface","text":"Type: face Default: ((t (:inherit font-lock-type-face))) Face used for interfaces.","title":"lsp-face-semhl-interface"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-keyword","text":"Type: face Default: ((t (:inherit font-lock-keyword-face))) Face used for keywords.","title":"lsp-face-semhl-keyword"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-label","text":"Type: face Default: ((t (:inherit font-lock-comment-face))) Face used for labels.","title":"lsp-face-semhl-label"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-macro","text":"Type: face Default: ((t (:inherit font-lock-preprocessor-face))) Face used for macros.","title":"lsp-face-semhl-macro"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-member","text":"Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for members.","title":"lsp-face-semhl-member"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-method","text":"Type: face Default: ((t :inherit lsp-face-semhl-function)) Face used for semantic highlighting scopes matching entity.name.method.*. Unless overridden by a more specific face association.","title":"lsp-face-semhl-method"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-namespace","text":"Type: face Default: ((t :inherit font-lock-type-face :weight bold)) Face used for semantic highlighting scopes matching entity.name.namespace.*. Unless overridden by a more specific face association.","title":"lsp-face-semhl-namespace"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-number","text":"Type: face Default: ((t (:inherit font-lock-constant-face))) Face used for numbers.","title":"lsp-face-semhl-number"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-operator","text":"Type: face Default: ((t (:inherit font-lock-function-name-face))) Face used for operators.","title":"lsp-face-semhl-operator"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-parameter","text":"Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for parameters.","title":"lsp-face-semhl-parameter"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-property","text":"Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for properties.","title":"lsp-face-semhl-property"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-regexp","text":"Type: face Default: ((t (:inherit font-lock-string-face :slant italic))) Face used for regexps.","title":"lsp-face-semhl-regexp"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-static","text":"Type: face Default: ((t :inherit font-lock-keyword-face)) Face used for static modifier.","title":"lsp-face-semhl-static"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-string","text":"Type: face Default: ((t (:inherit font-lock-string-face))) Face used for keywords.","title":"lsp-face-semhl-string"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-struct","text":"Type: face Default: ((t (:inherit font-lock-type-face))) Face used for structs.","title":"lsp-face-semhl-struct"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-type","text":"Type: face Default: ((t (:inherit font-lock-type-face))) Face used for types.","title":"lsp-face-semhl-type"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-type-parameter","text":"Type: face Default: ((t (:inherit font-lock-type-face))) Face used for type parameters.","title":"lsp-face-semhl-type-parameter"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-variable","text":"Type: face Default: ((t :inherit font-lock-variable-name-face)) Face used for semantic highlighting scopes matching variable.*. Unless overridden by a more specific face association.","title":"lsp-face-semhl-variable"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-allow-delta-requests","text":"Type: boolean Default: t Whether to use semantic token delta requests when available. When supported by the language server, delta requests are always preferred over both full and ranged token requests.","title":"lsp-semantic-tokens-allow-delta-requests"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-allow-ranged-requests","text":"Type: boolean Default: t Whether to use ranged semantic token requests when available. Note that even when this is set to t, delta requests will be preferred whenever possible, unless lsp-semantic-tokens-allow-delta-requests is false.","title":"lsp-semantic-tokens-allow-ranged-requests"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-apply-modifiers","text":"Type: boolean Default: t Whether semantic tokens should take token modifiers into account.","title":"lsp-semantic-tokens-apply-modifiers"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-enable","text":"Type: boolean Default: nil Enable/disable support for semantic tokens. As defined by the Language Server Protocol 3.16.","title":"lsp-semantic-tokens-enable"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-enable-multiline-token-support","text":"Type: boolean Default: t When set to nil, tokens will be truncated after end-of-line.","title":"lsp-semantic-tokens-enable-multiline-token-support"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-honor-refresh-requests","text":"Type: boolean Default: nil Whether to honor semanticTokens/refresh requests. When set to nil, refresh requests will be silently discarded. When set to t, semantic tokens will be re-requested for all buffers associated with the requesting language server.","title":"lsp-semantic-tokens-honor-refresh-requests"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-max-concurrent-idle-requests","text":"Type: integer Default: 1 Maximum number of on-idle token requests to be dispatched simultaneously.","title":"lsp-semantic-tokens-max-concurrent-idle-requests"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-warn-on-missing-face","text":"Type: boolean Default: nil Warning on missing face for token type/modifier. When non-nil, this option will emit a warning any time a token or modifier type returned by a language server has no face associated with it.","title":"lsp-semantic-tokens-warn-on-missing-face"},{"location":"template/lsp-client/","text":"{{full-name}} # Server # For more information about the LSP server, check {{server-name}} . Installation # {{lsp-install-server}} {{installation}}{{installation-url}} Debugger: {{debugger}} # {{manual-documentation}} Available configurations #","title":"Lsp client"},{"location":"template/lsp-client/#full-name","text":"","title":"{{full-name}}"},{"location":"template/lsp-client/#server","text":"For more information about the LSP server, check {{server-name}} .","title":"Server"},{"location":"template/lsp-client/#installation","text":"{{lsp-install-server}} {{installation}}{{installation-url}}","title":"Installation"},{"location":"template/lsp-client/#debugger-debugger","text":"{{manual-documentation}}","title":"Debugger: {{debugger}}"},{"location":"template/lsp-client/#available-configurations","text":"","title":"Available configurations"},{"location":"template/lsp-var/","text":"{{name}} # Type: {{type}} Default: {{default}} {{documentation}}","title":"Lsp var"},{"location":"template/lsp-var/#name","text":"Type: {{type}} Default: {{default}} {{documentation}}","title":"{{name}}"},{"location":"tutorials/CPP-guide/","text":"Configuring Emacs as a C/C++ IDE # In this guide, I will show you how to configure lsp-mode and dap-mode for C/C++ development, using GNU Emacs as an example code base. At the end of this tutorial, Emacs should provide you with all the language-aware editor features you'd expect from a modern C++ IDE, such as Code completion Real-time syntax checking Code navigation (references/definitions/implementations/symbol search) Visual IDE debugger Document outline, breadcrumb and modeline widgets For all lsp-mode features, check here . Obtaining a language server # lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. As of late 2020, there are 2 production-ready language servers for C/C++ and Objective-C , clangd , and ccls with ccls 's precursor cquery being deprecated. For some of the language servers, lsp-mode ships with automatic installation scripts but there is no such script for installing a C/C++ language server due to their overall complexity. For this guide we will be using clangd but most of the steps here apply to ccls as well. lsp-mode is pre-configured and it will be able to find the language server automatically when it is installed on the host machine and it is present on the PATH . In case clangd is not present on the path clangd can be installed following their Getting Started instructions. Note: for Debian based system use https://apt.llvm.org/ Project setup # To understand your source code, clangd needs to know the compiler flags that are used to build the project. (This is just a fact of life in C++, source files are not self-contained). By default, clangd will assume your code is built as clang some_file.cc , and you\u2019ll probably get spurious errors about missing #include files, etc. There are a couple of ways to fix this. You may read about them in clangd installation or in https://sarcasm.github.io/notes/dev/compilation-database.html. In order to generate compile_commands.json for Emacs itself I have found that Bear works fine. sudo apt-get install bear Setup Emacs sources and dependencies: sudo apt-get install -y build-essential git autoconf texinfo libgnutls28-dev libxml2-dev libncurses5-dev libjansson-dev git clone git://git.sv.gnu.org/emacs.git cd emacs ./autogen.sh CFLAGS = \"-ggdb3 -O0\" CXXFLAGS = \"-ggdb3 -O0\" LDFLAGS = \"-ggdb3\" ./configure --with-modules --with-json bear -- make -j $( nproc ) Prefixing make -j$(nproc) with bear will generate the compile_commands.json which later will be used by clangd . CFLAGS=\"-ggdb3 -O0\" CXXFLAGS=\"-ggdb3 -O0\" LDFLAGS=\"-ggdb3\" will compile Emacs with debug symbols. lsp-mode configuration # Here is a bare-bones lsp-mode / dap-mode configuration template to get you started with your own lsp-mode config, or to try out in a separate one-off session. Please note that Emacs configuration frameworks such as Spacemacs or Doom Emacs often ship with lsp-mode settings of their own; should you be using such a framework, and find that lsp-mode doesn't behave as intended, please make sure to follow this tutorial from a clean starting point. in your config or you could run in separate session. ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( lsp-mode yasnippet lsp-treemacs helm-lsp projectile hydra flycheck company avy which-key helm-xref dap-mode )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ;; sample `helm' configuration use https://github.com/emacs-helm/helm/ for details ( helm-mode ) ( require 'helm-xref ) ( define-key global-map [ remap find-file ] #' helm-find-files ) ( define-key global-map [ remap execute-extended-command ] #' helm-M-x ) ( define-key global-map [ remap switch-to-buffer ] #' helm-mini ) ( which-key-mode ) ( add-hook 'c-mode-hook 'lsp ) ( add-hook 'c++-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-idle-delay 0.0 company-minimum-prefix-length 1 lsp-idle-delay 0.1 ) ;; clangd is fast ( with-eval-after-load 'lsp-mode ( add-hook 'lsp-mode-hook #' lsp-enable-which-key-integration ) ( require 'dap-cpptools ) ( yas-global-mode )) Feature overview # And now it is time to start hacking on Emacs core! emacs ~/Sources/emacs/src/editfns.c Now, if everything was successful you will be asked to select a project root. Note: the project root is needed by the language server in order to know where to start the project discovery from. Typically, this is the git repository root but since exceptions to this rule have caused us a lot of trouble in the past (monorepos come to mind), lsp-mode by default asks the user to manually confirm the project root the first time a project is opened. Completion # By default, lsp-mode uses company-mode as its completion frontend. When present, company-mode will be auto-configured and it will just work. keybindings/ which-key integration # lsp-mode has smart (almost) complete mnemonic keybindings which auto-enable when a certain feature is supported by the server and when the corresponding Emacs package is installed. In addition, lsp-mode ships with which-key integration for better discoverability. By default, lsp-mode 's keybindings are available under s-l (Super-l), e. g. s-l h h will show documentation at point. You may change the default prefix by setting lsp-keymap-prefix . Mouse support # Yeah, lsp-mode supports mouse! Refactoring/Code actions # lsp-rename ( s-l r r ) - rename symbol/function at point. lsp-execute-code-action ( s-l a a ) - clangd is able to auto-correct some of the errors. Navigation # lsp-mode has integration with xref core package and in addition it has xref-find-definitions ( M-. and s-l g g ) - find definition(s) at point xref-find-references ( s-l g r ) - find references to the symbol at point helm-imenu - browse symbols in the current document helm-lsp-workspace-symbol - find symbol in current project helm-lsp-global-workspaces-symbol - find symbol in all projects lsp-treemacs-type-hierarchy - show type hierarchy Note: if you prefer ivy over helm you may check out lsp-ivy . lsp-treemacs # lsp-treemacs is a package providing integration with treemacs and an alternative tree-view visualization. Refer to the project's readme for further information. Help/Documentation # lsp-mode automatically enables eldoc-mode which will show hover information in the minibuffer. lsp-mode is showing only the one line signature info so if you want to see the full documentation at point you can use lsp-describe-thing-at-point . In addition to that you can also see signature help after pressing C-M-SPC or after pressing trigger char like ( . If there is more than one applicable signature due to function overloading, you may browse between the available candidates using M-n/M-p . may browse them via M-n/M-p Diagnostics # For on-the-fly errors lsp-mode is using flycheck ( flymake is also supported). It is configured automatically. In addition to standard flycheck features lsp-mode provides a project-wide error list via lsp-treemacs-errors-list . Debugging # Just like lsp-mode provides editing features through the editor-independent Language Server Protocol , its sister package dap-mode provides debugging features through the editor-independent Debug Adapter Protocol and language-specific debugging servers called debug adapters . front-end of the sister Debug Adapter Protocol . It is again client server like Language Sever Protocol . dap-mode provides all of the traditional debugger features - breakpoints(conditions, hit count, etc), threads, locals. Installation # dap-mode provides installation commands for most of the debug adapters. In this tutorial we will use the vscode-cpptools debug adapter. To install the adapter do M-x dap-cpptools-setup . Note: you should have gdb on path. Note: on linux you should install mono . Creating debug configuration # dap-mode introduces the notion of debug configuration and debug template. The debug configuration is the settings that are needed by the debug adapter to start the program to debug. Debug template is a template for such configuration which will be populated by the user or by dap-mode . There are two ways to manage debug configuration - using emacs lisp via dap-debug-edit-template and dap-register-debug-template . The second way is using launch.json . Put it in project root and dap-mode will pick it up. { \"version\" : \"0.2.0\" , \"configurations\" : [ { \"name\" : \"Debug Emacs\" , \"type\" : \"cppdbg\" , \"request\" : \"launch\" , \"program\" : \"${workspaceFolder}/src/emacs\" , \"args\" : [ \"-q\" ], \"stopAtEntry\" : false , \"cwd\" : \"${workspaceFolder}\" , \"environment\" : [], \"externalConsole\" : false , \"MIMode\" : \"gdb\" } ] } At this point, dap-mode does not provide the list of all available properties for each configuration. The full list can be found in package.json in /.emacs.d/.extension/vscode/cpptools/extension/package.json when dap-mode is using VScode package or debug adapter docs when not. Debugging # Start debugging via M-x dap-debug and select Debug Emacs from the list. . After pressing RET a fresh instance of Emacs will pop up. Then do M-x helm-lsp-workspace-symbol and type message3 . Go to that function and place a breakpoint. You could do that by clicking in the fringe or by doing M-x dap-breakpoint-toggle . Switch to the debugged instance and do M-: (message \"Hello, I am debugging Emacs core!\") RET .","title":"Configuring Emacs as a C/C++ IDE"},{"location":"tutorials/CPP-guide/#configuring-emacs-as-a-cc-ide","text":"In this guide, I will show you how to configure lsp-mode and dap-mode for C/C++ development, using GNU Emacs as an example code base. At the end of this tutorial, Emacs should provide you with all the language-aware editor features you'd expect from a modern C++ IDE, such as Code completion Real-time syntax checking Code navigation (references/definitions/implementations/symbol search) Visual IDE debugger Document outline, breadcrumb and modeline widgets For all lsp-mode features, check here .","title":"Configuring Emacs as a C/C++ IDE"},{"location":"tutorials/CPP-guide/#obtaining-a-language-server","text":"lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. As of late 2020, there are 2 production-ready language servers for C/C++ and Objective-C , clangd , and ccls with ccls 's precursor cquery being deprecated. For some of the language servers, lsp-mode ships with automatic installation scripts but there is no such script for installing a C/C++ language server due to their overall complexity. For this guide we will be using clangd but most of the steps here apply to ccls as well. lsp-mode is pre-configured and it will be able to find the language server automatically when it is installed on the host machine and it is present on the PATH . In case clangd is not present on the path clangd can be installed following their Getting Started instructions. Note: for Debian based system use https://apt.llvm.org/","title":"Obtaining a language server"},{"location":"tutorials/CPP-guide/#project-setup","text":"To understand your source code, clangd needs to know the compiler flags that are used to build the project. (This is just a fact of life in C++, source files are not self-contained). By default, clangd will assume your code is built as clang some_file.cc , and you\u2019ll probably get spurious errors about missing #include files, etc. There are a couple of ways to fix this. You may read about them in clangd installation or in https://sarcasm.github.io/notes/dev/compilation-database.html. In order to generate compile_commands.json for Emacs itself I have found that Bear works fine. sudo apt-get install bear Setup Emacs sources and dependencies: sudo apt-get install -y build-essential git autoconf texinfo libgnutls28-dev libxml2-dev libncurses5-dev libjansson-dev git clone git://git.sv.gnu.org/emacs.git cd emacs ./autogen.sh CFLAGS = \"-ggdb3 -O0\" CXXFLAGS = \"-ggdb3 -O0\" LDFLAGS = \"-ggdb3\" ./configure --with-modules --with-json bear -- make -j $( nproc ) Prefixing make -j$(nproc) with bear will generate the compile_commands.json which later will be used by clangd . CFLAGS=\"-ggdb3 -O0\" CXXFLAGS=\"-ggdb3 -O0\" LDFLAGS=\"-ggdb3\" will compile Emacs with debug symbols.","title":"Project setup"},{"location":"tutorials/CPP-guide/#lsp-mode-configuration","text":"Here is a bare-bones lsp-mode / dap-mode configuration template to get you started with your own lsp-mode config, or to try out in a separate one-off session. Please note that Emacs configuration frameworks such as Spacemacs or Doom Emacs often ship with lsp-mode settings of their own; should you be using such a framework, and find that lsp-mode doesn't behave as intended, please make sure to follow this tutorial from a clean starting point. in your config or you could run in separate session. ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( lsp-mode yasnippet lsp-treemacs helm-lsp projectile hydra flycheck company avy which-key helm-xref dap-mode )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ;; sample `helm' configuration use https://github.com/emacs-helm/helm/ for details ( helm-mode ) ( require 'helm-xref ) ( define-key global-map [ remap find-file ] #' helm-find-files ) ( define-key global-map [ remap execute-extended-command ] #' helm-M-x ) ( define-key global-map [ remap switch-to-buffer ] #' helm-mini ) ( which-key-mode ) ( add-hook 'c-mode-hook 'lsp ) ( add-hook 'c++-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-idle-delay 0.0 company-minimum-prefix-length 1 lsp-idle-delay 0.1 ) ;; clangd is fast ( with-eval-after-load 'lsp-mode ( add-hook 'lsp-mode-hook #' lsp-enable-which-key-integration ) ( require 'dap-cpptools ) ( yas-global-mode ))","title":"lsp-mode configuration"},{"location":"tutorials/CPP-guide/#feature-overview","text":"And now it is time to start hacking on Emacs core! emacs ~/Sources/emacs/src/editfns.c Now, if everything was successful you will be asked to select a project root. Note: the project root is needed by the language server in order to know where to start the project discovery from. Typically, this is the git repository root but since exceptions to this rule have caused us a lot of trouble in the past (monorepos come to mind), lsp-mode by default asks the user to manually confirm the project root the first time a project is opened.","title":"Feature overview"},{"location":"tutorials/CPP-guide/#completion","text":"By default, lsp-mode uses company-mode as its completion frontend. When present, company-mode will be auto-configured and it will just work.","title":"Completion"},{"location":"tutorials/CPP-guide/#keybindingswhich-key-integration","text":"lsp-mode has smart (almost) complete mnemonic keybindings which auto-enable when a certain feature is supported by the server and when the corresponding Emacs package is installed. In addition, lsp-mode ships with which-key integration for better discoverability. By default, lsp-mode 's keybindings are available under s-l (Super-l), e. g. s-l h h will show documentation at point. You may change the default prefix by setting lsp-keymap-prefix .","title":"keybindings/which-key integration"},{"location":"tutorials/CPP-guide/#mouse-support","text":"Yeah, lsp-mode supports mouse!","title":"Mouse support"},{"location":"tutorials/CPP-guide/#refactoringcode-actions","text":"lsp-rename ( s-l r r ) - rename symbol/function at point. lsp-execute-code-action ( s-l a a ) - clangd is able to auto-correct some of the errors.","title":"Refactoring/Code actions"},{"location":"tutorials/CPP-guide/#navigation","text":"lsp-mode has integration with xref core package and in addition it has xref-find-definitions ( M-. and s-l g g ) - find definition(s) at point xref-find-references ( s-l g r ) - find references to the symbol at point helm-imenu - browse symbols in the current document helm-lsp-workspace-symbol - find symbol in current project helm-lsp-global-workspaces-symbol - find symbol in all projects lsp-treemacs-type-hierarchy - show type hierarchy Note: if you prefer ivy over helm you may check out lsp-ivy .","title":"Navigation"},{"location":"tutorials/CPP-guide/#lsp-treemacs","text":"lsp-treemacs is a package providing integration with treemacs and an alternative tree-view visualization. Refer to the project's readme for further information.","title":"lsp-treemacs"},{"location":"tutorials/CPP-guide/#helpdocumentation","text":"lsp-mode automatically enables eldoc-mode which will show hover information in the minibuffer. lsp-mode is showing only the one line signature info so if you want to see the full documentation at point you can use lsp-describe-thing-at-point . In addition to that you can also see signature help after pressing C-M-SPC or after pressing trigger char like ( . If there is more than one applicable signature due to function overloading, you may browse between the available candidates using M-n/M-p . may browse them via M-n/M-p","title":"Help/Documentation"},{"location":"tutorials/CPP-guide/#diagnostics","text":"For on-the-fly errors lsp-mode is using flycheck ( flymake is also supported). It is configured automatically. In addition to standard flycheck features lsp-mode provides a project-wide error list via lsp-treemacs-errors-list .","title":"Diagnostics"},{"location":"tutorials/CPP-guide/#debugging","text":"Just like lsp-mode provides editing features through the editor-independent Language Server Protocol , its sister package dap-mode provides debugging features through the editor-independent Debug Adapter Protocol and language-specific debugging servers called debug adapters . front-end of the sister Debug Adapter Protocol . It is again client server like Language Sever Protocol . dap-mode provides all of the traditional debugger features - breakpoints(conditions, hit count, etc), threads, locals.","title":"Debugging"},{"location":"tutorials/CPP-guide/#installation","text":"dap-mode provides installation commands for most of the debug adapters. In this tutorial we will use the vscode-cpptools debug adapter. To install the adapter do M-x dap-cpptools-setup . Note: you should have gdb on path. Note: on linux you should install mono .","title":"Installation"},{"location":"tutorials/CPP-guide/#creating-debug-configuration","text":"dap-mode introduces the notion of debug configuration and debug template. The debug configuration is the settings that are needed by the debug adapter to start the program to debug. Debug template is a template for such configuration which will be populated by the user or by dap-mode . There are two ways to manage debug configuration - using emacs lisp via dap-debug-edit-template and dap-register-debug-template . The second way is using launch.json . Put it in project root and dap-mode will pick it up. { \"version\" : \"0.2.0\" , \"configurations\" : [ { \"name\" : \"Debug Emacs\" , \"type\" : \"cppdbg\" , \"request\" : \"launch\" , \"program\" : \"${workspaceFolder}/src/emacs\" , \"args\" : [ \"-q\" ], \"stopAtEntry\" : false , \"cwd\" : \"${workspaceFolder}\" , \"environment\" : [], \"externalConsole\" : false , \"MIMode\" : \"gdb\" } ] } At this point, dap-mode does not provide the list of all available properties for each configuration. The full list can be found in package.json in /.emacs.d/.extension/vscode/cpptools/extension/package.json when dap-mode is using VScode package or debug adapter docs when not.","title":"Creating debug configuration"},{"location":"tutorials/CPP-guide/#debugging_1","text":"Start debugging via M-x dap-debug and select Debug Emacs from the list. . After pressing RET a fresh instance of Emacs will pop up. Then do M-x helm-lsp-workspace-symbol and type message3 . Go to that function and place a breakpoint. You could do that by clicking in the fringe or by doing M-x dap-breakpoint-toggle . Switch to the debugged instance and do M-: (message \"Hello, I am debugging Emacs core!\") RET .","title":"Debugging"},{"location":"tutorials/clojure-guide/","text":"Configuring Emacs as a Clojure IDE # Author: @ericdallo In this guide, I will show you how to configure Emacs to develop Clojure using: lsp-mode , which has many IDE features like completion , renaming , reference-searching , definition-finding , code lenses , code actions and many more. CIDER , the Emacs package most famous for enabling REPL-driven development with Clojure. Why should I try LSP for Clojure? # Coming from the Java world, when I started programming for Clojure in Emacs, it was odd to me that for almost everything you needed to do with Clojure, you needed a REPL running in your project , and if you changed anything in your project, you would need to reload the modified namespace/code to see the changes in the REPL. I also missed a lot of features popularized by Java IDEs, like cleaning unused imports, viewing the call hierarchy of a method/function, formatting code automatically, checking syntax in real-time, and using code actions that could, for example, add a missing import. Ever since I found clojure-lsp , which implements most of those features, I have been using it alongside CIDER without issues. While I really like CIDER and believe it is one of the best tools for Clojure development, you can complement it with clojure-lsp to make programming in Clojure even better. Once it is running (and you are plugged into the REPL), CIDER will provide many of the same features that clojure-lsp does, so you need to tell Emacs how to resolve conflicts, which features use from lsp-mode and which ones from CIDER . Therefore, if you want to have a more IDE-ish experience with Emacs, you should read this guide. Basic configuration # Here is a bare-bones lsp-mode configuration template to get you started with your own lsp-mode config, or to try out in a separate one-off session. Please note that Emacs configuration frameworks such as Spacemacs or Doom Emacs often ship with lsp-mode settings of their own; should you be using such a framework, and find that lsp-mode doesn't behave as intended, please make sure to follow this tutorial from a clean starting point. in your config or you could run in a separate session. ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( clojure-mode lsp-mode cider lsp-treemacs flycheck company )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ( add-hook 'clojure-mode-hook 'lsp ) ( add-hook 'clojurescript-mode-hook 'lsp ) ( add-hook 'clojurec-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-minimum-prefix-length 1 ; lsp-enable-indentation nil ; uncomment to use cider indentation instead of lsp ; lsp-enable-completion-at-point nil ; uncomment to use cider completion instead of lsp ) For more detailed info on how to setup lsp-mode , check here . Installing the language server # lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. For Clojure, we will use clojure-lsp which as of 2022/10, is the only LSP server for Clojure, and has a lot of useful features that I will try to show in this guide. Via lsp-mode # lsp-mode ships with automatic installation scripts for some of the language servers and clojure-lsp is one of the supported servers, you can install it using M-x lsp-install-server RET clojure-lsp . After installed, lsp-mode will automatically initialize it when opening Clojure files. Manually # Check here for more information on how to build it manually. For a custom path, you can set the path of the server location with: ( setq lsp-clojure-custom-server-command ' ( \"bash\" \"-c\" \"/path/to/clojure-lsp\" )) LSP features # This guide will focus on the features of lsp-mode that are most relevant to Clojure development. You can view documentation of all features at the official lsp-mode site or clojure-lsp features section . Syntax check # It checks for errors and warnings on your code while you write it, it uses clj-kondo , another amazing library that lints Clojure code, in the back-end so it's not required to install clj-kondo since clojure-lsp will use it automatically. It will also check for public unused functions/variables which is something that, as far as I know, does not exist in any other Clojure library/package: Find definition/references # You can find a function definition with lsp-find-definition or find all the references to that symbol, variable or function with lsp-find-references or lsp-ui-peek-find-references if lsp-ui is available. Doom emacs users You may need to remove the lookup handlers conflict from `cider` and/or `clj-refactor` if you want to use this LSP feature. ( use-package! cider :after clojure-mode :config ( set-lookup-handlers! 'cider-mode nil )) ( use-package! clj-refactor :after clojure-mode :config ( set-lookup-handlers! 'clj-refactor-mode nil )) Spacemacs users - Add the `dap` layer to the `dotspacemacs/layers ()` section of your `.spacemacs` file (at the top of the file). - Require the corresponding module in the `dotspacemacs/user-config ()` section of your `.spacemacs` (at the bottom of the file). (In my case, I made it work with Chromium.) - Make sure the Chromium executable is correctly setup (see https://github.com/syl20bnr/spacemacs/issues/13614#issuecomment-1179478365) dotspacemacs/user-config () ... ;; Enable DAP debugging in ClojureScript. ;; Trying almost all options... ;; This one downloads OK. ( require 'dap-chrome ) ;; These two cannot be downloaded... ;; (require 'dap-firefox) ;; (require 'dap-node) ;; I'm not into trying this one... ;; (require 'dap-edge) Based on: https://emacs-lsp.github.io/lsp-mode/tutorials/debugging-clojure-script/ Completion # By default, lsp-mode uses company-mode as its completion front-end. When present, company-mode and enabled for lsp-mode , it will be auto-configured and it will just work using the completion items returned by the LSP server. clojure-lsp also has completion snippets, for more information check here . If you do not want LSP completion, It's possible to use cider completion instead with: ( setq lsp-enable-completion-at-point nil ) ; use cider completion See also CIDER code completion Code lens # LSP supports code lenses, actionable text snippets that a server may want to display in a client IDE. clojure-lsp uses it to show the reference count of a function/variable. They are enabled by default so you if you want to disable, disable lsp-lens-enable variable: Call hierarchy # This feature returns the call hierarchy of a function/method. As of now, clojure-lsp only supports returning the incoming-call hierarchy. It uses lsp-treemacs , which you should install to use this feature. Formatting # For LSP formatting, clojure-lsp use cljfmt with support for all known cljfmt settings. You can format a region with lsp-format-region or the entire buffer with lsp-format-buffer . Code actions # One of the most important features considered by me is the code actions feature provided by the server. they are refactoring actions that may change your code after applied, clojure-lsp some of the refactorings from below are suggested by the server depending where user cursor is, for example Add missing namespace where clojure-lsp will suggest adding a missing require: Refactorings # clojure-lsp also has a lot of refactorings, some of them can be automatically triggered by code actions like said above and others manually by user, one example of one of the most used by me is clean-ns , which will remove any unused requires and refers: Or rename which will rename the symbol at point and all usages/references: For more info on all available refactorings, check here . Conflict with clj-refactor when creating new files clj-refactor and clojure-lsp have a feature of add the namespace form for new created files, but they may conflict if both are enable, inserting duplicated namespace forms. To fix that, you need to choose which one you wants to use: To disable this feature on clj-refactor : ( setq cljr-add-ns-to-blank-clj-files nil ) ; disable clj-refactor adding ns to blank files or to disable on clojure-lsp : ;; on your .lsp/config.edn file { :auto-add-ns-to-new-files? false } Hover # This feature shows the function/var signature on minibuffer about the symbol at cursor, it's a really useful feature which avoid the need to find definition all the time to check its signature, arity documentation or even clojuredocs for clojure core vars. Conflict with CIDER clojure-lsp and CIDER have this same feature where it uses eldoc to show the signature on minibuffer and you should choose which one you want enabled during your development. Both work similar but remember that LSP doesn't need the REPL plugged in to work. To disable this feature on CIDER : ( setq cider-eldoc-display-for-symbol-at-point nil ) ; disable cider showing eldoc during symbol at point or to disable on clojure-lsp : ( setq lsp-eldoc-enable-hover nil ) ; disable lsp-mode showing eldoc during symbol at point Semantic tokens # Another feature introduced in LSP 3.16, is semantic tokens , which consists of the LSP server return to client the tokens and what they mean, with that, lsp-mode can color the tokens according to their meaning on the code: semantic-tokens OFF semantic-tokens ON CIDER code evaluated Performance # For the first time clojure-lsp starts in your project, it will scan all jar dependencies and source code, this can take a while depending on your project size, after started, it should be really fast and for the next time, it will use its cache and you may not notice any performance issues. Server settings # clojure-lsp has a lot of settings for improving your development experience, make sure to check it out the settings section. For an example configuration, check here . CIDER integration # We suggest using both cider and lsp-mode for Clojure development. I rely on cider to use its REPL, evaluate expressions, run tests, and more. You can execute M-x cider-jack-in to start the REPL. See also # Debugging Clojurescript Tutorial","title":"Configuring Emacs as a Clojure IDE"},{"location":"tutorials/clojure-guide/#configuring-emacs-as-a-clojure-ide","text":"Author: @ericdallo In this guide, I will show you how to configure Emacs to develop Clojure using: lsp-mode , which has many IDE features like completion , renaming , reference-searching , definition-finding , code lenses , code actions and many more. CIDER , the Emacs package most famous for enabling REPL-driven development with Clojure.","title":"Configuring Emacs as a Clojure IDE"},{"location":"tutorials/clojure-guide/#why-should-i-try-lsp-for-clojure","text":"Coming from the Java world, when I started programming for Clojure in Emacs, it was odd to me that for almost everything you needed to do with Clojure, you needed a REPL running in your project , and if you changed anything in your project, you would need to reload the modified namespace/code to see the changes in the REPL. I also missed a lot of features popularized by Java IDEs, like cleaning unused imports, viewing the call hierarchy of a method/function, formatting code automatically, checking syntax in real-time, and using code actions that could, for example, add a missing import. Ever since I found clojure-lsp , which implements most of those features, I have been using it alongside CIDER without issues. While I really like CIDER and believe it is one of the best tools for Clojure development, you can complement it with clojure-lsp to make programming in Clojure even better. Once it is running (and you are plugged into the REPL), CIDER will provide many of the same features that clojure-lsp does, so you need to tell Emacs how to resolve conflicts, which features use from lsp-mode and which ones from CIDER . Therefore, if you want to have a more IDE-ish experience with Emacs, you should read this guide.","title":"Why should I try LSP for Clojure?"},{"location":"tutorials/clojure-guide/#basic-configuration","text":"Here is a bare-bones lsp-mode configuration template to get you started with your own lsp-mode config, or to try out in a separate one-off session. Please note that Emacs configuration frameworks such as Spacemacs or Doom Emacs often ship with lsp-mode settings of their own; should you be using such a framework, and find that lsp-mode doesn't behave as intended, please make sure to follow this tutorial from a clean starting point. in your config or you could run in a separate session. ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( clojure-mode lsp-mode cider lsp-treemacs flycheck company )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ( add-hook 'clojure-mode-hook 'lsp ) ( add-hook 'clojurescript-mode-hook 'lsp ) ( add-hook 'clojurec-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-minimum-prefix-length 1 ; lsp-enable-indentation nil ; uncomment to use cider indentation instead of lsp ; lsp-enable-completion-at-point nil ; uncomment to use cider completion instead of lsp ) For more detailed info on how to setup lsp-mode , check here .","title":"Basic configuration"},{"location":"tutorials/clojure-guide/#installing-the-language-server","text":"lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. For Clojure, we will use clojure-lsp which as of 2022/10, is the only LSP server for Clojure, and has a lot of useful features that I will try to show in this guide.","title":"Installing the language server"},{"location":"tutorials/clojure-guide/#via-lsp-mode","text":"lsp-mode ships with automatic installation scripts for some of the language servers and clojure-lsp is one of the supported servers, you can install it using M-x lsp-install-server RET clojure-lsp . After installed, lsp-mode will automatically initialize it when opening Clojure files.","title":"Via lsp-mode"},{"location":"tutorials/clojure-guide/#manually","text":"Check here for more information on how to build it manually. For a custom path, you can set the path of the server location with: ( setq lsp-clojure-custom-server-command ' ( \"bash\" \"-c\" \"/path/to/clojure-lsp\" ))","title":"Manually"},{"location":"tutorials/clojure-guide/#lsp-features","text":"This guide will focus on the features of lsp-mode that are most relevant to Clojure development. You can view documentation of all features at the official lsp-mode site or clojure-lsp features section .","title":"LSP features"},{"location":"tutorials/clojure-guide/#syntax-check","text":"It checks for errors and warnings on your code while you write it, it uses clj-kondo , another amazing library that lints Clojure code, in the back-end so it's not required to install clj-kondo since clojure-lsp will use it automatically. It will also check for public unused functions/variables which is something that, as far as I know, does not exist in any other Clojure library/package:","title":"Syntax check"},{"location":"tutorials/clojure-guide/#find-definitionreferences","text":"You can find a function definition with lsp-find-definition or find all the references to that symbol, variable or function with lsp-find-references or lsp-ui-peek-find-references if lsp-ui is available. Doom emacs users You may need to remove the lookup handlers conflict from `cider` and/or `clj-refactor` if you want to use this LSP feature. ( use-package! cider :after clojure-mode :config ( set-lookup-handlers! 'cider-mode nil )) ( use-package! clj-refactor :after clojure-mode :config ( set-lookup-handlers! 'clj-refactor-mode nil )) Spacemacs users - Add the `dap` layer to the `dotspacemacs/layers ()` section of your `.spacemacs` file (at the top of the file). - Require the corresponding module in the `dotspacemacs/user-config ()` section of your `.spacemacs` (at the bottom of the file). (In my case, I made it work with Chromium.) - Make sure the Chromium executable is correctly setup (see https://github.com/syl20bnr/spacemacs/issues/13614#issuecomment-1179478365) dotspacemacs/user-config () ... ;; Enable DAP debugging in ClojureScript. ;; Trying almost all options... ;; This one downloads OK. ( require 'dap-chrome ) ;; These two cannot be downloaded... ;; (require 'dap-firefox) ;; (require 'dap-node) ;; I'm not into trying this one... ;; (require 'dap-edge) Based on: https://emacs-lsp.github.io/lsp-mode/tutorials/debugging-clojure-script/","title":"Find definition/references"},{"location":"tutorials/clojure-guide/#completion","text":"By default, lsp-mode uses company-mode as its completion front-end. When present, company-mode and enabled for lsp-mode , it will be auto-configured and it will just work using the completion items returned by the LSP server. clojure-lsp also has completion snippets, for more information check here . If you do not want LSP completion, It's possible to use cider completion instead with: ( setq lsp-enable-completion-at-point nil ) ; use cider completion See also CIDER code completion","title":"Completion"},{"location":"tutorials/clojure-guide/#code-lens","text":"LSP supports code lenses, actionable text snippets that a server may want to display in a client IDE. clojure-lsp uses it to show the reference count of a function/variable. They are enabled by default so you if you want to disable, disable lsp-lens-enable variable:","title":"Code lens"},{"location":"tutorials/clojure-guide/#call-hierarchy","text":"This feature returns the call hierarchy of a function/method. As of now, clojure-lsp only supports returning the incoming-call hierarchy. It uses lsp-treemacs , which you should install to use this feature.","title":"Call hierarchy"},{"location":"tutorials/clojure-guide/#formatting","text":"For LSP formatting, clojure-lsp use cljfmt with support for all known cljfmt settings. You can format a region with lsp-format-region or the entire buffer with lsp-format-buffer .","title":"Formatting"},{"location":"tutorials/clojure-guide/#code-actions","text":"One of the most important features considered by me is the code actions feature provided by the server. they are refactoring actions that may change your code after applied, clojure-lsp some of the refactorings from below are suggested by the server depending where user cursor is, for example Add missing namespace where clojure-lsp will suggest adding a missing require:","title":"Code actions"},{"location":"tutorials/clojure-guide/#refactorings","text":"clojure-lsp also has a lot of refactorings, some of them can be automatically triggered by code actions like said above and others manually by user, one example of one of the most used by me is clean-ns , which will remove any unused requires and refers: Or rename which will rename the symbol at point and all usages/references: For more info on all available refactorings, check here . Conflict with clj-refactor when creating new files clj-refactor and clojure-lsp have a feature of add the namespace form for new created files, but they may conflict if both are enable, inserting duplicated namespace forms. To fix that, you need to choose which one you wants to use: To disable this feature on clj-refactor : ( setq cljr-add-ns-to-blank-clj-files nil ) ; disable clj-refactor adding ns to blank files or to disable on clojure-lsp : ;; on your .lsp/config.edn file { :auto-add-ns-to-new-files? false }","title":"Refactorings"},{"location":"tutorials/clojure-guide/#hover","text":"This feature shows the function/var signature on minibuffer about the symbol at cursor, it's a really useful feature which avoid the need to find definition all the time to check its signature, arity documentation or even clojuredocs for clojure core vars. Conflict with CIDER clojure-lsp and CIDER have this same feature where it uses eldoc to show the signature on minibuffer and you should choose which one you want enabled during your development. Both work similar but remember that LSP doesn't need the REPL plugged in to work. To disable this feature on CIDER : ( setq cider-eldoc-display-for-symbol-at-point nil ) ; disable cider showing eldoc during symbol at point or to disable on clojure-lsp : ( setq lsp-eldoc-enable-hover nil ) ; disable lsp-mode showing eldoc during symbol at point","title":"Hover"},{"location":"tutorials/clojure-guide/#semantic-tokens","text":"Another feature introduced in LSP 3.16, is semantic tokens , which consists of the LSP server return to client the tokens and what they mean, with that, lsp-mode can color the tokens according to their meaning on the code: semantic-tokens OFF semantic-tokens ON CIDER code evaluated","title":"Semantic tokens"},{"location":"tutorials/clojure-guide/#performance","text":"For the first time clojure-lsp starts in your project, it will scan all jar dependencies and source code, this can take a while depending on your project size, after started, it should be really fast and for the next time, it will use its cache and you may not notice any performance issues.","title":"Performance"},{"location":"tutorials/clojure-guide/#server-settings","text":"clojure-lsp has a lot of settings for improving your development experience, make sure to check it out the settings section. For an example configuration, check here .","title":"Server settings"},{"location":"tutorials/clojure-guide/#cider-integration","text":"We suggest using both cider and lsp-mode for Clojure development. I rely on cider to use its REPL, evaluate expressions, run tests, and more. You can execute M-x cider-jack-in to start the REPL.","title":"CIDER integration"},{"location":"tutorials/clojure-guide/#see-also","text":"Debugging Clojurescript Tutorial","title":"See also"},{"location":"tutorials/crystal-guide/","text":"Configuring Emacs as a Crystal IDE # Author: @lanjoni In this guide, I'll show you how to configure lsp-mode for Crystal development, using GNU Emacs . By the end of this tutorial you will be able to use the code editor and all its features for Crystal so far. For all lsp-mode features, check here . Installing the language server # lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. For Crystal, we will be using crystalline , which is currently the only LSP server for Crystal that is still receiving updates and community support. Previously, scry was used as an LSP server. Via lsp-mode # lsp-mode ships with automatic installation scripts for some of the language servers and crystal-lsp is one of the supported servers, you can install it using M-x lsp-install-server RET crystal-lsp . After installed, lsp-mode will automatically initialize it when opening Crystal files. Manually # To install manually first make sure the binary is already in your PATH. You can download an already compiled version or compile from the original code with Crystal. Check here for more information on how to build it manually. After installed, you can add in your settings the definitions to use Crystalline with lsp-mode by default with: ( with-eval-after-load 'lsp-mode ( add-to-list 'lsp-language-id-configuration ' ( crystal-mode . \"crystal\" )) ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection ' ( \"crystalline\" )) :activation-fn ( lsp-activate-on \"crystal\" ) :priority '1 :server-id 'crystalline ))) For a custom path, you can set the path of the server location with: ( setq lsp-crystal-custom-server-command ' ( \"bash\" \"-c\" \"/path/to/crystal-lsp\" )) LSP features # This guide will focus on the features of lsp-mode that are most relevant to Crystal development. You can view documentation of all features at the official lsp-mode site or crystalline features section . Syntax check # This automatically checks your code for errors and warnings as you write it. There is syntax checking, functions/variables that are not used or do not exist, among other types of checks. Formatting # For code formatting, crystal-lsp together with Crystalline provide code formatting following the respective code conventions (coding style) of the Crystal programming language. Performance # The first time crystal-lsp starts your project, it will scan all the settings in your shard.yml file, which may take a while depending on the size of your project. See also # Crystal Book","title":"Configuring Emacs as a Crystal IDE"},{"location":"tutorials/crystal-guide/#configuring-emacs-as-a-crystal-ide","text":"Author: @lanjoni In this guide, I'll show you how to configure lsp-mode for Crystal development, using GNU Emacs . By the end of this tutorial you will be able to use the code editor and all its features for Crystal so far. For all lsp-mode features, check here .","title":"Configuring Emacs as a Crystal IDE"},{"location":"tutorials/crystal-guide/#installing-the-language-server","text":"lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. For Crystal, we will be using crystalline , which is currently the only LSP server for Crystal that is still receiving updates and community support. Previously, scry was used as an LSP server.","title":"Installing the language server"},{"location":"tutorials/crystal-guide/#via-lsp-mode","text":"lsp-mode ships with automatic installation scripts for some of the language servers and crystal-lsp is one of the supported servers, you can install it using M-x lsp-install-server RET crystal-lsp . After installed, lsp-mode will automatically initialize it when opening Crystal files.","title":"Via lsp-mode"},{"location":"tutorials/crystal-guide/#manually","text":"To install manually first make sure the binary is already in your PATH. You can download an already compiled version or compile from the original code with Crystal. Check here for more information on how to build it manually. After installed, you can add in your settings the definitions to use Crystalline with lsp-mode by default with: ( with-eval-after-load 'lsp-mode ( add-to-list 'lsp-language-id-configuration ' ( crystal-mode . \"crystal\" )) ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection ' ( \"crystalline\" )) :activation-fn ( lsp-activate-on \"crystal\" ) :priority '1 :server-id 'crystalline ))) For a custom path, you can set the path of the server location with: ( setq lsp-crystal-custom-server-command ' ( \"bash\" \"-c\" \"/path/to/crystal-lsp\" ))","title":"Manually"},{"location":"tutorials/crystal-guide/#lsp-features","text":"This guide will focus on the features of lsp-mode that are most relevant to Crystal development. You can view documentation of all features at the official lsp-mode site or crystalline features section .","title":"LSP features"},{"location":"tutorials/crystal-guide/#syntax-check","text":"This automatically checks your code for errors and warnings as you write it. There is syntax checking, functions/variables that are not used or do not exist, among other types of checks.","title":"Syntax check"},{"location":"tutorials/crystal-guide/#formatting","text":"For code formatting, crystal-lsp together with Crystalline provide code formatting following the respective code conventions (coding style) of the Crystal programming language.","title":"Formatting"},{"location":"tutorials/crystal-guide/#performance","text":"The first time crystal-lsp starts your project, it will scan all the settings in your shard.yml file, which may take a while depending on the size of your project.","title":"Performance"},{"location":"tutorials/crystal-guide/#see-also","text":"Crystal Book","title":"See also"},{"location":"tutorials/debugging-clojure-script/","text":"Debugging ClojureScript using dap-mode # In this tutorial, we will cover the steps needed to debug ClojureScript in emacs using Google Chrome Debug Adapter . For general overview of Clojure features check Clojure Guide . Requirements # Emacs 26.1 or Emacs 27.1+ (recommended) node.js (v6.0.0+, most recent version preferred) npm (comes bundled with node.js) or yarn Java SDK (Version 8+, Hotspot) Google Chrome browser Sample minimal configuration # Here it is sample configuration based on the basic configuration in Clojure Guide . ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( clojure-mode lsp-mode cider lsp-treemacs flycheck company dap-mode )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ( add-hook 'clojure-mode-hook 'lsp ) ( add-hook 'clojurescript-mode-hook 'lsp ) ( add-hook 'clojurec-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-minimum-prefix-length 1 lsp-lens-enable t lsp-signature-auto-activate nil ) ( with-eval-after-load 'dap-mode ( require 'dap-chrome )) Project creation # For this recipe, we will use shadow-cljs . Install npx $ npm install -g npx Create the sample project $ npx create-cljs-project dap-debug-app npx: installed 1 in 1 .764s shadow-cljs - creating project: /home/yyoncho/Sources/dap-debug-app Creating: /home/yyoncho/Sources/dap-debug-app/package.json Creating: /home/yyoncho/Sources/dap-debug-app/shadow-cljs.edn Creating: /home/yyoncho/Sources/dap-debug-app/.gitignore Creating: /home/yyoncho/Sources/dap-debug-app/src/main Creating: /home/yyoncho/Sources/dap-debug-app/src/test ---- Installing shadow-cljs in project. npm notice created a lockfile as package-lock.json. You should commit this file. + shadow-cljs@2.11.23 added 100 packages from 106 contributors and audited 100 packages in 4 .831s 3 packages are looking for funding run ` npm fund ` for details found 0 vulnerabilities Emacs # Create and open file src/main/dap/frontend/app.cljs and make sure that clojure-lsp language server is up and running. Add the following content: ( ns dap.frontend.app ) ( defn sum [ a b ] ( + a b )) ( defn init [] ( sum 1 2 ) ( println \"Hello World\" )) Inside the shadow-cljs.edn :builds section add { ... :builds { :frontend { :target :browser :modules { :main { :init-fn dap.frontend.app/init }} }}} This config tells the compiler to call (dap.frontend.app/init) when the generated JS code is loaded. Since no :output-dir is configured the default public/js is used. You can start the development process by running: $ npx shadow-cljs watch frontend ... a few moments later ... ... [ :frontend ] Build completed. ( 134 files, 35 compiled, 0 warnings, 5 .80s ) Once the config is saved the server will automatically start and serve the content at http://localhost:8080. There is no need to restart shadow-cljs. When opening the above URL the Browser Console should show \"Hello World\". Debugging # The first step is install Google Chrome Debug Adapter via M-x dap-chrome-setup . This is one time operation. Then create file launch.json with the following content: { \"version\" : \"0.2.0\" , \"configurations\" : [ { \"type\" : \"chrome\" , \"request\" : \"launch\" , \"name\" : \"DAP clojurescript\" , \"url\" : \"http://localhost:8080\" , \"sourceMaps\" : true , \"webRoot\" : \"${workspaceFolder}\" , \"sourceMapPathOverrides\" : { \"*\" : \"${workspaceFolder}/src/main/*\" } } ] } Then open app.cljs and place some breakpoints either by clicking in the fringe or by doing M-x dap-breakpoint-toggle . After doing that, you can do M-x dap-debug and select DAP clojurescript . In case you intend to use Chromium, and you get a Error processing \"launch\": Error: Can't find Chrome - install it or set the \"runtimeExecutable\" field in the launch config , just add the full path to your Chromium executable. For instance, in a Debian system, it would be /usr/bin/chromium . In your launch.json , just add the following line: \"runtimeExecutable\": \"/usr/bin/chromium\" Screenshot # Your editor should look like this: You may find the complete project sources at https://github.com/yyoncho/dap-debug-app See also # dap-mode shadow-cljs","title":"Debugging Clojurescript"},{"location":"tutorials/debugging-clojure-script/#debugging-clojurescript-using-dap-mode","text":"In this tutorial, we will cover the steps needed to debug ClojureScript in emacs using Google Chrome Debug Adapter . For general overview of Clojure features check Clojure Guide .","title":"Debugging ClojureScript using dap-mode"},{"location":"tutorials/debugging-clojure-script/#requirements","text":"Emacs 26.1 or Emacs 27.1+ (recommended) node.js (v6.0.0+, most recent version preferred) npm (comes bundled with node.js) or yarn Java SDK (Version 8+, Hotspot) Google Chrome browser","title":"Requirements"},{"location":"tutorials/debugging-clojure-script/#sample-minimal-configuration","text":"Here it is sample configuration based on the basic configuration in Clojure Guide . ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( clojure-mode lsp-mode cider lsp-treemacs flycheck company dap-mode )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ( add-hook 'clojure-mode-hook 'lsp ) ( add-hook 'clojurescript-mode-hook 'lsp ) ( add-hook 'clojurec-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-minimum-prefix-length 1 lsp-lens-enable t lsp-signature-auto-activate nil ) ( with-eval-after-load 'dap-mode ( require 'dap-chrome ))","title":"Sample minimal configuration"},{"location":"tutorials/debugging-clojure-script/#project-creation","text":"For this recipe, we will use shadow-cljs . Install npx $ npm install -g npx Create the sample project $ npx create-cljs-project dap-debug-app npx: installed 1 in 1 .764s shadow-cljs - creating project: /home/yyoncho/Sources/dap-debug-app Creating: /home/yyoncho/Sources/dap-debug-app/package.json Creating: /home/yyoncho/Sources/dap-debug-app/shadow-cljs.edn Creating: /home/yyoncho/Sources/dap-debug-app/.gitignore Creating: /home/yyoncho/Sources/dap-debug-app/src/main Creating: /home/yyoncho/Sources/dap-debug-app/src/test ---- Installing shadow-cljs in project. npm notice created a lockfile as package-lock.json. You should commit this file. + shadow-cljs@2.11.23 added 100 packages from 106 contributors and audited 100 packages in 4 .831s 3 packages are looking for funding run ` npm fund ` for details found 0 vulnerabilities","title":"Project creation"},{"location":"tutorials/debugging-clojure-script/#emacs","text":"Create and open file src/main/dap/frontend/app.cljs and make sure that clojure-lsp language server is up and running. Add the following content: ( ns dap.frontend.app ) ( defn sum [ a b ] ( + a b )) ( defn init [] ( sum 1 2 ) ( println \"Hello World\" )) Inside the shadow-cljs.edn :builds section add { ... :builds { :frontend { :target :browser :modules { :main { :init-fn dap.frontend.app/init }} }}} This config tells the compiler to call (dap.frontend.app/init) when the generated JS code is loaded. Since no :output-dir is configured the default public/js is used. You can start the development process by running: $ npx shadow-cljs watch frontend ... a few moments later ... ... [ :frontend ] Build completed. ( 134 files, 35 compiled, 0 warnings, 5 .80s ) Once the config is saved the server will automatically start and serve the content at http://localhost:8080. There is no need to restart shadow-cljs. When opening the above URL the Browser Console should show \"Hello World\".","title":"Emacs"},{"location":"tutorials/debugging-clojure-script/#debugging","text":"The first step is install Google Chrome Debug Adapter via M-x dap-chrome-setup . This is one time operation. Then create file launch.json with the following content: { \"version\" : \"0.2.0\" , \"configurations\" : [ { \"type\" : \"chrome\" , \"request\" : \"launch\" , \"name\" : \"DAP clojurescript\" , \"url\" : \"http://localhost:8080\" , \"sourceMaps\" : true , \"webRoot\" : \"${workspaceFolder}\" , \"sourceMapPathOverrides\" : { \"*\" : \"${workspaceFolder}/src/main/*\" } } ] } Then open app.cljs and place some breakpoints either by clicking in the fringe or by doing M-x dap-breakpoint-toggle . After doing that, you can do M-x dap-debug and select DAP clojurescript . In case you intend to use Chromium, and you get a Error processing \"launch\": Error: Can't find Chrome - install it or set the \"runtimeExecutable\" field in the launch config , just add the full path to your Chromium executable. For instance, in a Debian system, it would be /usr/bin/chromium . In your launch.json , just add the following line: \"runtimeExecutable\": \"/usr/bin/chromium\"","title":"Debugging"},{"location":"tutorials/debugging-clojure-script/#screenshot","text":"Your editor should look like this: You may find the complete project sources at https://github.com/yyoncho/dap-debug-app","title":"Screenshot"},{"location":"tutorials/debugging-clojure-script/#see-also","text":"dap-mode shadow-cljs","title":"See also"},{"location":"tutorials/docker-integration/","text":"Docker integration # Author: @factyy Reason # You can use docker-wrapped both the language server and debugger and connect to them using LSP/DAP. Imagine that you have a short-time project (or a sideproject) and you don't want to bring any software packages to your local machine. Now it is simple: wrap the language server and debugger you need in docker and use lsp-docker for LSP and dap-mode for DAP. Features # Most of the lsp-mode and dap-mode features, but with the ability to use containerized environments. Note: some of the features may yet to be tested, so any help finding and fixing any bugs in them is highly appreciated! Components: Language Server / LSP support # You can use manually built containers or images hosting language server(s), just follow a few simple rules (shown below). Note: this info is based on the readme in the original project, take a look at lsp-docker for additional info. Building a container (or an image): # You have 2 constraints: A language server must be launched in stdio mode (other types of communication are yet to be supported). A docker container (only container subtype, see the configuration below) must have your language server as an entrypoint (basically you have to be able to launch it with docker start -i as it is launched this way with lsp-docker ). When you have sucessfully built a language server, you have to register it with either a configuration file or a .dir-locals file. Registering a language server using a persistent configuration file: # A configuration file is a yaml file that is named .lsp-docker.yml or .lsp-docker.yaml and looks generally like this: lsp : server : type : docker subtype : container # Or image. container subtype means launching an existing container # image subtype means creating a new container each time from a specified image name : not-significant-but-unique-name # Must be unique across all language servers server : server-id-of-the-base-server # Server id of a registered server (by lsp-mode) launch_command : \"launch command with arguments\" # Launch command of the language server # (selected by a server id specified above) in stdio mode # Note: launch_command is not used with container subtype servers # as a command is embedded in a container itself and serves as an entrypoint mappings : - source : \"/your/host/source/path\" destination : \"/your/local/path/inside/a/container\" Registering a language server using a .dir-locals file: # Just refer to the source code and general conventions of using .dir-locals. The variable you need is lsp-docker-persistent-default-config, its content is merged with the lsp section from a configuration file (if present). Components: Debugger / DAP # Note: this info is based on the readme in the original project, take a look at dap-mode for additional info. Configure it either with a .dir-locals file or drop an .lsp-docker.yml configuration file (use lsp-docker for general reference). Basically you have one function dap-docker-register that performs all the heavy lifting (finding the original debug template, patching it, registering a debug provider e.t.c). This function examines a configuration file or falls back to the default configuration (which can be patched using the .dir-locals approach, take a note that the default configuration doesn\u2019t provide any sane defaults for debugging) and then operates on the combination of the two. This mechanism is the same as in lsp-docker . Note: currently you cannot use this mode when using a network connection to connect to debuggers (this part is yet to be implemented). Still want to talk to debuggers over network? In order to do so you have to look at the launch-args patching done by dap-docker--dockerize-start-file-args , you have to somehow assign nil to dap-server-path before it is passed further into session creation. If you want to stick to a configuration file, take a look at the example below: lsp : server : # 'lsp-docker' fields mappings : - source : \"/your/host/source/path\" # used both by 'lsp-docker' and 'dap-docker' destination : \"/your/local/path/inside/a/container\" # used both by 'lsp-docker' and 'dap-docker' debug : type : docker # only docker is supported subtype : image # or 'container' name : # you can omit this field # in this case the 'lsp-docker' ('server' section) image name is used enabled : true # you can explicitly disable 'dap-docker' by using 'false' provider : template : launch_command : # e.g. if you have installed a debug server in a different directory, not used with 'container' subtype debuggers Examples # Let's develop and debug a simple Ruby application (that uses bundler nonetheless). In the project folder we have at least the actual code and Gemfile with Gemfile.lock . First of all we have to build the images and containers. Let's stick with an image for a language server and a container for debugging. In order to have LSP support in Ruby we have to place solargraph in Gemfile . Building: Language Server # So it is easy to use something like this as a Dockerfile for a language server (using debian-slim as a base image, but it is a matter of personal taste): FROM ruby:3.1.1-slim-bullseye as app # What if your gems use native extensions? RUN apt-get update && apt-get install -y --no-install-recommends \\ build-essential \\ && rm -rf /var/lib/apt/lists/* # You may decide not to create a user, it is ok to delete these lines RUN addgroup --gid 1000 user && \\ adduser --disabled-password --gecos '' --uid 1000 --gid 1000 user # Just an appropriate folder, a matter of taste again RUN mkdir /app && chown user:user /app WORKDIR /app # Install all the gems, INCLUDING the language server COPY Gemfile Gemfile.lock ./ RUN bundle install # Use the created user, remove this line if you deleted the user creation lines USER user You may build it with something like this docker build -t lsp-docker-ruby-server . while you are in the project folder. Building: Debugger # With a debugger it is a bit more complicated: first of all you need node to run the DAP server (as it is a VSCode extension) and second you need to place the extension into the container. You can download the extension (take the latest version) from the VSCode marketplace and place it in your project folder ( vspackage.zip for convenience). In this case your Dockerfile may look like this: FROM ruby:3.1.1-slim-bullseye as app RUN apt-get update && apt-get install -y --no-install-recommends \\ build-essential \\ nodejs \\ unzip \\ && rm -rf /var/lib/apt/lists/* # Create a folder for the debugger RUN mkdir /debugger WORKDIR /debugger COPY vspackage.zip . RUN unzip vspackage.zip -d . RUN addgroup --gid 1000 user && \\ adduser --disabled-password --gecos '' --uid 1000 --gid 1000 user RUN mkdir /app && chown user:user /app WORKDIR /app COPY Gemfile Gemfile.lock ./ RUN bundle install USER user Again you may build it with something like this docker build -t dap-docker-ruby-server . while you are in the project folder. But as we decided to stick with a container for the debugger, we need to create one! It is easy (but take note that we have to specify the folder mappings when creating a container! ): docker create -i -v `pwd`:/app -w /app --name dap-docker-ruby-server dap-docker-ruby-server node /debugger/extension/dist/debugger/main.js . Configuration # Lets use a yaml persistent configuration, we may use something like this (in .lsp-docker.yml in the project folder): lsp : server : type : docker subtype : image name : lsp-docker-ruby-server server : ruby-ls launch_command : \"bundle exec solargraph stdio\" mappings : - source : \".\" destination : \"/app\" debug : type : docker subtype : container name : dap-docker-ruby-server enabled : true provider : \"Ruby\" template : \"Ruby::Run\" launch_command : \"node /debugger/extension/dist/debugger/main.js\" # It is meaningless as we use a container, but still Next we have to register both language server and debugger when the project is opened in Emacs: use lsp-docker-register and dap-docker-register interactive functions. If everything is fine you may launch a language server by a simple lsp invocation and DAP by dap-debug and selecting a dockerized debug template.","title":"Docker integration"},{"location":"tutorials/docker-integration/#docker-integration","text":"Author: @factyy","title":"Docker integration"},{"location":"tutorials/docker-integration/#reason","text":"You can use docker-wrapped both the language server and debugger and connect to them using LSP/DAP. Imagine that you have a short-time project (or a sideproject) and you don't want to bring any software packages to your local machine. Now it is simple: wrap the language server and debugger you need in docker and use lsp-docker for LSP and dap-mode for DAP.","title":"Reason"},{"location":"tutorials/docker-integration/#features","text":"Most of the lsp-mode and dap-mode features, but with the ability to use containerized environments. Note: some of the features may yet to be tested, so any help finding and fixing any bugs in them is highly appreciated!","title":"Features"},{"location":"tutorials/docker-integration/#components-language-server-lsp-support","text":"You can use manually built containers or images hosting language server(s), just follow a few simple rules (shown below). Note: this info is based on the readme in the original project, take a look at lsp-docker for additional info.","title":"Components: Language Server / LSP support"},{"location":"tutorials/docker-integration/#building-a-container-or-an-image","text":"You have 2 constraints: A language server must be launched in stdio mode (other types of communication are yet to be supported). A docker container (only container subtype, see the configuration below) must have your language server as an entrypoint (basically you have to be able to launch it with docker start -i as it is launched this way with lsp-docker ). When you have sucessfully built a language server, you have to register it with either a configuration file or a .dir-locals file.","title":"Building a container (or an image):"},{"location":"tutorials/docker-integration/#registering-a-language-server-using-a-persistent-configuration-file","text":"A configuration file is a yaml file that is named .lsp-docker.yml or .lsp-docker.yaml and looks generally like this: lsp : server : type : docker subtype : container # Or image. container subtype means launching an existing container # image subtype means creating a new container each time from a specified image name : not-significant-but-unique-name # Must be unique across all language servers server : server-id-of-the-base-server # Server id of a registered server (by lsp-mode) launch_command : \"launch command with arguments\" # Launch command of the language server # (selected by a server id specified above) in stdio mode # Note: launch_command is not used with container subtype servers # as a command is embedded in a container itself and serves as an entrypoint mappings : - source : \"/your/host/source/path\" destination : \"/your/local/path/inside/a/container\"","title":"Registering a language server using a persistent configuration file:"},{"location":"tutorials/docker-integration/#registering-a-language-server-using-a-dir-locals-file","text":"Just refer to the source code and general conventions of using .dir-locals. The variable you need is lsp-docker-persistent-default-config, its content is merged with the lsp section from a configuration file (if present).","title":"Registering a language server using a .dir-locals file:"},{"location":"tutorials/docker-integration/#components-debugger-dap","text":"Note: this info is based on the readme in the original project, take a look at dap-mode for additional info. Configure it either with a .dir-locals file or drop an .lsp-docker.yml configuration file (use lsp-docker for general reference). Basically you have one function dap-docker-register that performs all the heavy lifting (finding the original debug template, patching it, registering a debug provider e.t.c). This function examines a configuration file or falls back to the default configuration (which can be patched using the .dir-locals approach, take a note that the default configuration doesn\u2019t provide any sane defaults for debugging) and then operates on the combination of the two. This mechanism is the same as in lsp-docker . Note: currently you cannot use this mode when using a network connection to connect to debuggers (this part is yet to be implemented). Still want to talk to debuggers over network? In order to do so you have to look at the launch-args patching done by dap-docker--dockerize-start-file-args , you have to somehow assign nil to dap-server-path before it is passed further into session creation. If you want to stick to a configuration file, take a look at the example below: lsp : server : # 'lsp-docker' fields mappings : - source : \"/your/host/source/path\" # used both by 'lsp-docker' and 'dap-docker' destination : \"/your/local/path/inside/a/container\" # used both by 'lsp-docker' and 'dap-docker' debug : type : docker # only docker is supported subtype : image # or 'container' name : # you can omit this field # in this case the 'lsp-docker' ('server' section) image name is used enabled : true # you can explicitly disable 'dap-docker' by using 'false' provider : template : launch_command : # e.g. if you have installed a debug server in a different directory, not used with 'container' subtype debuggers","title":"Components: Debugger / DAP"},{"location":"tutorials/docker-integration/#examples","text":"Let's develop and debug a simple Ruby application (that uses bundler nonetheless). In the project folder we have at least the actual code and Gemfile with Gemfile.lock . First of all we have to build the images and containers. Let's stick with an image for a language server and a container for debugging. In order to have LSP support in Ruby we have to place solargraph in Gemfile .","title":"Examples"},{"location":"tutorials/docker-integration/#building-language-server","text":"So it is easy to use something like this as a Dockerfile for a language server (using debian-slim as a base image, but it is a matter of personal taste): FROM ruby:3.1.1-slim-bullseye as app # What if your gems use native extensions? RUN apt-get update && apt-get install -y --no-install-recommends \\ build-essential \\ && rm -rf /var/lib/apt/lists/* # You may decide not to create a user, it is ok to delete these lines RUN addgroup --gid 1000 user && \\ adduser --disabled-password --gecos '' --uid 1000 --gid 1000 user # Just an appropriate folder, a matter of taste again RUN mkdir /app && chown user:user /app WORKDIR /app # Install all the gems, INCLUDING the language server COPY Gemfile Gemfile.lock ./ RUN bundle install # Use the created user, remove this line if you deleted the user creation lines USER user You may build it with something like this docker build -t lsp-docker-ruby-server . while you are in the project folder.","title":"Building: Language Server"},{"location":"tutorials/docker-integration/#building-debugger","text":"With a debugger it is a bit more complicated: first of all you need node to run the DAP server (as it is a VSCode extension) and second you need to place the extension into the container. You can download the extension (take the latest version) from the VSCode marketplace and place it in your project folder ( vspackage.zip for convenience). In this case your Dockerfile may look like this: FROM ruby:3.1.1-slim-bullseye as app RUN apt-get update && apt-get install -y --no-install-recommends \\ build-essential \\ nodejs \\ unzip \\ && rm -rf /var/lib/apt/lists/* # Create a folder for the debugger RUN mkdir /debugger WORKDIR /debugger COPY vspackage.zip . RUN unzip vspackage.zip -d . RUN addgroup --gid 1000 user && \\ adduser --disabled-password --gecos '' --uid 1000 --gid 1000 user RUN mkdir /app && chown user:user /app WORKDIR /app COPY Gemfile Gemfile.lock ./ RUN bundle install USER user Again you may build it with something like this docker build -t dap-docker-ruby-server . while you are in the project folder. But as we decided to stick with a container for the debugger, we need to create one! It is easy (but take note that we have to specify the folder mappings when creating a container! ): docker create -i -v `pwd`:/app -w /app --name dap-docker-ruby-server dap-docker-ruby-server node /debugger/extension/dist/debugger/main.js .","title":"Building: Debugger"},{"location":"tutorials/docker-integration/#configuration","text":"Lets use a yaml persistent configuration, we may use something like this (in .lsp-docker.yml in the project folder): lsp : server : type : docker subtype : image name : lsp-docker-ruby-server server : ruby-ls launch_command : \"bundle exec solargraph stdio\" mappings : - source : \".\" destination : \"/app\" debug : type : docker subtype : container name : dap-docker-ruby-server enabled : true provider : \"Ruby\" template : \"Ruby::Run\" launch_command : \"node /debugger/extension/dist/debugger/main.js\" # It is meaningless as we use a container, but still Next we have to register both language server and debugger when the project is opened in Emacs: use lsp-docker-register and dap-docker-register interactive functions. If everything is fine you may launch a language server by a simple lsp invocation and DAP by dap-debug and selecting a dockerized debug template.","title":"Configuration"},{"location":"tutorials/how-to-turn-off/","text":"A guide on disabling/enabling lsp-mode features # Early in the project, we decided to auto-configure/enable all of the stable features by default in order to improve discoverability and simplify the setup for the beginners. This decision was considered good by the majority of the users coming from IDEs but still in Emacs community there are a lot of people looking for a minimal distraction-free experience especially traditional long time users. Although the turn off defcustom settings are documented in corresponding README and available via customize-group it turned out that it is not very easy to find them when you want to turn a particular feature off which led to a lot of frustration. Hopefully, this article will help solving that issue: 1. Symbol highlighting ( setq lsp-enable-symbol-highlighting nil ) 2. lsp-ui-doc - on hover dialogs. * disable via (setq lsp-ui-doc-enable nil) * disable cursor hover (keep mouse hover) ( setq lsp-ui-doc-show-with-cursor nil ) * disable mouse hover (keep cursor hover) ( setq lsp-ui-doc-show-with-mouse nil ) 3. Lenses ( setq lsp-lens-enable nil ) 4. Headerline ( setq lsp-headerline-breadcrumb-enable nil ) 5. Sideline code actions * disable whole sideline via ( setq lsp-ui-sideline-enable nil ) * hide code actions ( setq lsp-ui-sideline-show-code-actions nil ) 6. Sideline hover symbols * disable whole sideline via ( setq lsp-ui-sideline-enable nil ) * hide only hover symbols ( setq lsp-ui-sideline-show-hover nil ) 7. Modeline code actions ( setq lsp-modeline-code-actions-enable nil ) 8. Flycheck (or flymake if no flycheck is present) ( setq lsp-diagnostics-provider :none ) 9. Sideline diagnostics * disable whole sideline via ( setq lsp-ui-sideline-enable nil ) * hide only errors ( setq lsp-ui-sideline-show-diagnostics nil ) 10. Eldoc ( setq lsp-eldoc-enable-hover nil ) 11. Modeline diagnostics statistics ( setq lsp-modeline-diagnostics-enable nil ) 12. Signature help ( setq lsp-signature-auto-activate nil ) ;; you could manually request them via `lsp-signature-activate` 13. Signature help documentation (keep the signatures) ( setq lsp-signature-render-documentation nil ) 14. Completion ( company-mode ) ( setq lsp-completion-provider :none ) 15. Completion item detail ( setq lsp-completion-show-detail nil ) 16. Completion item kind ( setq lsp-completion-show-kind nil )","title":"A guide on disabling/enabling lsp-mode features"},{"location":"tutorials/how-to-turn-off/#a-guide-on-disablingenabling-lsp-mode-features","text":"Early in the project, we decided to auto-configure/enable all of the stable features by default in order to improve discoverability and simplify the setup for the beginners. This decision was considered good by the majority of the users coming from IDEs but still in Emacs community there are a lot of people looking for a minimal distraction-free experience especially traditional long time users. Although the turn off defcustom settings are documented in corresponding README and available via customize-group it turned out that it is not very easy to find them when you want to turn a particular feature off which led to a lot of frustration. Hopefully, this article will help solving that issue: 1. Symbol highlighting ( setq lsp-enable-symbol-highlighting nil ) 2. lsp-ui-doc - on hover dialogs. * disable via (setq lsp-ui-doc-enable nil) * disable cursor hover (keep mouse hover) ( setq lsp-ui-doc-show-with-cursor nil ) * disable mouse hover (keep cursor hover) ( setq lsp-ui-doc-show-with-mouse nil ) 3. Lenses ( setq lsp-lens-enable nil ) 4. Headerline ( setq lsp-headerline-breadcrumb-enable nil ) 5. Sideline code actions * disable whole sideline via ( setq lsp-ui-sideline-enable nil ) * hide code actions ( setq lsp-ui-sideline-show-code-actions nil ) 6. Sideline hover symbols * disable whole sideline via ( setq lsp-ui-sideline-enable nil ) * hide only hover symbols ( setq lsp-ui-sideline-show-hover nil ) 7. Modeline code actions ( setq lsp-modeline-code-actions-enable nil ) 8. Flycheck (or flymake if no flycheck is present) ( setq lsp-diagnostics-provider :none ) 9. Sideline diagnostics * disable whole sideline via ( setq lsp-ui-sideline-enable nil ) * hide only errors ( setq lsp-ui-sideline-show-diagnostics nil ) 10. Eldoc ( setq lsp-eldoc-enable-hover nil ) 11. Modeline diagnostics statistics ( setq lsp-modeline-diagnostics-enable nil ) 12. Signature help ( setq lsp-signature-auto-activate nil ) ;; you could manually request them via `lsp-signature-activate` 13. Signature help documentation (keep the signatures) ( setq lsp-signature-render-documentation nil ) 14. Completion ( company-mode ) ( setq lsp-completion-provider :none ) 15. Completion item detail ( setq lsp-completion-show-detail nil ) 16. Completion item kind ( setq lsp-completion-show-kind nil )","title":"A guide on disabling/enabling lsp-mode features"},{"location":"tutorials/php-guide/","text":"Configuring Emacs as a PHP IDE # Author: @elken In this guide, I will show you how to configure lsp-mode and dap-mode for PHP development, using GNU Emacs as an example code base. At the end of this tutorial, Emacs should provide you with all the language-aware editor features you'd expect from a modern PHP IDE, such as Code completion Real-time syntax checking Code navigation (references/definitions/implementations/symbol search) Visual IDE debugger Document outline, breadcrumb and modeline widgets For all lsp-mode features, check here . Obtaining a language server # lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. Currently, there exists several options for an LSP server: Intelephense (automatic install) # Considered to be the most stable and recommended choice, but does however include a freemium model for some of the features. phpactor (manual install) # WIP fully open source, but doesn't support the full spec yet Serenata (manual install) # Currently doesn't seem active with no commits since May 2021 php-language-server (manual install) # No commits since December 2018, considered dead For the most part, you should be able to pick from at least Intelephense or phpactor, but for the purpose of this guide we will assume Intelephense. As expected, for the manual installations you have to follow the instructions listed on the linked pages. Project setup # Regular composer # For any plain composer projects, it should provide a great experience ootb unless you're using a complex framework like Laravel or Symfony. Following the configuration instructions linked below should be all you need Laravel # For the most part, Laravel should \"just work\"; with the caveat that the majority of the so-called \"magic methods\" won't be autocompleted properly. To get around this, there is a composer package called laravel-ide-helper which will pull together everything in your project and the laravel codebase. Follow the instructions on the laravel-ide-helper page (including the scripts changes, so you don't have to regenerate them manually) and add the generated files to source control ignore files. Configuration # Below is a minimal config to get started with LSP & PHP. It includes a couple of packages to create an IDE-like experience, such as snippets, a project tree viewer and an autocompletion interface. For the purposes of demos and screenshots the below config is all that will be used unless otherwise specified, so you have the confidence that you can easily replicate everything here. Also to note that configuration frameworks such as Spacemacs and Doom Emacs include pre-configured setups for this, so feel free to dig around in those sources to get some useful snippets! ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( lsp-mode yasnippet lsp-treemacs flycheck company which-key dap-mode php-mode )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ( which-key-mode ) ( add-hook 'php-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-idle-delay 0.0 company-minimum-prefix-length 1 lsp-idle-delay 0.1 ) ;; clangd is fast ( with-eval-after-load 'lsp-mode ( add-hook 'lsp-mode-hook #' lsp-enable-which-key-integration ) ( require 'dap-php ) ( yas-global-mode )) Feature overview # To reduce the complexity, we won't touch on any frameworks and will instead just experiment with a simple PHP file. Also as mentioned above, this will be with Intelephense and a paid licence, so if you either use the free version or phpactor, your mileage may vary. To follow along, simply create a PHP file anywhere on your file system (or use one you have already). For these examples, I'll be using /tmp/lsp/test.php . For starters, let's open our blank file. (emacs-php.el is the contents of the above snippet on my local file system) mkdir -p /tmp/lsp emacs -Q -l emacs-php.el /tmp/lsp/test.php After opening the file, you should be prompted to install a language server: Type \"iph\" (or tab-complete it) and hit enter. Once your compilation looks similar to the below, close and reopen emacs and open the file again. Now, if everything was successful you will be asked to select a project root. Note: the project root is needed by the language server in order to know where to start the project discovery from. Typically, this is the git repository root but since exceptions to this rule have caused us a lot of trouble in the past (monorepos come to mind), lsp-mode by default asks the user to manually confirm the project root the first time a project is opened. In this instance, select i . Completion # By default, lsp-mode uses company-mode as its completion frontend. When present, company-mode will be auto-configured and it will just work. For example, after adding a tag in ReactDOM.render with element . import React from 'react' ; import ReactDOM from 'react-dom' ; import './index.css' ; import App from './App' ; import reportWebVitals from './reportWebVitals' ; var element = React . createElement ( 'h1' , { className : 'greeting' }, 'Hello, world!' ); ReactDOM . render ( element , document . getElementById ( 'root' )); reportWebVitals (); Once you save the index.js file, the running instance of the server will update the web page and you'll see \"Hello World!\". Debugging React # To debug the client side React code, we'll need to install the Debugger for Chrome extension. Note: This tutorial assumes you have the Chrome browser installed. There are also debugger extensions for the Edge and Firefox browsers. Press M-x and type dap-chrome-setup . Set a breakpoint # To set a breakpoint in index.js , click on the gutter to the left of the line numbers. This will set a breakpoint which will be visible as a red circle. Configure the Chrome debugger # We need to initially configure the debugger . To do so, create a launch.json file in the .vscode/ subfolder of the project root with a configuration to launch the website: { \"version\" : \"0.2.0\" , \"configurations\" : [ { \"type\" : \"chrome\" , \"request\" : \"launch\" , \"name\" : \"Launch Chrome against localhost\" , \"url\" : \"http://localhost:3000\" , \"webRoot\" : \"${workspaceFolder}\" } ] } Ensure that your development server is running ( npm start ). Then type M-x dap-debug or use Debug -> Start menu. The source code where the breakpoint is set runs on startup before the debugger was attached, so we won't hit the breakpoint until we refresh the web page. Refresh the page and you should hit your breakpoint. You can step through your source code using M-x dap-next , inspect variables such as element , and see the call stack of the client side React application. The Debugger for Chrome extension README has lots of information on other configurations, working with sourcemaps, and troubleshooting. You can review it their README Live editing and debugging # If you are using webpack together with your React app, you can have a more efficient workflow by taking advantage of webpack's HMR mechanism which enables you to have live editing and debugging directly from Emacs. You can learn more in this Live edit and debug your React apps directly from Emacs(TO BE PORTED TO EMACS) blog post and the webpack Hot Module Replacement documentation(TO BE PORTED TO EMACS) . Linting # Linters analyze your source code and can warn about potential problems before running your application. The JavaScript language service included with Emacs has syntax error checking support by default, which you can see in action in the Errors List panel ( M-x lsp-treemacs-errors-list ). Try making a small error in your React source code and you'll see a red squiggle and an error in the Errors List panel. Linters can provide more sophisticated analysis, enforcing coding conventions and detecting anti-patterns. A popular JavaScript linter is ESLint . ESLint, when combined with the ESLint Emacs extension , provides a great in-product linting experience. First, install the ESLint command-line tool: npm install -g eslint Then install the ESLint language server by doing M-x lsp-install-server RET eslint RET . Once the ESLint extension is installed, you'll want to create an ESLint configuration file, .eslintrc.js . You can create one using M-x lsp-eslint-create-default-configuration . The command will prompt you to answer a series of questions in a separate window. Accept the defaults, and it will create a .eslintrc.js file in your project root that looks something like this: module . exports = { \"env\" : { \"browser\" : true , \"es2020\" : true }, \"extends\" : [ \"eslint:recommended\" , \"plugin:react/recommended\" ], \"parserOptions\" : { \"ecmaFeatures\" : { \"jsx\" : true }, \"ecmaVersion\" : 11 , \"sourceType\" : \"module\" }, \"plugins\" : [ \"react\" ], \"rules\" : { } }; ESLint will now analyze open files and shows a warning in index.js about 'App' being defined but never used. You can modify the ESLint rules in the .eslintrc.js file. Let's add an error rule for extra semi-colons: \"rules\" : { \"no-extra-semi\" : \"error\" } Now when you mistakenly have multiple semicolons on a line, you'll see an error (red squiggle) in the editor and error entry in the Problems panel. Popular Starter Kits # In this tutorial, we used the create-react-app generator to create a simple React application. There are lots of great samples and starter kits available to help build your first React application. TypeScript React # If you're curious about TypeScript and React, you can also create a TypeScript version of the create-react-app application. See the details at TypeScript-React-Starter on the TypeScript Quick Start site.","title":"React JavaScript Tutorial in Emacs"},{"location":"tutorials/reactjs-tutorial/#using-react-in-emacs","text":"React is a popular JavaScript library developed by Facebook for building web application user interfaces. The Emacs editor supports React.js IntelliSense and code navigation out of the box.","title":"Using React in Emacs"},{"location":"tutorials/reactjs-tutorial/#welcome-to-react","text":"We'll be using the create-react-app generator for this tutorial. To use the generator as well as to run the React application server, you'll need the Node.js JavaScript runtime and npm (Node.js package manager) installed. npm is included with Node.js, which you can download and install from Node.js downloads . Tip : To test that you have Node.js and npm correctly installed on your machine, you can type node --version and npm --version in a terminal or command prompt. You can now create a new React application by typing: npx create-react-app my-app where my-app is the name of the folder for your React application. It may take a few minutes to create it and to install its dependencies. Note : If you've previously installed create-react-app globally via npm install -g create-react-app , we recommend you uninstall the package using npm uninstall -g create-react-app to ensure that npx always uses the latest version. Let's quickly run our React application by navigating to the new folder and typing npm start to start the web server and to open the application in a browser: cd my-app npm start You should see the React logo and a link to \"Learn React\" on http://localhost:3000 in your browser. We'll leave the web server running while we look at the application with Emacs.","title":"Welcome to React"},{"location":"tutorials/reactjs-tutorial/#emacs-configuration","text":"Here is a minimal configuration to run this tutorial: ( package-initialize ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( setq package-selected-packages ' ( lsp-mode yasnippet lsp-treemacs helm-lsp projectile hydra flycheck company avy which-key helm-xref dap-mode zenburn-theme json-mode )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ( load-theme 'zenburn t ) ( helm-mode ) ( require 'helm-xref ) ( define-key global-map [ remap find-file ] #' helm-find-files ) ( define-key global-map [ remap execute-extended-command ] #' helm-M-x ) ( define-key global-map [ remap switch-to-buffer ] #' helm-mini ) ( which-key-mode ) ( add-hook 'prog-mode-hook #' lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) company-idle-delay 0.0 company-minimum-prefix-length 1 create-lockfiles nil ) ;; lock files will kill `npm start' ( with-eval-after-load 'lsp-mode ( require 'dap-chrome ) ( add-hook 'lsp-mode-hook #' lsp-enable-which-key-integration ) ( yas-global-mode )) Tip: if you want to use M-. xref-find-definition in js buffers, add the following to your config: ( with-eval-after-load 'js ( define-key js-mode-map ( kbd \"M-.\" ) nil )) To open your React application in Emacs, open another terminal or command prompt window, navigate to the my-app folder and type: emacs my-app/src/index.js Tip : For optimal experience use either Emacs 27.1 or gccemacs .","title":"Emacs configuration"},{"location":"tutorials/reactjs-tutorial/#installing-the-typescript-language-server","text":"Emacs supports automatic language server installation, so the first time you run M-x lsp in a JavaScript file opened in it, you will be prompted for a language server to install. Select ts-ls .","title":"Installing the typescript language server"},{"location":"tutorials/reactjs-tutorial/#importing-the-project","text":"Then you have to select project root. Press i .","title":"Importing the project"},{"location":"tutorials/reactjs-tutorial/#syntax-highlighting-and-bracket-matching","text":"You'll notice that Emacs has syntax highlighting for the various source code elements and, if you put the cursor on a parenthesis, the matching bracket is also selected.","title":"Syntax highlighting and bracket matching"},{"location":"tutorials/reactjs-tutorial/#intellisense","text":"As you start typing in index.js , you'll see smart suggestions or completions. After you select a suggestion and type . , you see the types and methods on the object through IntelliSense . Emacs uses the TypeScript language service for its JavaScript code intelligence and it has a feature called Automatic Type Acquisition (ATA). ATA pulls down the npm Type Declaration files ( *.d.ts ) for the npm modules referenced in the package.json . If you select a method, you'll also get parameter help:","title":"IntelliSense"},{"location":"tutorials/reactjs-tutorial/#go-to-definition-peek-definition","text":"Through the TypeScript language service, Emacs can also provide type definition information in the editor through Go to Definition ( M-. ) or Peek Definition ( M-x lsp-ui-peek-find-definitions ). Put the cursor over the App , right click and select Go to definition . Note : Peek definition requires installing lsp-ui package which is not part of the default installation.","title":"Go to Definition, Peek definition"},{"location":"tutorials/reactjs-tutorial/#hello-world","text":"Let's update the sample application to \"Hello World!\". Add the link to declare a new H1 header and replace the tag in ReactDOM.render with element . import React from 'react' ; import ReactDOM from 'react-dom' ; import './index.css' ; import App from './App' ; import reportWebVitals from './reportWebVitals' ; var element = React . createElement ( 'h1' , { className : 'greeting' }, 'Hello, world!' ); ReactDOM . render ( element , document . getElementById ( 'root' )); reportWebVitals (); Once you save the index.js file, the running instance of the server will update the web page and you'll see \"Hello World!\".","title":"Hello World!"},{"location":"tutorials/reactjs-tutorial/#debugging-react","text":"To debug the client side React code, we'll need to install the Debugger for Chrome extension. Note: This tutorial assumes you have the Chrome browser installed. There are also debugger extensions for the Edge and Firefox browsers. Press M-x and type dap-chrome-setup .","title":"Debugging React"},{"location":"tutorials/reactjs-tutorial/#set-a-breakpoint","text":"To set a breakpoint in index.js , click on the gutter to the left of the line numbers. This will set a breakpoint which will be visible as a red circle.","title":"Set a breakpoint"},{"location":"tutorials/reactjs-tutorial/#configure-the-chrome-debugger","text":"We need to initially configure the debugger . To do so, create a launch.json file in the .vscode/ subfolder of the project root with a configuration to launch the website: { \"version\" : \"0.2.0\" , \"configurations\" : [ { \"type\" : \"chrome\" , \"request\" : \"launch\" , \"name\" : \"Launch Chrome against localhost\" , \"url\" : \"http://localhost:3000\" , \"webRoot\" : \"${workspaceFolder}\" } ] } Ensure that your development server is running ( npm start ). Then type M-x dap-debug or use Debug -> Start menu. The source code where the breakpoint is set runs on startup before the debugger was attached, so we won't hit the breakpoint until we refresh the web page. Refresh the page and you should hit your breakpoint. You can step through your source code using M-x dap-next , inspect variables such as element , and see the call stack of the client side React application. The Debugger for Chrome extension README has lots of information on other configurations, working with sourcemaps, and troubleshooting. You can review it their README","title":"Configure the Chrome debugger"},{"location":"tutorials/reactjs-tutorial/#live-editing-and-debugging","text":"If you are using webpack together with your React app, you can have a more efficient workflow by taking advantage of webpack's HMR mechanism which enables you to have live editing and debugging directly from Emacs. You can learn more in this Live edit and debug your React apps directly from Emacs(TO BE PORTED TO EMACS) blog post and the webpack Hot Module Replacement documentation(TO BE PORTED TO EMACS) .","title":"Live editing and debugging"},{"location":"tutorials/reactjs-tutorial/#linting","text":"Linters analyze your source code and can warn about potential problems before running your application. The JavaScript language service included with Emacs has syntax error checking support by default, which you can see in action in the Errors List panel ( M-x lsp-treemacs-errors-list ). Try making a small error in your React source code and you'll see a red squiggle and an error in the Errors List panel. Linters can provide more sophisticated analysis, enforcing coding conventions and detecting anti-patterns. A popular JavaScript linter is ESLint . ESLint, when combined with the ESLint Emacs extension , provides a great in-product linting experience. First, install the ESLint command-line tool: npm install -g eslint Then install the ESLint language server by doing M-x lsp-install-server RET eslint RET . Once the ESLint extension is installed, you'll want to create an ESLint configuration file, .eslintrc.js . You can create one using M-x lsp-eslint-create-default-configuration . The command will prompt you to answer a series of questions in a separate window. Accept the defaults, and it will create a .eslintrc.js file in your project root that looks something like this: module . exports = { \"env\" : { \"browser\" : true , \"es2020\" : true }, \"extends\" : [ \"eslint:recommended\" , \"plugin:react/recommended\" ], \"parserOptions\" : { \"ecmaFeatures\" : { \"jsx\" : true }, \"ecmaVersion\" : 11 , \"sourceType\" : \"module\" }, \"plugins\" : [ \"react\" ], \"rules\" : { } }; ESLint will now analyze open files and shows a warning in index.js about 'App' being defined but never used. You can modify the ESLint rules in the .eslintrc.js file. Let's add an error rule for extra semi-colons: \"rules\" : { \"no-extra-semi\" : \"error\" } Now when you mistakenly have multiple semicolons on a line, you'll see an error (red squiggle) in the editor and error entry in the Problems panel.","title":"Linting"},{"location":"tutorials/reactjs-tutorial/#popular-starter-kits","text":"In this tutorial, we used the create-react-app generator to create a simple React application. There are lots of great samples and starter kits available to help build your first React application.","title":"Popular Starter Kits"},{"location":"tutorials/reactjs-tutorial/#typescript-react","text":"If you're curious about TypeScript and React, you can also create a TypeScript version of the create-react-app application. See the details at TypeScript-React-Starter on the TypeScript Quick Start site.","title":"TypeScript React"}]} \ No newline at end of file +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Language Server Protocol Support for Emacs # homepage \u2022 installation \u2022 languages \u2022 settings \u2022 tutorials \u2022 troubleshooting \u2022 screenshots \u2022 FAQ Why? # Community Driven Fully featured - supports all features in Language Server Protocol v3.14. Fast - see performance section . Flexible - choose between full-blown IDE with flashy UI or minimal distraction free. Easy to configure - works out of the box and automatically upgrades if additional packages are present. Overview # Client for Language Server Protocol (v3.14). lsp-mode aims to provide IDE-like experience by providing optional integration with the most popular Emacs packages like company , flycheck and projectile . Non-blocking asynchronous calls Real-time Diagnostics/linting via flycheck (recommended) or flymake when Emacs > 26 (requires flymake>=1.0.5) Code completion - company-capf / completion-at-point (note that company-lsp is no longer supported). Hovers - using lsp-ui Code actions - via lsp-execute-code-action , modeline (recommended) or lsp-ui sideline. Code outline - using builtin imenu or helm-imenu Code navigation - using builtin xref , lsp-treemacs tree views or lsp-ui peek functions. Code lens Symbol highlights Formatting Project errors on modeline Debugger - dap-mode Breadcrumb on headerline Helm integration - helm-lsp Ivy integration - lsp-ivy Consult integration - consult-lsp Treemacs integration - lsp-treemacs Semantic tokens as defined by LSP 3.16 (compatible language servers include recent development builds of clangd and rust-analyzer) which-key integration for better discovery iedit dired ido Presentations/demos # System Crafters channel Emacs IDE Videos skybert 's emacsconf presentation (Java) thatwist 's ScalaUA Conference presentation (Scala) See also # lsp-docker - provide docker image with preconfigured language servers with corresponding emacs configuration. company-box - company frontend with icons. dap-mode - Debugger integration for lsp-mode . eglot - An alternative minimal LSP implementation. which-key - Emacs package that displays available keybindings in popup projectile - Project Interaction Library for Emacs emacs-tree-sitter - Faster, fine-grained code highlighting via tree-sitter . gccemacs - modified Emacs capable of compiling and running Emacs Lisp as native code. Contributions # Contributions are very much welcome! NOTE Documentation for clients is generated from doc comments in the clients themselves (see lsp-doc.el ) and some metadata (see lsp-clients.json ) so please submit corrections accordingly. Support the project # The emacs-lsp organization has more than 20,000 lines of code , to keep all of this working, we need to implement new features and help the community on a lot of issues. You can help us keep going and improving it by supporting the project Members # Here it is a list of the current lsp-mode members and what they are primary working on/responsible for. totbwf F# brotzeit Rust dsyzling Scala kurnevsky Scala | Rust seagle0128 Go | Python MS sebastiansturm lsp-mode core | C++ vibhavp lsp-mode core yyoncho lsp-mode core | Java ericdallo Dart/Flutter | Clojure danielmartin C++ | Swift kiennq completions | pwsh nbfalcon lsp-mode core | iedit psibi Terraform | Nix razzmatazz C# | F#","title":"Overview"},{"location":"#language-server-protocol-support-for-emacs","text":"homepage \u2022 installation \u2022 languages \u2022 settings \u2022 tutorials \u2022 troubleshooting \u2022 screenshots \u2022 FAQ","title":"Language Server Protocol Support for Emacs"},{"location":"#why","text":"Community Driven Fully featured - supports all features in Language Server Protocol v3.14. Fast - see performance section . Flexible - choose between full-blown IDE with flashy UI or minimal distraction free. Easy to configure - works out of the box and automatically upgrades if additional packages are present.","title":"Why?"},{"location":"#overview","text":"Client for Language Server Protocol (v3.14). lsp-mode aims to provide IDE-like experience by providing optional integration with the most popular Emacs packages like company , flycheck and projectile . Non-blocking asynchronous calls Real-time Diagnostics/linting via flycheck (recommended) or flymake when Emacs > 26 (requires flymake>=1.0.5) Code completion - company-capf / completion-at-point (note that company-lsp is no longer supported). Hovers - using lsp-ui Code actions - via lsp-execute-code-action , modeline (recommended) or lsp-ui sideline. Code outline - using builtin imenu or helm-imenu Code navigation - using builtin xref , lsp-treemacs tree views or lsp-ui peek functions. Code lens Symbol highlights Formatting Project errors on modeline Debugger - dap-mode Breadcrumb on headerline Helm integration - helm-lsp Ivy integration - lsp-ivy Consult integration - consult-lsp Treemacs integration - lsp-treemacs Semantic tokens as defined by LSP 3.16 (compatible language servers include recent development builds of clangd and rust-analyzer) which-key integration for better discovery iedit dired ido","title":"Overview"},{"location":"#presentationsdemos","text":"System Crafters channel Emacs IDE Videos skybert 's emacsconf presentation (Java) thatwist 's ScalaUA Conference presentation (Scala)","title":"Presentations/demos"},{"location":"#see-also","text":"lsp-docker - provide docker image with preconfigured language servers with corresponding emacs configuration. company-box - company frontend with icons. dap-mode - Debugger integration for lsp-mode . eglot - An alternative minimal LSP implementation. which-key - Emacs package that displays available keybindings in popup projectile - Project Interaction Library for Emacs emacs-tree-sitter - Faster, fine-grained code highlighting via tree-sitter . gccemacs - modified Emacs capable of compiling and running Emacs Lisp as native code.","title":"See also"},{"location":"#contributions","text":"Contributions are very much welcome! NOTE Documentation for clients is generated from doc comments in the clients themselves (see lsp-doc.el ) and some metadata (see lsp-clients.json ) so please submit corrections accordingly.","title":"Contributions"},{"location":"#support-the-project","text":"The emacs-lsp organization has more than 20,000 lines of code , to keep all of this working, we need to implement new features and help the community on a lot of issues. You can help us keep going and improving it by supporting the project","title":"Support the project"},{"location":"#members","text":"Here it is a list of the current lsp-mode members and what they are primary working on/responsible for. totbwf F# brotzeit Rust dsyzling Scala kurnevsky Scala | Rust seagle0128 Go | Python MS sebastiansturm lsp-mode core | C++ vibhavp lsp-mode core yyoncho lsp-mode core | Java ericdallo Dart/Flutter | Clojure danielmartin C++ | Swift kiennq completions | pwsh nbfalcon lsp-mode core | iedit psibi Terraform | Nix razzmatazz C# | F#","title":"Members"},{"location":"blog/2020/7.0-release/","text":"7.0 Release # I am pleased to announce lsp-mode 7.0! Here are the most important features/news in 7.0 release lsp-mode/the team/the ecosystem # lsp-mode team and the activity in the repo has vastly increased. lsp-mode is no longer one man project but it is a product of Emacs LSP team and emacs community. This has allowed us to implement some very time consuming changes/refactoring(more about them bellow) which an year ago were unthinkable due to the lack manpower. emacs-lsp repo has become a nice place to start contributing to open source or learn elisp and now there are 244 contributors in the main repo. Even more some of the current maintainers had zero elisp knowledge before doing their first lsp-mode contributions. We started moving out some of the server specific packages(e. g. lsp-dart maintained by ericdallo and lsp-metals maintained by kurnevsky , lsp-python-ms by seagle0128 , etc) in order to provide focused support by a an expert in the language at hand. Considering where we were few months ago the level of integrated experience provided by those packages has increased and often it is comparable with backed by paid full time developers editors like VScode . Here it is a gif illustrating that: lsp-dart . LSP in its nature should be language agnostic but in order to be comparable with VScode lsp-mode should support language server extensions as well which is much more work than the work on protocol itself and requires a constant monitoring of the server repo since there is no contract and the server team might change the contract whenever they want. On the bright side lsp-mode has attracted several server side developers or lsp-mode team members(e. g. mpanarin ) has become server side contributors and often we are ahead of changes or we directly address issues in the server when they arise. We are still looking for maintainer(s) for JS/TS suite( typescript-language-server , eslint , angular ) though. Major features # 3.16 spec support # We provided full support for 3.14 features one year after the version has been released. Now, we have support for all major features of 3.16 protocol even before it has been released (except for result streaming which apparently hasn't been implemented by any language server). New website # It is created ericdallo - here it is the website . Check it out and eventually provide feedback. Semantic highlights # This is part of 3.16 spec. It is implemented by sebastiansturm and it can be enabled by setting lsp-enable-semantic-highlighting . We have dropped the Theia protocol support for semantic highlighting since it is not going to make to the official spec. ATM it is supported by Rust Analyzer , Clangd (from master branch) and lua language server. org-mode integration(preview) # org-mode mode is the Emacs flagman and this integration brings up the literate programming to a new level. The integration is pretty raw but usable - you basically can run lsp-mode language intelligence over org-mode source block directly in the org-mode document. We have achieved that by creating virtual buffer abstraction which allows us to fake the server that the client has actually opened the real file. Check gif and the docs . I think that the ability to implement such features is why Emacs is editor in a league of its own . And implementing such features is one of the signs that we are slowly moving from the phase catching up into getting ahead (or maybe I am overly optimistic). Language Server Protocol bindings, upcoming changes # We generated json schema from the protocol and from that schema we generated dash destructoring, getters, setters, validators, constructors, indication for optional/required fields, etc. which allow us to perform compile time validation of the protocol usage. This was huge change because we had to walk through almost all methods and replace explicit access to the elisp data structure with protocol usage. At the same time, emacs-lsp organization has more than 20k lines of code. This was coordinated effort and a lot of individuals contributed to that. The benefits are that we now can switch the underlying data structure from hashmap to plists which will yield better performance and also that the overall quality of the codebase has increased. Example Before: ( defun lsp--position-to-point ( params ) \"Convert Position object in PARAMS to a point.\" ( lsp--line-character-to-point ( gethash \"line\" params ) ( gethash \"character\" params ))) After: ( lsp-defun lsp--position-to-point (( &Position :line :character )) \"Convert `Position' object in PARAMS to a point.\" ( lsp--line-character-to-point line character )) In this example :line and :character are validated as fields of Position structure. Also, we do some handy conversions, if the field is optional it will end up with ? like :foo? . To reduce boiler plate code we convert camelCase to :camel-case when we are destructoring it. Performance optimizations(flycheck, code completion) # We have rewritten the flycheck integration - the new integration provides the same UE as the old one but it is much more effective in reporting the errors to flycheck and lsp checker is much closer to the traditional flycheck checkers which are initiated/controlled from Emacs . Completion integration code is now much simpler/faster thanks to kiennq . What's next # Upcoming breaking changes Dropping Emacs 25 support. This will allow us utilize Emacs multi-threading to improve lsp-mode responsibility Switching from hashtables to plists - once this change goes in users must recompile all lsp-mode extensions. Drop company-lsp support(not ported to use lsp-protocol.el ) Implementing lsp-mode configuration wizard to improve beginners experience - check this issue for more details. The overall goal is let user pick settings for all features that are opinionated (e. g. lsp-ui ) and improve the discoverability of lsp-mode features/extensions/settings. We will try to switch to monthly/weakly release cycles and to different person for writing the announcements. We might eventually encourage melpa-stable usage.","title":"7.0 Release"},{"location":"blog/2020/7.0-release/#70-release","text":"I am pleased to announce lsp-mode 7.0! Here are the most important features/news in 7.0 release","title":"7.0 Release"},{"location":"blog/2020/7.0-release/#lsp-modethe-teamthe-ecosystem","text":"lsp-mode team and the activity in the repo has vastly increased. lsp-mode is no longer one man project but it is a product of Emacs LSP team and emacs community. This has allowed us to implement some very time consuming changes/refactoring(more about them bellow) which an year ago were unthinkable due to the lack manpower. emacs-lsp repo has become a nice place to start contributing to open source or learn elisp and now there are 244 contributors in the main repo. Even more some of the current maintainers had zero elisp knowledge before doing their first lsp-mode contributions. We started moving out some of the server specific packages(e. g. lsp-dart maintained by ericdallo and lsp-metals maintained by kurnevsky , lsp-python-ms by seagle0128 , etc) in order to provide focused support by a an expert in the language at hand. Considering where we were few months ago the level of integrated experience provided by those packages has increased and often it is comparable with backed by paid full time developers editors like VScode . Here it is a gif illustrating that: lsp-dart . LSP in its nature should be language agnostic but in order to be comparable with VScode lsp-mode should support language server extensions as well which is much more work than the work on protocol itself and requires a constant monitoring of the server repo since there is no contract and the server team might change the contract whenever they want. On the bright side lsp-mode has attracted several server side developers or lsp-mode team members(e. g. mpanarin ) has become server side contributors and often we are ahead of changes or we directly address issues in the server when they arise. We are still looking for maintainer(s) for JS/TS suite( typescript-language-server , eslint , angular ) though.","title":"lsp-mode/the team/the ecosystem"},{"location":"blog/2020/7.0-release/#major-features","text":"","title":"Major features"},{"location":"blog/2020/7.0-release/#316-spec-support","text":"We provided full support for 3.14 features one year after the version has been released. Now, we have support for all major features of 3.16 protocol even before it has been released (except for result streaming which apparently hasn't been implemented by any language server).","title":"3.16 spec support"},{"location":"blog/2020/7.0-release/#new-website","text":"It is created ericdallo - here it is the website . Check it out and eventually provide feedback.","title":"New website"},{"location":"blog/2020/7.0-release/#semantic-highlights","text":"This is part of 3.16 spec. It is implemented by sebastiansturm and it can be enabled by setting lsp-enable-semantic-highlighting . We have dropped the Theia protocol support for semantic highlighting since it is not going to make to the official spec. ATM it is supported by Rust Analyzer , Clangd (from master branch) and lua language server.","title":"Semantic highlights"},{"location":"blog/2020/7.0-release/#org-mode-integrationpreview","text":"org-mode mode is the Emacs flagman and this integration brings up the literate programming to a new level. The integration is pretty raw but usable - you basically can run lsp-mode language intelligence over org-mode source block directly in the org-mode document. We have achieved that by creating virtual buffer abstraction which allows us to fake the server that the client has actually opened the real file. Check gif and the docs . I think that the ability to implement such features is why Emacs is editor in a league of its own . And implementing such features is one of the signs that we are slowly moving from the phase catching up into getting ahead (or maybe I am overly optimistic).","title":"org-mode integration(preview)"},{"location":"blog/2020/7.0-release/#language-server-protocol-bindings-upcoming-changes","text":"We generated json schema from the protocol and from that schema we generated dash destructoring, getters, setters, validators, constructors, indication for optional/required fields, etc. which allow us to perform compile time validation of the protocol usage. This was huge change because we had to walk through almost all methods and replace explicit access to the elisp data structure with protocol usage. At the same time, emacs-lsp organization has more than 20k lines of code. This was coordinated effort and a lot of individuals contributed to that. The benefits are that we now can switch the underlying data structure from hashmap to plists which will yield better performance and also that the overall quality of the codebase has increased. Example Before: ( defun lsp--position-to-point ( params ) \"Convert Position object in PARAMS to a point.\" ( lsp--line-character-to-point ( gethash \"line\" params ) ( gethash \"character\" params ))) After: ( lsp-defun lsp--position-to-point (( &Position :line :character )) \"Convert `Position' object in PARAMS to a point.\" ( lsp--line-character-to-point line character )) In this example :line and :character are validated as fields of Position structure. Also, we do some handy conversions, if the field is optional it will end up with ? like :foo? . To reduce boiler plate code we convert camelCase to :camel-case when we are destructoring it.","title":"Language Server Protocol bindings, upcoming changes"},{"location":"blog/2020/7.0-release/#performance-optimizationsflycheck-code-completion","text":"We have rewritten the flycheck integration - the new integration provides the same UE as the old one but it is much more effective in reporting the errors to flycheck and lsp checker is much closer to the traditional flycheck checkers which are initiated/controlled from Emacs . Completion integration code is now much simpler/faster thanks to kiennq .","title":"Performance optimizations(flycheck, code completion)"},{"location":"blog/2020/7.0-release/#whats-next","text":"Upcoming breaking changes Dropping Emacs 25 support. This will allow us utilize Emacs multi-threading to improve lsp-mode responsibility Switching from hashtables to plists - once this change goes in users must recompile all lsp-mode extensions. Drop company-lsp support(not ported to use lsp-protocol.el ) Implementing lsp-mode configuration wizard to improve beginners experience - check this issue for more details. The overall goal is let user pick settings for all features that are opinionated (e. g. lsp-ui ) and improve the discoverability of lsp-mode features/extensions/settings. We will try to switch to monthly/weakly release cycles and to different person for writing the announcements. We might eventually encourage melpa-stable usage.","title":"What's next"},{"location":"manual-language-docs/lsp-gopls/","text":"Go (gopls) # lsp-mode provides Go language support via the gopls language server. See upstream for gopls installation instructions. Configuration # By default, some gopls analyzers are enabled and others are disabled. To override, use: (setq lsp-go-analyses '((shadow . t) (simplifycompositelit . :json-false))) Troubleshooting # Working with nested go.mod files # If you encounter an error like one of these: errors loading workspace: You are working in a nested module. Please open it as a separate workspace folder This file is in %s, which is a nested module in the %s module. gopls currently requires one module per workspace folder. Please open %s as a separate workspace folder Then the problem is most likely because lsp-mode has not started gopls with the correct root directory. By default lsp-mode will pick the root of your whole Git repository (or whatever else Projectile turns up) for all language servers started inside the repo. However, if you have nested go.mod files, you need to have lsp-mode start separate instances of gopls for each nested go.mod , and use the appropriate one for each file. You can make this work by manually invoking M-x lsp-workspace-folders-add and adding each nested go.mod directory as a workspace folder. Then reloading LSP with M-x lsp in an affected file (or restarting Emacs) will cause the file to be re-associated with a gopls process running under the correct project workspace. See #3473 for a bit more discussion of this particular issue.","title":"Go (gopls)"},{"location":"manual-language-docs/lsp-gopls/#go-gopls","text":"lsp-mode provides Go language support via the gopls language server. See upstream for gopls installation instructions.","title":"Go (gopls)"},{"location":"manual-language-docs/lsp-gopls/#configuration","text":"By default, some gopls analyzers are enabled and others are disabled. To override, use: (setq lsp-go-analyses '((shadow . t) (simplifycompositelit . :json-false)))","title":"Configuration"},{"location":"manual-language-docs/lsp-gopls/#troubleshooting","text":"","title":"Troubleshooting"},{"location":"manual-language-docs/lsp-gopls/#working-with-nested-gomod-files","text":"If you encounter an error like one of these: errors loading workspace: You are working in a nested module. Please open it as a separate workspace folder This file is in %s, which is a nested module in the %s module. gopls currently requires one module per workspace folder. Please open %s as a separate workspace folder Then the problem is most likely because lsp-mode has not started gopls with the correct root directory. By default lsp-mode will pick the root of your whole Git repository (or whatever else Projectile turns up) for all language servers started inside the repo. However, if you have nested go.mod files, you need to have lsp-mode start separate instances of gopls for each nested go.mod , and use the appropriate one for each file. You can make this work by manually invoking M-x lsp-workspace-folders-add and adding each nested go.mod directory as a workspace folder. Then reloading LSP with M-x lsp in an affected file (or restarting Emacs) will cause the file to be re-associated with a gopls process running under the correct project workspace. See #3473 for a bit more discussion of this particular issue.","title":"Working with nested go.mod files"},{"location":"manual-language-docs/lsp-json-ls/","text":"Completions # json-ls (vscode-json-language-server) provides completions for well known files and files which manually specify their JSON Schema using the $schema property. In order for json-ls to provide completions, you need to enable snippet support. To do that, make sure you have installed yasnippet and that you have enabled the yasnippet minor mode.","title":"Completions"},{"location":"manual-language-docs/lsp-json-ls/#completions","text":"json-ls (vscode-json-language-server) provides completions for well known files and files which manually specify their JSON Schema using the $schema property. In order for json-ls to provide completions, you need to enable snippet support. To do that, make sure you have installed yasnippet and that you have enabled the yasnippet minor mode.","title":"Completions"},{"location":"manual-language-docs/lsp-latex/","text":"lsp-latex.el: texlab LSP-client # See lsp-latex.el homepage .","title":"lsp-latex.el: texlab LSP-client"},{"location":"manual-language-docs/lsp-latex/#lsp-latexel-texlab-lsp-client","text":"See lsp-latex.el homepage .","title":"lsp-latex.el: texlab LSP-client"},{"location":"manual-language-docs/lsp-org/","text":"Literate programming using LSP and org-mode(alpha) # lsp-mode provides experimental support for running the language servers inside of org-mode source blocks. lsp-mode is achieving this by obtaining the information about the source block from the source block header(language + :tangle ) then translating the point to the LSP positions back and forth so the language server thinks that Emacs has opened the original file. In order that to work the files has to be present on the disk as well because the server expects to find them. Here it is a sample source block: #+BEGIN_SRC python :tangle \"python.py\" print \"Hello!\" #+END_SRC Demo # Commands # lsp-org start lsp-mode in source buffer. Must be executed with cursor being source block. lsp-virtual-buffer-disconnect turn off lsp-mode . What works # lsp-mode core features (finding references, going to definitions, completion, lenses, highlighting, etc) company-mode flycheck lsp-treemacs-symbols lsp-treemacs-errors-list Known limitations # Incremental updates are performed by sending the whole buffer each time(they simulate full updates). Deleting content that spans across the source block and the content of the org document is not handled. Opening and editing the actual file from the disk might cause undefined behaviour because the server expects file to be open only once. What does not work # dap-mode lsp-ui flymake (?) What's next # Finishing the virtual buffers API . lsp-ui support dap-mode support markdown-mode integration","title":"Literate programming using LSP and org-mode(alpha)"},{"location":"manual-language-docs/lsp-org/#literate-programming-using-lsp-and-org-modealpha","text":"lsp-mode provides experimental support for running the language servers inside of org-mode source blocks. lsp-mode is achieving this by obtaining the information about the source block from the source block header(language + :tangle ) then translating the point to the LSP positions back and forth so the language server thinks that Emacs has opened the original file. In order that to work the files has to be present on the disk as well because the server expects to find them. Here it is a sample source block: #+BEGIN_SRC python :tangle \"python.py\" print \"Hello!\" #+END_SRC","title":"Literate programming using LSP and org-mode(alpha)"},{"location":"manual-language-docs/lsp-org/#demo","text":"","title":"Demo"},{"location":"manual-language-docs/lsp-org/#commands","text":"lsp-org start lsp-mode in source buffer. Must be executed with cursor being source block. lsp-virtual-buffer-disconnect turn off lsp-mode .","title":"Commands"},{"location":"manual-language-docs/lsp-org/#what-works","text":"lsp-mode core features (finding references, going to definitions, completion, lenses, highlighting, etc) company-mode flycheck lsp-treemacs-symbols lsp-treemacs-errors-list","title":"What works"},{"location":"manual-language-docs/lsp-org/#known-limitations","text":"Incremental updates are performed by sending the whole buffer each time(they simulate full updates). Deleting content that spans across the source block and the content of the org document is not handled. Opening and editing the actual file from the disk might cause undefined behaviour because the server expects file to be open only once.","title":"Known limitations"},{"location":"manual-language-docs/lsp-org/#what-does-not-work","text":"dap-mode lsp-ui flymake (?)","title":"What does not work"},{"location":"manual-language-docs/lsp-org/#whats-next","text":"Finishing the virtual buffers API . lsp-ui support dap-mode support markdown-mode integration","title":"What's next"},{"location":"manual-language-docs/lsp-rust-analyzer/","text":"Server note # NOTE: If you are using rustic-mode , you have to change rustic-lsp-server instead of lsp-rust-server , since it also supports eglot as a lightweight alternative to lsp-mode. lsp-rust-server Choose LSP server (default is rust-analyzer) lsp-rust-switch-server Switch priorities of lsp servers rust-analyzer # Commands # lsp-rust-analyzer-syntax-tree # Display syntax tree for current buffer lsp-rust-analyzer-status # Display status information for rust-analyzer lsp-rust-analyzer-join-lines # Join selected lines into one, smartly fixing up whitespace and trailing commas before: after: inlay-hints # lsp-inlay-hints-mode enables displaying of inlay hints Additionally, lsp-inlay-hint-enable must be set to t in order for inlay hints to render. NOTE: the inlay hints interact badly with the lsp-ui sideline, because it doesn't seem to consider the overlays in its width calculation, which often leads to lines wrapping around. Macro expansion # lsp-rust-analyzer-expand-macro expand macro call at point recursively Use your own function for displaying macro expansion by customizing lsp-rust-analyzer-macro-expansion-method Formatted and highlighted result with the default function of rustic. auto-import # Get a list of possible auto import candidates with lsp-execute-code-action Snippet insertion/refactor # To support refactorings that require snippet insertion(eg. generating derive clause etc), make sure that you have enabled yasnippet and yas-minor-mode . If you are using use-package , you can do something like this: ( use-package yasnippet :ensure t :hook (( lsp-mode . yas-minor-mode ))) Open Cargo.toml # lsp-rust-analyzer-open-cargo-toml opens the Cargo.toml closest to the current file. Calling it with a universal argument will open the Cargo.toml in another window. Corresponds to the rust-analyzer LSP extension Open external documentation # lsp-rust-analyzer-open-external-docs opens external documentation related to the current position in a browser. Corresponds to the rust-analyzer LSP extension Find and execute tests related to current position # lsp-rust-analyzer-related-tests find all tests related to the current position, asks for user completion and executes the selected test in a compilation buffer. Corresponds to the rust-analyzer LSP extension In the example below, first you see that: + On the left, the function check_infer is defined, on the right another file is opened with many test functions, some of which call check_infer . With the cursor on check_infer , call lsp-rust-analyzer-related-tests and select infer_pattern_match_slice with fuzzy matching. The test is executed on the right with compilation major mode Move the cursor to fn ellipsize and attempt to find related tests to no avail. Confirm that the function is indeed untested by using swiper and finding one place in the file, where the function is called Caveats # Rust Analyzer does not support disabling snippets - https://github.com/rust-analyzer/rust-analyzer/issues/2518 extract signature # This unmerged PR contains an example method that allows modifying the signature that is displayed by eldoc. TRAMP Example # The following is an example configuration for using lsp-mode with a remote rust-analyzer server: (with-eval-after-load \"lsp-rust\" (lsp-register-client (make-lsp-client :new-connection (lsp-tramp-connection \"rust-analyzer\") :remote? t :major-modes '(rust-mode rustic-mode) :initialization-options 'lsp-rust-analyzer--make-init-options :notification-handlers (ht<-alist lsp-rust-notification-handlers) :action-handlers (ht (\"rust-analyzer.runSingle\" #'lsp-rust--analyzer-run-single)) :library-folders-fn (lambda (_workspace) lsp-rust-analyzer-library-directories) :ignore-messages nil :server-id 'rust-analyzer-remote)))","title":"Lsp rust analyzer"},{"location":"manual-language-docs/lsp-rust-analyzer/#server-note","text":"NOTE: If you are using rustic-mode , you have to change rustic-lsp-server instead of lsp-rust-server , since it also supports eglot as a lightweight alternative to lsp-mode. lsp-rust-server Choose LSP server (default is rust-analyzer) lsp-rust-switch-server Switch priorities of lsp servers","title":"Server note"},{"location":"manual-language-docs/lsp-rust-analyzer/#rust-analyzer","text":"","title":"rust-analyzer"},{"location":"manual-language-docs/lsp-rust-analyzer/#commands","text":"","title":"Commands"},{"location":"manual-language-docs/lsp-rust-analyzer/#lsp-rust-analyzer-syntax-tree","text":"Display syntax tree for current buffer","title":"lsp-rust-analyzer-syntax-tree"},{"location":"manual-language-docs/lsp-rust-analyzer/#lsp-rust-analyzer-status","text":"Display status information for rust-analyzer","title":"lsp-rust-analyzer-status"},{"location":"manual-language-docs/lsp-rust-analyzer/#lsp-rust-analyzer-join-lines","text":"Join selected lines into one, smartly fixing up whitespace and trailing commas before: after:","title":"lsp-rust-analyzer-join-lines"},{"location":"manual-language-docs/lsp-rust-analyzer/#inlay-hints","text":"lsp-inlay-hints-mode enables displaying of inlay hints Additionally, lsp-inlay-hint-enable must be set to t in order for inlay hints to render. NOTE: the inlay hints interact badly with the lsp-ui sideline, because it doesn't seem to consider the overlays in its width calculation, which often leads to lines wrapping around.","title":"inlay-hints"},{"location":"manual-language-docs/lsp-rust-analyzer/#macro-expansion","text":"lsp-rust-analyzer-expand-macro expand macro call at point recursively Use your own function for displaying macro expansion by customizing lsp-rust-analyzer-macro-expansion-method Formatted and highlighted result with the default function of rustic.","title":"Macro expansion"},{"location":"manual-language-docs/lsp-rust-analyzer/#auto-import","text":"Get a list of possible auto import candidates with lsp-execute-code-action","title":"auto-import"},{"location":"manual-language-docs/lsp-rust-analyzer/#snippet-insertionrefactor","text":"To support refactorings that require snippet insertion(eg. generating derive clause etc), make sure that you have enabled yasnippet and yas-minor-mode . If you are using use-package , you can do something like this: ( use-package yasnippet :ensure t :hook (( lsp-mode . yas-minor-mode )))","title":"Snippet insertion/refactor"},{"location":"manual-language-docs/lsp-rust-analyzer/#open-cargotoml","text":"lsp-rust-analyzer-open-cargo-toml opens the Cargo.toml closest to the current file. Calling it with a universal argument will open the Cargo.toml in another window. Corresponds to the rust-analyzer LSP extension","title":"Open Cargo.toml"},{"location":"manual-language-docs/lsp-rust-analyzer/#open-external-documentation","text":"lsp-rust-analyzer-open-external-docs opens external documentation related to the current position in a browser. Corresponds to the rust-analyzer LSP extension","title":"Open external documentation"},{"location":"manual-language-docs/lsp-rust-analyzer/#find-and-execute-tests-related-to-current-position","text":"lsp-rust-analyzer-related-tests find all tests related to the current position, asks for user completion and executes the selected test in a compilation buffer. Corresponds to the rust-analyzer LSP extension In the example below, first you see that: + On the left, the function check_infer is defined, on the right another file is opened with many test functions, some of which call check_infer . With the cursor on check_infer , call lsp-rust-analyzer-related-tests and select infer_pattern_match_slice with fuzzy matching. The test is executed on the right with compilation major mode Move the cursor to fn ellipsize and attempt to find related tests to no avail. Confirm that the function is indeed untested by using swiper and finding one place in the file, where the function is called","title":"Find and execute tests related to current position"},{"location":"manual-language-docs/lsp-rust-analyzer/#caveats","text":"Rust Analyzer does not support disabling snippets - https://github.com/rust-analyzer/rust-analyzer/issues/2518","title":"Caveats"},{"location":"manual-language-docs/lsp-rust-analyzer/#extract-signature","text":"This unmerged PR contains an example method that allows modifying the signature that is displayed by eldoc.","title":"extract signature"},{"location":"manual-language-docs/lsp-rust-analyzer/#tramp-example","text":"The following is an example configuration for using lsp-mode with a remote rust-analyzer server: (with-eval-after-load \"lsp-rust\" (lsp-register-client (make-lsp-client :new-connection (lsp-tramp-connection \"rust-analyzer\") :remote? t :major-modes '(rust-mode rustic-mode) :initialization-options 'lsp-rust-analyzer--make-init-options :notification-handlers (ht<-alist lsp-rust-notification-handlers) :action-handlers (ht (\"rust-analyzer.runSingle\" #'lsp-rust--analyzer-run-single)) :library-folders-fn (lambda (_workspace) lsp-rust-analyzer-library-directories) :ignore-messages nil :server-id 'rust-analyzer-remote)))","title":"TRAMP Example"},{"location":"manual-language-docs/lsp-rust-rls/","text":"RLS # Customization # This is an incomplete list of the available options lsp-rust-rls-server-command change command to start RLS lsp-rust-show-hover-context turn off hover tooltips rustfmt # Code formatting with rustfmt can be configured with: lsp-rust-rustfmt-path change default path for rustfmt executable To enable automatic code format on save, add this to your init.el ( rust-mode is assumed to be installed): (add-hook 'before-save-hook (lambda () (when (eq 'rust-mode major-mode) (lsp-format-buffer))))","title":"Lsp rust rls"},{"location":"manual-language-docs/lsp-rust-rls/#rls","text":"","title":"RLS"},{"location":"manual-language-docs/lsp-rust-rls/#customization","text":"This is an incomplete list of the available options lsp-rust-rls-server-command change command to start RLS lsp-rust-show-hover-context turn off hover tooltips","title":"Customization"},{"location":"manual-language-docs/lsp-rust-rls/#rustfmt","text":"Code formatting with rustfmt can be configured with: lsp-rust-rustfmt-path change default path for rustfmt executable To enable automatic code format on save, add this to your init.el ( rust-mode is assumed to be installed): (add-hook 'before-save-hook (lambda () (when (eq 'rust-mode major-mode) (lsp-format-buffer))))","title":"rustfmt"},{"location":"manual-language-docs/lsp-sqls/","text":"Sample configuration: # ( add-hook 'sql-mode-hook 'lsp ) ( setq lsp-sqls-workspace-config-path nil ) ( setq lsp-sqls-connections ' ((( driver . \"mysql\" ) ( dataSourceName . \"yyoncho:local@tcp(localhost:3306)/foo\" )) (( driver . \"mssql\" ) ( dataSourceName . \"Server=localhost;Database=sammy;User Id=yyoncho;Password=hunter2;\" )) (( driver . \"postgresql\" ) ( dataSourceName . \"host=127.0.0.1 port=5432 user=yyoncho password=local dbname=sammy sslmode=disable\" )))) Alternatively, you can leave lsp-sqls-workspace-config-path to the default \"workspace\" value, and put a json file in /.sqls/config.json containing { \"sqls\": { \"connections\": [ { \"driver\": \"mysql\", \"dataSourceName\": \"yyoncho:local@tcp(localhost:3306)/foo\" }, \u2026etc\u2026 ] } } Now lsp should start in sql-mode buffers, and you can pick a server connection with M-x lsp-execute-code-action and \"Switch Connections\" (or directly with M-x lsp-sql-switch-connection ). You can change database with M-x lsp-execute-code-action and \"Switch Database\" (or M-x lsp-sql-switch-database ).","title":"Sample configuration:"},{"location":"manual-language-docs/lsp-sqls/#sample-configuration","text":"( add-hook 'sql-mode-hook 'lsp ) ( setq lsp-sqls-workspace-config-path nil ) ( setq lsp-sqls-connections ' ((( driver . \"mysql\" ) ( dataSourceName . \"yyoncho:local@tcp(localhost:3306)/foo\" )) (( driver . \"mssql\" ) ( dataSourceName . \"Server=localhost;Database=sammy;User Id=yyoncho;Password=hunter2;\" )) (( driver . \"postgresql\" ) ( dataSourceName . \"host=127.0.0.1 port=5432 user=yyoncho password=local dbname=sammy sslmode=disable\" )))) Alternatively, you can leave lsp-sqls-workspace-config-path to the default \"workspace\" value, and put a json file in /.sqls/config.json containing { \"sqls\": { \"connections\": [ { \"driver\": \"mysql\", \"dataSourceName\": \"yyoncho:local@tcp(localhost:3306)/foo\" }, \u2026etc\u2026 ] } } Now lsp should start in sql-mode buffers, and you can pick a server connection with M-x lsp-execute-code-action and \"Switch Connections\" (or directly with M-x lsp-sql-switch-connection ). You can change database with M-x lsp-execute-code-action and \"Switch Database\" (or M-x lsp-sql-switch-database ).","title":"Sample configuration:"},{"location":"manual-language-docs/lsp-terraform-ls/","text":"Server note # This page documents the official language server for Terraform by Hashicorp. Note that currently lsp-mode supports two terraform language servers. This FAQ entry shows how to choose a specific one. If you would want to go with the official Hashicorp's language server, set this: ( setq lsp-disabled-clients ' ( tfls )) terraform-ls # Commands # lsp-terraform-ls-validate # Runs terraform validate on project root. All the violations are published back in the buffer. lsp-terraform-ls-init # Runs terraform init using terraform available from $PATH . You have to make sure that that proper credentials are there. Note that this is a synchronous action and will timeout after a certain amount of time. lsp-terraform-ls-version # This feature is only available on terraform-ls version >= 0.29.0. Provides information about the terraform binary version for the current workspace. This is how it will look like in the minibuffer: Required: 1.1.9, Current: 1.0.5 Note that if you have changed the version in your $PATH meanwhile, you would have to restart the lsp session using lsp-workspace-restart for it to pick up the newer version. Code Lens # This is an experimental feature which can be enabled via the option lsp-terraform-ls-enable-show-reference : ( setq lsp-terraform-ls-enable-show-reference t ) This gif demonstrates how this feature is used: Semantic token support # Make sure to enable these two variables to ensure that you have semantic token support for terraform mode: ( setq lsp-semantic-tokens-enable t ) ( setq lsp-semantic-tokens-honor-refresh-requests t ) This is how the code looks without semantic tokens support: And with semantic token support you get more contextual information via different faces: Link to Documentation # Link to documentation from module sources for registry modules is available. Make sure you have this enabled: ( setq lsp-enable-links t ) Note that the default value of lsp-enable-links is t . So enabling it isn't strictly required, but you would require this feature for it to properly work. This gif demonstrates on how to use it: There are two ways to open the link: Key binding: Alt + Enter Clicking the middle button of your mouse Prefill required fields # This is an experimental feature which can be enabled via the option lsp-terraform-ls-prefill-required-fields : ( setq lsp-terraform-ls-prefill-required-fields t ) This gif demonstrates how this feature is used: Treeview controls # For this feature to work, make sure that you have lsp-treemacs installed. Providers widget # This widget can be invoked by lsp-terraform-ls-providers . Module calls widget # This widget can be invoked by lsp-terraform-ls-module-calls . If the modules data is empty, you might need to do terraform init for the project. The widget has a minor mode named lsp-terraform-modules-mode . Following keybinding are available within the mode: g : Refresh modules view","title":"Lsp terraform ls"},{"location":"manual-language-docs/lsp-terraform-ls/#server-note","text":"This page documents the official language server for Terraform by Hashicorp. Note that currently lsp-mode supports two terraform language servers. This FAQ entry shows how to choose a specific one. If you would want to go with the official Hashicorp's language server, set this: ( setq lsp-disabled-clients ' ( tfls ))","title":"Server note"},{"location":"manual-language-docs/lsp-terraform-ls/#terraform-ls","text":"","title":"terraform-ls"},{"location":"manual-language-docs/lsp-terraform-ls/#commands","text":"","title":"Commands"},{"location":"manual-language-docs/lsp-terraform-ls/#lsp-terraform-ls-validate","text":"Runs terraform validate on project root. All the violations are published back in the buffer.","title":"lsp-terraform-ls-validate"},{"location":"manual-language-docs/lsp-terraform-ls/#lsp-terraform-ls-init","text":"Runs terraform init using terraform available from $PATH . You have to make sure that that proper credentials are there. Note that this is a synchronous action and will timeout after a certain amount of time.","title":"lsp-terraform-ls-init"},{"location":"manual-language-docs/lsp-terraform-ls/#lsp-terraform-ls-version","text":"This feature is only available on terraform-ls version >= 0.29.0. Provides information about the terraform binary version for the current workspace. This is how it will look like in the minibuffer: Required: 1.1.9, Current: 1.0.5 Note that if you have changed the version in your $PATH meanwhile, you would have to restart the lsp session using lsp-workspace-restart for it to pick up the newer version.","title":"lsp-terraform-ls-version"},{"location":"manual-language-docs/lsp-terraform-ls/#code-lens","text":"This is an experimental feature which can be enabled via the option lsp-terraform-ls-enable-show-reference : ( setq lsp-terraform-ls-enable-show-reference t ) This gif demonstrates how this feature is used:","title":"Code Lens"},{"location":"manual-language-docs/lsp-terraform-ls/#semantic-token-support","text":"Make sure to enable these two variables to ensure that you have semantic token support for terraform mode: ( setq lsp-semantic-tokens-enable t ) ( setq lsp-semantic-tokens-honor-refresh-requests t ) This is how the code looks without semantic tokens support: And with semantic token support you get more contextual information via different faces:","title":"Semantic token support"},{"location":"manual-language-docs/lsp-terraform-ls/#link-to-documentation","text":"Link to documentation from module sources for registry modules is available. Make sure you have this enabled: ( setq lsp-enable-links t ) Note that the default value of lsp-enable-links is t . So enabling it isn't strictly required, but you would require this feature for it to properly work. This gif demonstrates on how to use it: There are two ways to open the link: Key binding: Alt + Enter Clicking the middle button of your mouse","title":"Link to Documentation"},{"location":"manual-language-docs/lsp-terraform-ls/#prefill-required-fields","text":"This is an experimental feature which can be enabled via the option lsp-terraform-ls-prefill-required-fields : ( setq lsp-terraform-ls-prefill-required-fields t ) This gif demonstrates how this feature is used:","title":"Prefill required fields"},{"location":"manual-language-docs/lsp-terraform-ls/#treeview-controls","text":"For this feature to work, make sure that you have lsp-treemacs installed.","title":"Treeview controls"},{"location":"manual-language-docs/lsp-terraform-ls/#providers-widget","text":"This widget can be invoked by lsp-terraform-ls-providers .","title":"Providers widget"},{"location":"manual-language-docs/lsp-terraform-ls/#module-calls-widget","text":"This widget can be invoked by lsp-terraform-ls-module-calls . If the modules data is empty, you might need to do terraform init for the project. The widget has a minor mode named lsp-terraform-modules-mode . Following keybinding are available within the mode: g : Refresh modules view","title":"Module calls widget"},{"location":"page/CHANGELOG/","text":"Changelog # Unreleased 8.0.1 # Add architecture triples for erlang-language-platform file downloads, to support macos on ARM and X86. Add semantic token support for erlang-language-platform in lsp-erlang client. Update erlang-language-platform download file names to match new upstream names. Add erlang-language-platform support in lsp-erlang client. Add credo-language-server Add support for clojure-ts-mode in clojure-lsp client terraform-ls now supports prefill required fields and the ability to validate on save. Ignore .terraform and .terragrunt-cache directories lsp-bash now supports bash-ts-mode lsp-ruby-syntax-tree , lsp-solargraph , lsp-sorbet , lsp-steep , and lsp-typeprof now support ruby-ts-mode Drop support for emacs 26.1 and 26.2 Added support for textDocument/linkedEditingRange via lsp-iedit-linked-ranges and lsp-evil-multiedit-ranges (see #3166 ) Add GraphQL Language Server for autocomplete graphql query Added lsp-auto-touch-files . When it is non-nil it will auto-create the file on the disk before sending textDocument/didOpen . Add lsp-log-io-allowlist-methods for debugging purposes. Enable `lsp-lens-enable` by default. Add TOML support. Add Nginx support. Disable noisy features from lsp-ui : lsp-ui-sideline-show-code-actions and lsp-ui-doc-show-with-cursor . Fix org mode support. #3258 Add remark-language-server Deprecate unified-languge-server in favor of remark-language-server Made it possible to disable lsp-response-timeout entirely. Fix csharp-ls startup on emacs@master (and emacs@emacs-28 on macOS) due to a switch posix spawn and not setting proper sigmask on child processes. Fix incorrect lsp-fsharp defcustom types. Add lsp-fsharp-generate-binlog . Update installation mechanism for fsautocomplete (lsp-fsharp) to use dotnet tool install -g . Fix fsautocomplete (lsp-fsharp) startup on emacs@master (and emacs@emacs-28 on macOS) due to a switch posix_spawn and not setting proper sigmask on child processes. Add TypeProf support. Add Ansible support. Disable lsp-steep-use-bundler by default. Add idris2-lsp Add emmet-ls Support all initializationOptions in typescript-language-server Update rust-analyzer's inlay hint protocol support. Add support for \\~typescript-language-server\\~\u2019s inlay hints. Add support for workspace/willRenameFiles and workspace/didRenameFiles . Improve project root import to read specific keys instead of any events. Support labelDetails of LSP Specification 3.17 Add Gleam support Drop deprecated rust-analyzer variable lsp-rust-analyzer-import-merge-behaviour Added run and debug code lenses to lsp-kotlin Add setting UPDATE EXPECT =1 when running `expect!` tests lsp-rust Add lsp-use-workspace-root-for-server-default-directory . Add marksman support. lsp-find-references to include declaration by default (configurable with lsp-references-exclude-definition ) Add syntax tree support for Ruby code. lsp-organize-imports no longer prompts for an action, even if lsp-auto-execute-action is nil. Add mint-lang support. Add lsp-sorbet-as-add-on variable to allow running the Sorbet server as an add-on alongside Solargraph or others Add dot-language-server ( a.k.a. Graphviz) support. Add PLS support (additional sever for Perl). Fix lsp-avy-lens when avy-style is 'de-bruijn or 'words #3554 Fix lsp-avy-lens when lsp-lens-place-position position is end-of-line Add lsp-clojure-trace-enable variable. Add some support for rust-analyzer semantic token modifiers. Highlights mutable and reference variables. Update version for lsp-xml to 0.21.0, adding custom variables for new formatting options. Changes variable lsp-xml-validation-schema to be an alist rather than a boolean. Adds lsp-xml-preferences-quote-style as a replacement for obsolete lsp-xml-format-quotes . Add nil support (additional server for Nix) Add Volar 1.0 support, refactor vue-language-server initializationOptions , and remove multi server that is no longer needed. Ensure that incomplete completions only trigger when retriggering from the same completion session #3028 lsp-kotlin now supports kotlin-ts-mode lsp-elixir now supports elixir-ts-mode and heex-ts-mode Update Magik Add lsp-clients-typescript-prefer-use-project-ts-server custom variable to try to use the project's tsserver.js instead of the one installed by lsp-mode. Add ruff-lsp support (additional server for Python). Update documentation of Vue3 install server Add GLSL support. Move inlay hint support in core from lsp-rust and lsp-javascript . Use lsp-inlay-hint-enable instead of lsp-rust-analyzer-server-display-inlay-hints and lsp-javascript-server-display-inlay-hints Add ShaderLab support. Remove custom variable lsp-inlay-hint-enum-format since LSP Specification 3.17 only has type and parameter hint kinds. Add Semgrep support Add AWK language server support. Add support for scala-ts-mode . Drop support for emacs 26.3 Add [ https://github.com/rubocop/rubocop ][RuboCop built-in language server]] for linting and formatting Ruby code. Add Move language server support. Add mdx support using mdx-language-server Release 8.0.0 # Add lsp-clients-angular-node-get-prefix-command to get the Angular server from another location which is still has /lib/node_modules in it. Set lsp-clients-angular-language-server-command after the first connection to speed up subsequent connections. Add lsp-sql-execute-paragraph to execute the current paragraph (like sql-send-paragraph ). Breaking change: bindings for commands under s (like lsp-workspace-shutdown ) were moved under w for better compatibility with Spacemacs removed lsp-print-performance Add support for insert/replace when performing completion. When using company pressing C-u RET will perform the alternative action (the default is replace, but can be changed). Add lsp-after-apply-edits-hook that run after every workspace edit is applied. Safe renamed lsp-diagnose to lsp-doctor . Add lsp-modeline-code-actions-segments for a better customization. Add Lua Language Server , Lua-LSP and improve EmmyLua. Add configuration settings for elixir-ls. Add Nix support. Add Racket support. Provided automatic installers for `lsp-clojure` (`clojure-lsp`). Provided automatic installers for clangd. Added lsp-modeline-workspace-status-mode and option to disable it via lsp-modeline-workspace-status-enable . Automatically download XML language server Lemminx Add Vala support. Add Sorbet Language Server for typechecking Ruby code. Add Elixir test lenses support. Enable headerline breadcrumb by default Add Steep Language Server for typechecking Ruby code. Rename semantic highlighting -> semantic tokens. Add Phpactor Language server Add lsp-headerline-breadcrumb-icons-enable to disable breadcrumb icons. Add ActionScript support. Add iedit integration ( documentHighlights ) Add an interactive lsp-clangd-find-other-file method that uses the clangd extension to return the corresponding header/cpp file from cpp/header file respectively. Add support for Deno language server . Add lsp-dired-mode - integration between dired and lsp-mode Add Grammarly support. Add D support. Add Zig support. Add an interactive lsp-rust-analyzer-reload-workspace function that reloads the Rust-Analyzer workspace from Cargo.toml Rename lsp-rust-analyzer-cargo-load-out-dirs-from-check to lsp-rust-analyzer-cargo-run-build-scripts to align with upstream. Allow customization of lsp-file-watch-ignored-directories and lsp-file-watch-ignored-files at the root of an lsp workspace. Add client for markdown language server (called unified-language-server ) Add client for SystemVerilog language server (called https://github.com/imc-trading/svlangserver ) Add client for python-lsp-server, pylsp ( https://github.com/python-lsp/python-lsp-server ) Deprecate the Palantir Python language server, pyls. Add 2 rust-analyzer LSP extension function lsp-rust-analyzer-related-tests and lsp-rust-analyzer-open-cargo-toml Work around bug in NPM versions 7.0.0 through 7.4.1 that prevented lsp-install-server from working for NPM-based language servers. Add lsp-lens-place-position with option to place code lens at end of line as default. Add LanguageTool support. Add Beancount support. Add Nix language server support. Update the ESLint server to 2.1.23 Add lsp-eslint-warn-on-ignored-files and lsp-eslint-rules-customizations options to the ESLint client Change interface for configuring ESLint code actions - see documentation of lsp-eslint-code-action-disable-rule-comment and lsp-eslint-code-action-show-documentation for details Add interactive lsp-rust-analyzer-move-item-up and lsp-rust-analyzer-move-item-down functions to move Rust items / statements Fix memory leak when handling server response. #3062 Improve support for SemanticTokens adding support for delta and range semantic tokens. Allow override specific semantic tokens faces per client. Mention new lsp-mode integration package consult-lsp . Reorganized lsp-mode code moving features and clients to separated files. #2067 Add support for signatureHelp using posframe . #1999 Add iedit integration. #2478 Release 7.0.1 # Introduced lsp-diagnostics-mode . Safe renamed lsp-flycheck-default-level -> lsp-diagnostics-flycheck-default-level Safe renamed lsp-diagnostic-package -> lsp-diagnostics-provider Dropped support for company-lsp , the suggested provider is company-capf . Moved completion features to lsp-completion.el Safe renamed lsp-prefer-capf -> lsp-completion-provider Safe renamed lsp-enable-completion-at-point -> lsp-completion-enable Release 7.0 # Support for new language server - Shttps://github.com/lighttiger2505/sqls (thanks to @v2okimochi) Provided automatic installers for elp/css/bash/purescript(thanks to @kiennq) Configurable Rust Analyzer inlay face via lsp-rust-analyzer-inlay-face . Add lsp-headerline-breadcrumb-mode which shows a breadcrumb with the document symbols on headerline when enabled. Add lsp-modeline-code-actions-mode which shows code actions on modeline when enabled. Support for Theia-based semantic highlighting has been removed in favor of the semanticTokens protocol specified by LSP 3.16. To enable it, set lsp-enable-semantic-highlighting to t . lsp-metals moved into a separate repo https://github.com/emacs-lsp/lsp-metals Breaking change: use alist instead of hast-tables for lsp-gopls-env and lsp-yaml-schemas . Add lsp-gopls-codelens defcustom to configure codelenses used for golang. Added lsp-diagnose to help users verify their performance related settings Created new website https://emacs-lsp.github.io/lsp-mode/ (thanks to @ericdallo) Implemented special handling of Clangd echo area. Added setting to disable additional text edits ( lsp-completion-enable-additional-text-edit ). Added setting to disable text detail ( lsplsp-completion-show-detail ). Add serenata language server support (thanks to @Sasanidas) Various capf improments - better handling of partial results, support for try-completions, improved responsibility, optimized filtering/sorting, etc. Remove Elixir JakeBecker support (no longer supported) Support semantic tokens protocol (thanks to @sebastiansturm) Improved flycheck integration for better performance. Implemented client side bindings for the protocol. Fixup Ignore timeouts from willSaveWaitUntil Implemented org-mode support (see https://github.com/emacs-lsp/lsp-mode/blob/master/docs/page/lsp-org.md ) Removed support for Theia semantic highlighting protocol Performed several fixes to make sure lsp-mode is working fine with Emacs 28 native compilation. Add modeline code actions support (thanks to @ericdallo). Enabled by default, use lsp-modeline-code-actions-enable to disable it. Migrated to github actions from travis. Add breadcrumb on headerline (thanks to @ericdallo). Disabled by default, can be enabled via lsp-headerline-breadcrumb-enable Migrated lsp-mode to use plists(thanks to @yyoncho, @kiennq and @ericdallo). lsp-diagnostics-modeline: perf improvement (thanks to @kiennq) Release 6.3 # Implemented company-capf integration. company-lsp is no longer supported. Dropped support for dart language server in favour of dart SDK(breaking) Added verilog support for LSP using hdl-checker Implemented call hierarchy support (available in lsp-treemacs ) Implemented support for ESLint language server. ocmalmerlin-lsp moved to ocaml-lsp-server(breaking) Added New VHDL language server https://github.com/kraigher/rust_hdl#configuration Add Nim language server integration Implement automatic downloading facilities and implemented auto-download for typescript-language-server , javascript-typescript-stdio and json-language-server . Implement metals decoration protocol Send metals/didFocusTextDocument notification on buffer change Add default keybindings and which-key integration Add support for Dhall language server Implemented debug adapter protocol support for metals Add CMake language server integration Add rust-analyzer runnables support Implemented rust-analyzer inlay hints Support pyenv for pyls Add clang-tidy specific Flycheck error explainer for the lsp checker Improve lsp-mode completion performance by suppressing non completion related features when completion is active. lsp-json: Enable formatter provider Accommodate the new :end-column and :end-column from flycheck Implement status bar for diagnostics lsp-diagnostics-modeline-mode Auto install of the html-language-server Flycheck support for diagnostic tags (3.15 spec). Adding support for GDScript language server used view mode for metals doctor buffer add texlab as tex LSP server Started new set of integration tests without using ecukes Support \"only\" param when requesting code actions Add Perl-LanguageServer support add support robot-framework language server. Implement deferred semantic highlighting Change default transport for erlang ls to stdio dart language server moved into separate repo https://github.com/emacs-lsp/lsp-dart Activate flow language server if there is flow tag in file or .flowconfig in project Add purescript-language-server (#1596) Process the $/progress messages from LSP 3.15 Display the first line of MarkupContent in eldoc (#1607) Perform willSaveWaitUntil synchronously and with shorter timeout Display images when rendering markdown(useful for latex language servers). Increase lsp-idle-delay to 0.5 Support bash language server glob pattern option (#1594) Use pagebreaks for lsp-describe-thing-at-point lsp-mode: Eliminate quadratic-time index-building for imenu. (#1616) Release 6.2 # Support dynamic rename registration Add basic support for style semantic highlighting Added Haxe language server integration Add C#-support via Roslyn. Add emmy lua support Enable plugins in typescript language server. 1079 Provide support for Ada Language server Implement right click support in lsp-mode buffers. Added built-in support for Rust Analyzer . Added support for HDL Checker server to lsp-vhdl Added support for Terraform language server. Added support for R language server (#1182) Added support for passing environment variables to language servers (#1184) Speedup lsp-mode's JSONRPC processing (\\~2 times) Add cancel-token to lsp-request-async Implement unified way to handle recurring lsp features Added support for powershell language server. Implemented inlay hints for Rust Analyzer (thanks to brotzeit ). Implemented automatic installation for C# language server. Reimplemented textDocument/signatureHelp - now the signature is displayed in lv buffer. Cancel sync requests when presssing C-g during the request. Use c-basic-offset when in cc-mode . Add support for Crystal via scry (#1218). Implement textDocument/documentColor support. Release 6.1 # Support for new languages/language servers: # Kotlin Language Server (Thanks to Jon Carr) gopls Language Server for Go XML Language Server (lsp4xml) Hack (using HHVM ) Intelephense for PHP clojure-lsp for Clojure/ClojureScipt (Thanks to Dario Benedek Fazekas) elmLS for Elm (Thanks to Daniel-V) FsAutoComplete for F# (Thanks to Reed Mullanix) Added Erlang support via erlang ls Added Dockerfile support via dockerfile-language-server-nodejs New logging options # lsp-mode now logs to buffer *lsp-log* , instead of *Messages* . This can be controlled with the variable lsp-log-max (Thanks to Thomas Fini Hansen). If lsp-print-performance is non-nil, lsp-mode will log a corresponding performance trace to *lsp-log* for every message to and from the server. The variable lsp-print-io , when non-nil will cause lsp-mode to log all messages to and from the server to a unique *lsp-io* buffer for every project root. These logs can be saved to a file and viewed using the LSP Inspector . LSP Methods # Add support for textDocument/prepareRename . If supported by the language server, all renaming operations will be tested for validity. Add support for file watches . Add support for CodeAction literals . Add API level support for folding ranges . Folding support for origami.el support is implemented by package lsp-origami . Support document links . This can be controlled using the variable lsp-enable-links . Support resource operations (edits sent from the language server can now create/modify/remove files and directories). Add support for workspace/configuration . Add new function lsp-disconnect . Added lsp-find-definition-mouse and bound to C- Added lsp-extend-selection as a frontend of new LSP method textDocument/extendSelection Other changes # Add project logo (thanks to Jon Carr). Created an integration test suite for lsp-mode (See directory features ). If available, using the native JSON API introduced in Emacs 27.1. Tramp implementation now uses TRAMP process instead of TCP sockets (Thanks to Karsten Patzwaldt). LSP autoconfiguration adds company-lsp to the list of company backends instead of overriding it. Add lsp-mode-map . Add menu bar entries for lsp-mode . Perform before save operations ( textDocument/willSaveWaitUntil ) asynchronously. imenu support is now handled asynchronously (Thanks to Dario Gjorgjevski). Added option :none for lsp-prefer-flymake , which disabled both Flymake and Flycheck support. Changed flymake to report the errors immediately after they arrive instead of waiting flymake to call lsp-mode . Add debounce when server does not support incremental updates. Add hook lsp-after-uninitialized-hook , which stores the list of functions called after a language server has been uninitialized. Add variable lsp-symbol-highlighting-skip-current , which lets the user skip the current symbol when a given symbol is being highlighted. Add variable lsp-enabled-clients , which lets users set which defined clients are allowed to be used. Support multiple signatures while displaying eldoc text. Add variable lsp-signature-render-all , which when non-nil forces lsp-mode to only show the current active signature. Expose configuration settings for various language servers. Language servers can now be disabled with the variable lsp-disabled-clients . Improved applying changes speed. Fixed xref support for emacs 27+ Implemented automatic installation for F# language server. Added Emacs 26.x to CI Fixed handling of stderr when running over TRAMP . Implemented support for running the language server in Docker container over local files. Release 6.0 # lsp-mode now have single entry point lsp for all language and based on the major mode starts the corresponding language servers. Added flymake integration. lsp automatically enables and configures company-lsp , lsp-ui , yasnippet , or flymake if they are present so no additional configuration is needed except installing the packages. That behavior could be disabled by setting lsp-auto-configure to nil . lsp-mode ships with several predefined servers located in lsp-clients.el which does not require additional package. For the more complex Language Servers like Eclipse JDT , ccls , cquery and haskell we still require separate package due to relatively high code base. lsp-mode handles automatically server failures by asking the user whether he/she wants to restart the server. introduced new command lsp-describe-session which replaces the existing one lsp-capabilities . The command lists the folders that are part of the workspace and the servers that are associated with the corresponding folder. lsp-mode displays information about the running server and it's status in the modeline. lsp-define-stdio-client and lsp-define-tcp-client are replaced with lsp-register-client lsp rely on projectile or project.el now only for suggesting project root. Once you open new file in a project and start lsp it will provide several options(import project, blacklist project, select other directory root). Once you select a root it will be persisted and used for the next sessions. support for multiple language servers per single file and workspace. changed lsp-mode settings to more sensible defaults. Removed all synchronous calls from the server startup. Improved multi-folder support. added backends for: Bash, C++, CSS, Dart, Elixir, Fortran, Go, Groovy, HTML, Javascript/Typescript, Javascript/Typescript, Ocaml, PHP, Python, Ruby, Rust, Vue, Flow","title":"Changelog"},{"location":"page/CHANGELOG/#changelog","text":"","title":"Changelog"},{"location":"page/CHANGELOG/#unreleased-801","text":"Add architecture triples for erlang-language-platform file downloads, to support macos on ARM and X86. Add semantic token support for erlang-language-platform in lsp-erlang client. Update erlang-language-platform download file names to match new upstream names. Add erlang-language-platform support in lsp-erlang client. Add credo-language-server Add support for clojure-ts-mode in clojure-lsp client terraform-ls now supports prefill required fields and the ability to validate on save. Ignore .terraform and .terragrunt-cache directories lsp-bash now supports bash-ts-mode lsp-ruby-syntax-tree , lsp-solargraph , lsp-sorbet , lsp-steep , and lsp-typeprof now support ruby-ts-mode Drop support for emacs 26.1 and 26.2 Added support for textDocument/linkedEditingRange via lsp-iedit-linked-ranges and lsp-evil-multiedit-ranges (see #3166 ) Add GraphQL Language Server for autocomplete graphql query Added lsp-auto-touch-files . When it is non-nil it will auto-create the file on the disk before sending textDocument/didOpen . Add lsp-log-io-allowlist-methods for debugging purposes. Enable `lsp-lens-enable` by default. Add TOML support. Add Nginx support. Disable noisy features from lsp-ui : lsp-ui-sideline-show-code-actions and lsp-ui-doc-show-with-cursor . Fix org mode support. #3258 Add remark-language-server Deprecate unified-languge-server in favor of remark-language-server Made it possible to disable lsp-response-timeout entirely. Fix csharp-ls startup on emacs@master (and emacs@emacs-28 on macOS) due to a switch posix spawn and not setting proper sigmask on child processes. Fix incorrect lsp-fsharp defcustom types. Add lsp-fsharp-generate-binlog . Update installation mechanism for fsautocomplete (lsp-fsharp) to use dotnet tool install -g . Fix fsautocomplete (lsp-fsharp) startup on emacs@master (and emacs@emacs-28 on macOS) due to a switch posix_spawn and not setting proper sigmask on child processes. Add TypeProf support. Add Ansible support. Disable lsp-steep-use-bundler by default. Add idris2-lsp Add emmet-ls Support all initializationOptions in typescript-language-server Update rust-analyzer's inlay hint protocol support. Add support for \\~typescript-language-server\\~\u2019s inlay hints. Add support for workspace/willRenameFiles and workspace/didRenameFiles . Improve project root import to read specific keys instead of any events. Support labelDetails of LSP Specification 3.17 Add Gleam support Drop deprecated rust-analyzer variable lsp-rust-analyzer-import-merge-behaviour Added run and debug code lenses to lsp-kotlin Add setting UPDATE EXPECT =1 when running `expect!` tests lsp-rust Add lsp-use-workspace-root-for-server-default-directory . Add marksman support. lsp-find-references to include declaration by default (configurable with lsp-references-exclude-definition ) Add syntax tree support for Ruby code. lsp-organize-imports no longer prompts for an action, even if lsp-auto-execute-action is nil. Add mint-lang support. Add lsp-sorbet-as-add-on variable to allow running the Sorbet server as an add-on alongside Solargraph or others Add dot-language-server ( a.k.a. Graphviz) support. Add PLS support (additional sever for Perl). Fix lsp-avy-lens when avy-style is 'de-bruijn or 'words #3554 Fix lsp-avy-lens when lsp-lens-place-position position is end-of-line Add lsp-clojure-trace-enable variable. Add some support for rust-analyzer semantic token modifiers. Highlights mutable and reference variables. Update version for lsp-xml to 0.21.0, adding custom variables for new formatting options. Changes variable lsp-xml-validation-schema to be an alist rather than a boolean. Adds lsp-xml-preferences-quote-style as a replacement for obsolete lsp-xml-format-quotes . Add nil support (additional server for Nix) Add Volar 1.0 support, refactor vue-language-server initializationOptions , and remove multi server that is no longer needed. Ensure that incomplete completions only trigger when retriggering from the same completion session #3028 lsp-kotlin now supports kotlin-ts-mode lsp-elixir now supports elixir-ts-mode and heex-ts-mode Update Magik Add lsp-clients-typescript-prefer-use-project-ts-server custom variable to try to use the project's tsserver.js instead of the one installed by lsp-mode. Add ruff-lsp support (additional server for Python). Update documentation of Vue3 install server Add GLSL support. Move inlay hint support in core from lsp-rust and lsp-javascript . Use lsp-inlay-hint-enable instead of lsp-rust-analyzer-server-display-inlay-hints and lsp-javascript-server-display-inlay-hints Add ShaderLab support. Remove custom variable lsp-inlay-hint-enum-format since LSP Specification 3.17 only has type and parameter hint kinds. Add Semgrep support Add AWK language server support. Add support for scala-ts-mode . Drop support for emacs 26.3 Add [ https://github.com/rubocop/rubocop ][RuboCop built-in language server]] for linting and formatting Ruby code. Add Move language server support. Add mdx support using mdx-language-server","title":"Unreleased 8.0.1"},{"location":"page/CHANGELOG/#release-800","text":"Add lsp-clients-angular-node-get-prefix-command to get the Angular server from another location which is still has /lib/node_modules in it. Set lsp-clients-angular-language-server-command after the first connection to speed up subsequent connections. Add lsp-sql-execute-paragraph to execute the current paragraph (like sql-send-paragraph ). Breaking change: bindings for commands under s (like lsp-workspace-shutdown ) were moved under w for better compatibility with Spacemacs removed lsp-print-performance Add support for insert/replace when performing completion. When using company pressing C-u RET will perform the alternative action (the default is replace, but can be changed). Add lsp-after-apply-edits-hook that run after every workspace edit is applied. Safe renamed lsp-diagnose to lsp-doctor . Add lsp-modeline-code-actions-segments for a better customization. Add Lua Language Server , Lua-LSP and improve EmmyLua. Add configuration settings for elixir-ls. Add Nix support. Add Racket support. Provided automatic installers for `lsp-clojure` (`clojure-lsp`). Provided automatic installers for clangd. Added lsp-modeline-workspace-status-mode and option to disable it via lsp-modeline-workspace-status-enable . Automatically download XML language server Lemminx Add Vala support. Add Sorbet Language Server for typechecking Ruby code. Add Elixir test lenses support. Enable headerline breadcrumb by default Add Steep Language Server for typechecking Ruby code. Rename semantic highlighting -> semantic tokens. Add Phpactor Language server Add lsp-headerline-breadcrumb-icons-enable to disable breadcrumb icons. Add ActionScript support. Add iedit integration ( documentHighlights ) Add an interactive lsp-clangd-find-other-file method that uses the clangd extension to return the corresponding header/cpp file from cpp/header file respectively. Add support for Deno language server . Add lsp-dired-mode - integration between dired and lsp-mode Add Grammarly support. Add D support. Add Zig support. Add an interactive lsp-rust-analyzer-reload-workspace function that reloads the Rust-Analyzer workspace from Cargo.toml Rename lsp-rust-analyzer-cargo-load-out-dirs-from-check to lsp-rust-analyzer-cargo-run-build-scripts to align with upstream. Allow customization of lsp-file-watch-ignored-directories and lsp-file-watch-ignored-files at the root of an lsp workspace. Add client for markdown language server (called unified-language-server ) Add client for SystemVerilog language server (called https://github.com/imc-trading/svlangserver ) Add client for python-lsp-server, pylsp ( https://github.com/python-lsp/python-lsp-server ) Deprecate the Palantir Python language server, pyls. Add 2 rust-analyzer LSP extension function lsp-rust-analyzer-related-tests and lsp-rust-analyzer-open-cargo-toml Work around bug in NPM versions 7.0.0 through 7.4.1 that prevented lsp-install-server from working for NPM-based language servers. Add lsp-lens-place-position with option to place code lens at end of line as default. Add LanguageTool support. Add Beancount support. Add Nix language server support. Update the ESLint server to 2.1.23 Add lsp-eslint-warn-on-ignored-files and lsp-eslint-rules-customizations options to the ESLint client Change interface for configuring ESLint code actions - see documentation of lsp-eslint-code-action-disable-rule-comment and lsp-eslint-code-action-show-documentation for details Add interactive lsp-rust-analyzer-move-item-up and lsp-rust-analyzer-move-item-down functions to move Rust items / statements Fix memory leak when handling server response. #3062 Improve support for SemanticTokens adding support for delta and range semantic tokens. Allow override specific semantic tokens faces per client. Mention new lsp-mode integration package consult-lsp . Reorganized lsp-mode code moving features and clients to separated files. #2067 Add support for signatureHelp using posframe . #1999 Add iedit integration. #2478","title":"Release 8.0.0"},{"location":"page/CHANGELOG/#release-701","text":"Introduced lsp-diagnostics-mode . Safe renamed lsp-flycheck-default-level -> lsp-diagnostics-flycheck-default-level Safe renamed lsp-diagnostic-package -> lsp-diagnostics-provider Dropped support for company-lsp , the suggested provider is company-capf . Moved completion features to lsp-completion.el Safe renamed lsp-prefer-capf -> lsp-completion-provider Safe renamed lsp-enable-completion-at-point -> lsp-completion-enable","title":"Release 7.0.1"},{"location":"page/CHANGELOG/#release-70","text":"Support for new language server - Shttps://github.com/lighttiger2505/sqls (thanks to @v2okimochi) Provided automatic installers for elp/css/bash/purescript(thanks to @kiennq) Configurable Rust Analyzer inlay face via lsp-rust-analyzer-inlay-face . Add lsp-headerline-breadcrumb-mode which shows a breadcrumb with the document symbols on headerline when enabled. Add lsp-modeline-code-actions-mode which shows code actions on modeline when enabled. Support for Theia-based semantic highlighting has been removed in favor of the semanticTokens protocol specified by LSP 3.16. To enable it, set lsp-enable-semantic-highlighting to t . lsp-metals moved into a separate repo https://github.com/emacs-lsp/lsp-metals Breaking change: use alist instead of hast-tables for lsp-gopls-env and lsp-yaml-schemas . Add lsp-gopls-codelens defcustom to configure codelenses used for golang. Added lsp-diagnose to help users verify their performance related settings Created new website https://emacs-lsp.github.io/lsp-mode/ (thanks to @ericdallo) Implemented special handling of Clangd echo area. Added setting to disable additional text edits ( lsp-completion-enable-additional-text-edit ). Added setting to disable text detail ( lsplsp-completion-show-detail ). Add serenata language server support (thanks to @Sasanidas) Various capf improments - better handling of partial results, support for try-completions, improved responsibility, optimized filtering/sorting, etc. Remove Elixir JakeBecker support (no longer supported) Support semantic tokens protocol (thanks to @sebastiansturm) Improved flycheck integration for better performance. Implemented client side bindings for the protocol. Fixup Ignore timeouts from willSaveWaitUntil Implemented org-mode support (see https://github.com/emacs-lsp/lsp-mode/blob/master/docs/page/lsp-org.md ) Removed support for Theia semantic highlighting protocol Performed several fixes to make sure lsp-mode is working fine with Emacs 28 native compilation. Add modeline code actions support (thanks to @ericdallo). Enabled by default, use lsp-modeline-code-actions-enable to disable it. Migrated to github actions from travis. Add breadcrumb on headerline (thanks to @ericdallo). Disabled by default, can be enabled via lsp-headerline-breadcrumb-enable Migrated lsp-mode to use plists(thanks to @yyoncho, @kiennq and @ericdallo). lsp-diagnostics-modeline: perf improvement (thanks to @kiennq)","title":"Release 7.0"},{"location":"page/CHANGELOG/#release-63","text":"Implemented company-capf integration. company-lsp is no longer supported. Dropped support for dart language server in favour of dart SDK(breaking) Added verilog support for LSP using hdl-checker Implemented call hierarchy support (available in lsp-treemacs ) Implemented support for ESLint language server. ocmalmerlin-lsp moved to ocaml-lsp-server(breaking) Added New VHDL language server https://github.com/kraigher/rust_hdl#configuration Add Nim language server integration Implement automatic downloading facilities and implemented auto-download for typescript-language-server , javascript-typescript-stdio and json-language-server . Implement metals decoration protocol Send metals/didFocusTextDocument notification on buffer change Add default keybindings and which-key integration Add support for Dhall language server Implemented debug adapter protocol support for metals Add CMake language server integration Add rust-analyzer runnables support Implemented rust-analyzer inlay hints Support pyenv for pyls Add clang-tidy specific Flycheck error explainer for the lsp checker Improve lsp-mode completion performance by suppressing non completion related features when completion is active. lsp-json: Enable formatter provider Accommodate the new :end-column and :end-column from flycheck Implement status bar for diagnostics lsp-diagnostics-modeline-mode Auto install of the html-language-server Flycheck support for diagnostic tags (3.15 spec). Adding support for GDScript language server used view mode for metals doctor buffer add texlab as tex LSP server Started new set of integration tests without using ecukes Support \"only\" param when requesting code actions Add Perl-LanguageServer support add support robot-framework language server. Implement deferred semantic highlighting Change default transport for erlang ls to stdio dart language server moved into separate repo https://github.com/emacs-lsp/lsp-dart Activate flow language server if there is flow tag in file or .flowconfig in project Add purescript-language-server (#1596) Process the $/progress messages from LSP 3.15 Display the first line of MarkupContent in eldoc (#1607) Perform willSaveWaitUntil synchronously and with shorter timeout Display images when rendering markdown(useful for latex language servers). Increase lsp-idle-delay to 0.5 Support bash language server glob pattern option (#1594) Use pagebreaks for lsp-describe-thing-at-point lsp-mode: Eliminate quadratic-time index-building for imenu. (#1616)","title":"Release 6.3"},{"location":"page/CHANGELOG/#release-62","text":"Support dynamic rename registration Add basic support for style semantic highlighting Added Haxe language server integration Add C#-support via Roslyn. Add emmy lua support Enable plugins in typescript language server. 1079 Provide support for Ada Language server Implement right click support in lsp-mode buffers. Added built-in support for Rust Analyzer . Added support for HDL Checker server to lsp-vhdl Added support for Terraform language server. Added support for R language server (#1182) Added support for passing environment variables to language servers (#1184) Speedup lsp-mode's JSONRPC processing (\\~2 times) Add cancel-token to lsp-request-async Implement unified way to handle recurring lsp features Added support for powershell language server. Implemented inlay hints for Rust Analyzer (thanks to brotzeit ). Implemented automatic installation for C# language server. Reimplemented textDocument/signatureHelp - now the signature is displayed in lv buffer. Cancel sync requests when presssing C-g during the request. Use c-basic-offset when in cc-mode . Add support for Crystal via scry (#1218). Implement textDocument/documentColor support.","title":"Release 6.2"},{"location":"page/CHANGELOG/#release-61","text":"","title":"Release 6.1"},{"location":"page/CHANGELOG/#support-for-new-languageslanguage-servers","text":"Kotlin Language Server (Thanks to Jon Carr) gopls Language Server for Go XML Language Server (lsp4xml) Hack (using HHVM ) Intelephense for PHP clojure-lsp for Clojure/ClojureScipt (Thanks to Dario Benedek Fazekas) elmLS for Elm (Thanks to Daniel-V) FsAutoComplete for F# (Thanks to Reed Mullanix) Added Erlang support via erlang ls Added Dockerfile support via dockerfile-language-server-nodejs","title":"Support for new languages/language servers:"},{"location":"page/CHANGELOG/#new-logging-options","text":"lsp-mode now logs to buffer *lsp-log* , instead of *Messages* . This can be controlled with the variable lsp-log-max (Thanks to Thomas Fini Hansen). If lsp-print-performance is non-nil, lsp-mode will log a corresponding performance trace to *lsp-log* for every message to and from the server. The variable lsp-print-io , when non-nil will cause lsp-mode to log all messages to and from the server to a unique *lsp-io* buffer for every project root. These logs can be saved to a file and viewed using the LSP Inspector .","title":"New logging options"},{"location":"page/CHANGELOG/#lsp-methods","text":"Add support for textDocument/prepareRename . If supported by the language server, all renaming operations will be tested for validity. Add support for file watches . Add support for CodeAction literals . Add API level support for folding ranges . Folding support for origami.el support is implemented by package lsp-origami . Support document links . This can be controlled using the variable lsp-enable-links . Support resource operations (edits sent from the language server can now create/modify/remove files and directories). Add support for workspace/configuration . Add new function lsp-disconnect . Added lsp-find-definition-mouse and bound to C- Added lsp-extend-selection as a frontend of new LSP method textDocument/extendSelection","title":"LSP Methods"},{"location":"page/CHANGELOG/#other-changes","text":"Add project logo (thanks to Jon Carr). Created an integration test suite for lsp-mode (See directory features ). If available, using the native JSON API introduced in Emacs 27.1. Tramp implementation now uses TRAMP process instead of TCP sockets (Thanks to Karsten Patzwaldt). LSP autoconfiguration adds company-lsp to the list of company backends instead of overriding it. Add lsp-mode-map . Add menu bar entries for lsp-mode . Perform before save operations ( textDocument/willSaveWaitUntil ) asynchronously. imenu support is now handled asynchronously (Thanks to Dario Gjorgjevski). Added option :none for lsp-prefer-flymake , which disabled both Flymake and Flycheck support. Changed flymake to report the errors immediately after they arrive instead of waiting flymake to call lsp-mode . Add debounce when server does not support incremental updates. Add hook lsp-after-uninitialized-hook , which stores the list of functions called after a language server has been uninitialized. Add variable lsp-symbol-highlighting-skip-current , which lets the user skip the current symbol when a given symbol is being highlighted. Add variable lsp-enabled-clients , which lets users set which defined clients are allowed to be used. Support multiple signatures while displaying eldoc text. Add variable lsp-signature-render-all , which when non-nil forces lsp-mode to only show the current active signature. Expose configuration settings for various language servers. Language servers can now be disabled with the variable lsp-disabled-clients . Improved applying changes speed. Fixed xref support for emacs 27+ Implemented automatic installation for F# language server. Added Emacs 26.x to CI Fixed handling of stderr when running over TRAMP . Implemented support for running the language server in Docker container over local files.","title":"Other changes"},{"location":"page/CHANGELOG/#release-60","text":"lsp-mode now have single entry point lsp for all language and based on the major mode starts the corresponding language servers. Added flymake integration. lsp automatically enables and configures company-lsp , lsp-ui , yasnippet , or flymake if they are present so no additional configuration is needed except installing the packages. That behavior could be disabled by setting lsp-auto-configure to nil . lsp-mode ships with several predefined servers located in lsp-clients.el which does not require additional package. For the more complex Language Servers like Eclipse JDT , ccls , cquery and haskell we still require separate package due to relatively high code base. lsp-mode handles automatically server failures by asking the user whether he/she wants to restart the server. introduced new command lsp-describe-session which replaces the existing one lsp-capabilities . The command lists the folders that are part of the workspace and the servers that are associated with the corresponding folder. lsp-mode displays information about the running server and it's status in the modeline. lsp-define-stdio-client and lsp-define-tcp-client are replaced with lsp-register-client lsp rely on projectile or project.el now only for suggesting project root. Once you open new file in a project and start lsp it will provide several options(import project, blacklist project, select other directory root). Once you select a root it will be persisted and used for the next sessions. support for multiple language servers per single file and workspace. changed lsp-mode settings to more sensible defaults. Removed all synchronous calls from the server startup. Improved multi-folder support. added backends for: Bash, C++, CSS, Dart, Elixir, Fortran, Go, Groovy, HTML, Javascript/Typescript, Javascript/Typescript, Ocaml, PHP, Python, Ruby, Rust, Vue, Flow","title":"Release 6.0"},{"location":"page/adding-new-language/","text":"Adding support for languages # Registering server # Here it is the minimal configuration that is needed for new language server registration. Refer to the documentation of lsp-mode.el for the additional settings supported on registration time. lsp-language-id-configuration must be updated to contain the corresponding mode -> language id - in this case (python-mode . \"python\") ( defvar lsp-language-id-configuration ' ( ... ( python-mode . \"python\" ) ... )) ;; if you are adding the support for your language server in separate repo use ;; (add-to-list 'lsp-language-id-configuration '(python-mode . \"python\")) ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection \"pyls\" ) :activation-fn ( lsp-activate-on \"python\" ) :server-id 'pyls )) lsp-mode is using lsp-language-id-configuration to determine what is the buffer language. When the major-mode is not sufficient to determine the language (e.g. web-mode is used for javascript , html , and css ) you can put regex. Note: In the above example, when a new client is created using make-lsp-client , a new connection to the language server is created using lsp-stdio-connection . Please carefully check its documentation, as the function checks for various things (e.g. testing for the executable in PATH) and handles respective errors. Often while adding a server, the LSP client author might do these checks themselves, but without handling the errors correctly. This leads to features like lsp-install-server breaking for other users; e.g. see this issue . This is a common mistake that keeps reoccurring. Here's an example of how to set up a custom language server in your init.el file: ;; Use shopify-cli / theme-check-language-server for Shopify's liquid syntax ( with-eval-after-load 'lsp-mode ( add-to-list 'lsp-language-id-configuration ' ( shopify-mode . \"shopify\" )) ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection \"theme-check-language-server\" ) :activation-fn ( lsp-activate-on \"shopify\" ) :server-id 'theme-check ))) Note: This example assumes that you've already set up a major mode of your own either by deriving it from web-mode or perhaps by writing it yourself. If the language server supports environment variables to control additional behavior, you can register that by using the :environment-fn function, like the Bash language client does: ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection ' ( \"bash-language-server\" \"start\" )) :activation-fn ( lsp-activate-on \"shellscript\" ) :priority -1 :environment-fn ( lambda () ' (( \"EXPLAINSHELL_ENDPOINT\" . lsp-bash-explainshell-endpoint ) ( \"HIGHLIGHT_PARSING_ERRORS\" . lsp-bash-highlight-parsing-errors ))) :server-id 'bash-ls )) lsp-bash-explainshell-endpoint and lsp-bash-highlight-parsing-errors are language client defcustom that expose supported server environment settings in a type-safe way. If you change any of those variables, restart the language server with lsp-restart-workspace for the changes to be applied. Also, if new client support customizing language server path. It's recommended to make a wrapper function so the user can customize the value even after the client has been loaded. ( defcustom lsp-tex-executable \"digestif\" \"Command to start the Digestif language server.\" :group 'lsp-tex :risky t :type 'file ) ( lsp-register-client ( make-lsp-client ;; instead of `:new-connection (lsp-stdio-connection lsp-text-executable)` use :new-connection ( lsp-stdio-connection ( lambda () lsp-text-executable )) :activation-fn ( lsp-activate-on \"plaintex\" \"latex\" ) :priority -1 :server-id 'digestif )) Sections # lsp-mode provides tools to bridge emacs defcustom as a language configuration sections properties(see specification workspace/configuration ). In addition you may use lsp-generate-settings from Generate Settings script to generate lsp-defcustom from package.json VScode plugin manifest. Example: ( lsp-defcustom lsp-foo-language-server-property \"bar\" \"Demo property.\" :group 'foo-ls :lsp-path \"foo.section.property\" ) ( lsp-configuration-section \"foo\" ) ;; => ((\"foo\" (\"settings\" (\"property\" . \"bar\")))) Documentation # Add the new language server to the lsp-clients.json file sorted by the full-name key alphabetically. Create a new navigation entry in mkdocs.yml file.","title":"Adding new language"},{"location":"page/adding-new-language/#adding-support-for-languages","text":"","title":"Adding support for languages"},{"location":"page/adding-new-language/#registering-server","text":"Here it is the minimal configuration that is needed for new language server registration. Refer to the documentation of lsp-mode.el for the additional settings supported on registration time. lsp-language-id-configuration must be updated to contain the corresponding mode -> language id - in this case (python-mode . \"python\") ( defvar lsp-language-id-configuration ' ( ... ( python-mode . \"python\" ) ... )) ;; if you are adding the support for your language server in separate repo use ;; (add-to-list 'lsp-language-id-configuration '(python-mode . \"python\")) ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection \"pyls\" ) :activation-fn ( lsp-activate-on \"python\" ) :server-id 'pyls )) lsp-mode is using lsp-language-id-configuration to determine what is the buffer language. When the major-mode is not sufficient to determine the language (e.g. web-mode is used for javascript , html , and css ) you can put regex. Note: In the above example, when a new client is created using make-lsp-client , a new connection to the language server is created using lsp-stdio-connection . Please carefully check its documentation, as the function checks for various things (e.g. testing for the executable in PATH) and handles respective errors. Often while adding a server, the LSP client author might do these checks themselves, but without handling the errors correctly. This leads to features like lsp-install-server breaking for other users; e.g. see this issue . This is a common mistake that keeps reoccurring. Here's an example of how to set up a custom language server in your init.el file: ;; Use shopify-cli / theme-check-language-server for Shopify's liquid syntax ( with-eval-after-load 'lsp-mode ( add-to-list 'lsp-language-id-configuration ' ( shopify-mode . \"shopify\" )) ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection \"theme-check-language-server\" ) :activation-fn ( lsp-activate-on \"shopify\" ) :server-id 'theme-check ))) Note: This example assumes that you've already set up a major mode of your own either by deriving it from web-mode or perhaps by writing it yourself. If the language server supports environment variables to control additional behavior, you can register that by using the :environment-fn function, like the Bash language client does: ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection ' ( \"bash-language-server\" \"start\" )) :activation-fn ( lsp-activate-on \"shellscript\" ) :priority -1 :environment-fn ( lambda () ' (( \"EXPLAINSHELL_ENDPOINT\" . lsp-bash-explainshell-endpoint ) ( \"HIGHLIGHT_PARSING_ERRORS\" . lsp-bash-highlight-parsing-errors ))) :server-id 'bash-ls )) lsp-bash-explainshell-endpoint and lsp-bash-highlight-parsing-errors are language client defcustom that expose supported server environment settings in a type-safe way. If you change any of those variables, restart the language server with lsp-restart-workspace for the changes to be applied. Also, if new client support customizing language server path. It's recommended to make a wrapper function so the user can customize the value even after the client has been loaded. ( defcustom lsp-tex-executable \"digestif\" \"Command to start the Digestif language server.\" :group 'lsp-tex :risky t :type 'file ) ( lsp-register-client ( make-lsp-client ;; instead of `:new-connection (lsp-stdio-connection lsp-text-executable)` use :new-connection ( lsp-stdio-connection ( lambda () lsp-text-executable )) :activation-fn ( lsp-activate-on \"plaintex\" \"latex\" ) :priority -1 :server-id 'digestif ))","title":"Registering server"},{"location":"page/adding-new-language/#sections","text":"lsp-mode provides tools to bridge emacs defcustom as a language configuration sections properties(see specification workspace/configuration ). In addition you may use lsp-generate-settings from Generate Settings script to generate lsp-defcustom from package.json VScode plugin manifest. Example: ( lsp-defcustom lsp-foo-language-server-property \"bar\" \"Demo property.\" :group 'foo-ls :lsp-path \"foo.section.property\" ) ( lsp-configuration-section \"foo\" ) ;; => ((\"foo\" (\"settings\" (\"property\" . \"bar\"))))","title":"Sections"},{"location":"page/adding-new-language/#documentation","text":"Add the new language server to the lsp-clients.json file sorted by the full-name key alphabetically. Create a new navigation entry in mkdocs.yml file.","title":"Documentation"},{"location":"page/faq/","text":"FAQ # How do I troubleshoot \"Server FOO-LS:pid exited with status signal. Do you want to restart it? (y or n)\" ? # This message indicates that the language server has crashed for some reason. You may check the server stderr which is *FOO-LS::stderr* . If you get this try to run the exact command that lsp-mode is running in the terminal. You may find it in *lsp-log* buffer. How to configure a server with local variables? # Add lsp server call to hack-local-variables-hook which runs right after the local variables are loaded. ( add-hook 'hack-local-variables-hook ( lambda () ( when ( derived-mode-p 'XXX-mode ) ( lsp )))) I have multiple language servers registered for language FOO. Which one will be used when opening a project? # The one with highest priority wins. Servers defined in lsp-mode tend to have lower priority than the external packages (priority 0 if unspecified). If a server is registered with :add-on? flag set to t it will be started in parallel to the other servers that are registered for the current mode. If the server that you want to use is not with the highest priority you may use lsp-disabled-clients to disable the server with higher priority or use lsp-enabled-clients to enable only the servers you want to use. In order to find the server ids you may check *lsp-log* buffer. I have multiple language servers for language FOO and I want to select the server per project, what can I do? # You may create dir-local for each of the projects and specify list of lsp-enabled-clients . This will narrow the list of the clients that are going to be tested for the project. The completion does not work fine and inserts arguments and placeholders, what I am doing wrong? # make sure you have installed yasnippet and you have yasnippet minor mode enabled. I am getting \"Package \u2018spinner-1.7.3\u2019 is unavailable\" when trying to install lsp-mode . # This is caused by GPG keys used by the ELPA package manager not being up to date. You may fix by installing: gnu-elpa-keyring-update The flycheck does not work in typescript , html and javascript blocks in vue-mode . How to fix that? # This is caused by the fact that vue-mode uses multiple major modes in single file and the lsp-ui checker may not associated with the major mode at point. You could fix that by adding the following lines to your config. ( with-eval-after-load 'lsp-mode ( mapc #' lsp-flycheck-add-mode ' ( typescript-mode js-mode css-mode vue-html-mode ))) I have disabled snippets and Rust Analyzer server inserts redundant $0 when performing completion? # Rust Analyzer does not support disabling snippets - see https://github.com/rust-analyzer/rust-analyzer/issues/2518 How do I force lsp-mode to forget the workspace folders for multi root servers so the workspace folders are added on demand? # Use the following snippet: ( advice-add 'lsp :before ( lambda ( &rest _args ) ( eval ' ( setf ( lsp-session-server-id->folders ( lsp-session )) ( ht ))))) When using clojure with clojure-lsp lsp-mode is interfering with typing (e. g. deleting whitespace while typing), how to fix that? # The issue is caused by clojure-lsp server being more aggressive with formatting(deleting whitespaces) and aggressive-indent-mode being on and calling it while typing. The solution is either to disable aggressive-indent-mode or to disable lsp-mode formatting via lsp-enable-indentation . How do I disable automatic installation? # ``` elisp ( setq lsp - enable - suggest - server - download nil ) ```","title":"FAQ"},{"location":"page/faq/#faq","text":"","title":"FAQ"},{"location":"page/faq/#how-do-i-troubleshoot-server-foo-lspid-exited-with-status-signal-do-you-want-to-restart-it-y-or-n","text":"This message indicates that the language server has crashed for some reason. You may check the server stderr which is *FOO-LS::stderr* . If you get this try to run the exact command that lsp-mode is running in the terminal. You may find it in *lsp-log* buffer.","title":"How do I troubleshoot \"Server FOO-LS:pid exited with status signal. Do you want to restart it? (y or n)\"?"},{"location":"page/faq/#how-to-configure-a-server-with-local-variables","text":"Add lsp server call to hack-local-variables-hook which runs right after the local variables are loaded. ( add-hook 'hack-local-variables-hook ( lambda () ( when ( derived-mode-p 'XXX-mode ) ( lsp ))))","title":"How to configure a server with local variables?"},{"location":"page/faq/#i-have-multiple-language-servers-registered-for-language-foo-which-one-will-be-used-when-opening-a-project","text":"The one with highest priority wins. Servers defined in lsp-mode tend to have lower priority than the external packages (priority 0 if unspecified). If a server is registered with :add-on? flag set to t it will be started in parallel to the other servers that are registered for the current mode. If the server that you want to use is not with the highest priority you may use lsp-disabled-clients to disable the server with higher priority or use lsp-enabled-clients to enable only the servers you want to use. In order to find the server ids you may check *lsp-log* buffer.","title":"I have multiple language servers registered for language FOO. Which one will be used when opening a project?"},{"location":"page/faq/#i-have-multiple-language-servers-for-language-foo-and-i-want-to-select-the-server-per-project-what-can-i-do","text":"You may create dir-local for each of the projects and specify list of lsp-enabled-clients . This will narrow the list of the clients that are going to be tested for the project.","title":"I have multiple language servers for language FOO and I want to select the server per project, what can I do?"},{"location":"page/faq/#the-completion-does-not-work-fine-and-inserts-arguments-and-placeholders-what-i-am-doing-wrong","text":"make sure you have installed yasnippet and you have yasnippet minor mode enabled.","title":"The completion does not work fine and inserts arguments and placeholders, what I am doing wrong?"},{"location":"page/faq/#i-am-getting-package-spinner-173-is-unavailable-when-trying-to-install-lsp-mode","text":"This is caused by GPG keys used by the ELPA package manager not being up to date. You may fix by installing: gnu-elpa-keyring-update","title":"I am getting \"Package \u2018spinner-1.7.3\u2019 is unavailable\" when trying to install lsp-mode."},{"location":"page/faq/#the-flycheck-does-not-work-in-typescript-html-and-javascript-blocks-in-vue-mode-how-to-fix-that","text":"This is caused by the fact that vue-mode uses multiple major modes in single file and the lsp-ui checker may not associated with the major mode at point. You could fix that by adding the following lines to your config. ( with-eval-after-load 'lsp-mode ( mapc #' lsp-flycheck-add-mode ' ( typescript-mode js-mode css-mode vue-html-mode )))","title":"The flycheck does not work in typescript, html and javascript blocks in vue-mode. How to fix that?"},{"location":"page/faq/#i-have-disabled-snippets-and-rust-analyzer-server-inserts-redundant-0-when-performing-completion","text":"Rust Analyzer does not support disabling snippets - see https://github.com/rust-analyzer/rust-analyzer/issues/2518","title":"I have disabled snippets and Rust Analyzer server inserts redundant $0 when performing completion?"},{"location":"page/faq/#how-do-i-force-lsp-mode-to-forget-the-workspace-folders-for-multi-root-servers-so-the-workspace-folders-are-added-on-demand","text":"Use the following snippet: ( advice-add 'lsp :before ( lambda ( &rest _args ) ( eval ' ( setf ( lsp-session-server-id->folders ( lsp-session )) ( ht )))))","title":"How do I force lsp-mode to forget the workspace folders for multi root servers so the workspace folders are added on demand?"},{"location":"page/faq/#when-using-clojure-with-clojure-lsp-lsp-mode-is-interfering-with-typing-e-g-deleting-whitespace-while-typing-how-to-fix-that","text":"The issue is caused by clojure-lsp server being more aggressive with formatting(deleting whitespaces) and aggressive-indent-mode being on and calling it while typing. The solution is either to disable aggressive-indent-mode or to disable lsp-mode formatting via lsp-enable-indentation .","title":"When using clojure with clojure-lsp lsp-mode is interfering with typing (e. g. deleting whitespace while typing), how to fix that?"},{"location":"page/faq/#how-do-i-disable-automatic-installation","text":"``` elisp ( setq lsp - enable - suggest - server - download nil ) ```","title":"How do I disable automatic installation?"},{"location":"page/file-watchers/","text":"File watchers # When some of the workspaces that are active in the current project requests file notifications via workspace/didChangeWatchedFiles , lsp-mode will start monitoring each of the folders in the workspace for changes to notify the server about that. In case you have issues with file watchers, first, check what folders are being watched, they are logged on *lsp-log* when the server starts, then you may consider check the below: If your project has some specific folder that should not be watched, you can exclude it with: ( with-eval-after-load 'lsp-mode ( add-to-list 'lsp-file-watch-ignored-directories \"[/\\\\\\\\]\\\\.my-folder\\\\'\" ) ;; or ( add-to-list 'lsp-file-watch-ignored-files \"[/\\\\\\\\]\\\\.my-files\\\\'\" )) Increase the file watch warning threshold, the default is 1000 , (setq lsp-file-watch-threshold 2000) If the folder is some kind of cache folder or something that should always be excluded for everyone, consider opening a pull request or informing the maintainers to add to the common regex . In last case, disable file watchers with (setq lsp-enable-file-watchers nil) (you may use dir-locals).","title":"File watchers"},{"location":"page/file-watchers/#file-watchers","text":"When some of the workspaces that are active in the current project requests file notifications via workspace/didChangeWatchedFiles , lsp-mode will start monitoring each of the folders in the workspace for changes to notify the server about that. In case you have issues with file watchers, first, check what folders are being watched, they are logged on *lsp-log* when the server starts, then you may consider check the below: If your project has some specific folder that should not be watched, you can exclude it with: ( with-eval-after-load 'lsp-mode ( add-to-list 'lsp-file-watch-ignored-directories \"[/\\\\\\\\]\\\\.my-folder\\\\'\" ) ;; or ( add-to-list 'lsp-file-watch-ignored-files \"[/\\\\\\\\]\\\\.my-files\\\\'\" )) Increase the file watch warning threshold, the default is 1000 , (setq lsp-file-watch-threshold 2000) If the folder is some kind of cache folder or something that should always be excluded for everyone, consider opening a pull request or informing the maintainers to add to the common regex . In last case, disable file watchers with (setq lsp-enable-file-watchers nil) (you may use dir-locals).","title":"File watchers"},{"location":"page/gallery/","text":"Gallery # RUST Completion # Typescript references using lsp-ui # Debugging Python using dap-mode # Call hierarchy via ccls # Metals Doctor # Flutter debugging # Semantic highlighting # As provided by clangd, built from unreleased 10.0 branch, in this screenshot, all other font-locking has been disabled (hence no syntax highlighting of comments or basic keywords such as ~auto~): clang-tidy error explanations # From the clangd language server:","title":"Gallery"},{"location":"page/gallery/#gallery","text":"","title":"Gallery"},{"location":"page/gallery/#rust-completion","text":"","title":"RUST Completion"},{"location":"page/gallery/#typescript-references-using-lsp-ui","text":"","title":"Typescript references using lsp-ui"},{"location":"page/gallery/#debugging-python-using-dap-mode","text":"","title":"Debugging Python using dap-mode"},{"location":"page/gallery/#call-hierarchy-via-ccls","text":"","title":"Call hierarchy via ccls"},{"location":"page/gallery/#metals-doctor","text":"","title":"Metals Doctor"},{"location":"page/gallery/#flutter-debugging","text":"","title":"Flutter debugging"},{"location":"page/gallery/#semantic-highlighting","text":"As provided by clangd, built from unreleased 10.0 branch, in this screenshot, all other font-locking has been disabled (hence no syntax highlighting of comments or basic keywords such as ~auto~):","title":"Semantic highlighting"},{"location":"page/gallery/#clang-tidy-error-explanations","text":"From the clangd language server:","title":"clang-tidy error explanations"},{"location":"page/installation/","text":"Installation # You need first lsp-mode , that is a Emacs client for an LSP server. Then you need to install the specific LSP server for your language. Finally, call M-x lsp or use the corresponding major mode hook to autostart the server. Client # lsp-mode has multiple ways to install it. Manually via MELPA # The recommended way to install lsp-mode is via package.el - the built-in package manager in Emacs. lsp-mode is available on the two major package.el community maintained repos - MELPA Stable and MELPA . M-x package-install RET lsp-mode RET When updating your packages with package.el , we recommend the following procedure: 1. Delete your LSP - related packages 2. Restart Emacs 3. Install the new versions of the packages . Doom Emacs # Doom Emacs has a module to install and configure lsp-mode automatically, you just need to add lsp below :tools in your init.el . To add lsp-mode support to some language, you can add the +lsp flag to the language you want. Example: init.el ... :lang ( clojure +lsp ) ( dart +lsp ) ( java +lsp ) ... For Doom Emacs module flags and more information, check the doom-emacs lsp module documentation . Spacemacs # lsp-mode is included in spacemacs develop branch. Add lsp to dotspacemacs-configuration-layers and configure the language that you want to use to be backed by lsp backend. Vanilla Emacs # You could go minimal and use lsp-mode as it is without external packages with the built-in flymake and completion-at-point or you could install the following extensions for better experience: lsp-ui for fancy sideline, popup documentation, VScode-like peek UI, etc. flycheck if you prefer the more popular flycheck over renewed flymake . lsp-mode will automatically pick it up. company-mode for completion popups. lsp-treemacs for various tree based UI controls (symbols, errors overview, call hierarchy, etc.) helm-lsp provides on type completion alternative of xref-apropos using helm . lsp-ivy provides on type completion alternative of xref-apropos using ivy . dap-mode if your language is supported by the debugger. ;; if you want to change prefix for lsp-mode keybindings. ( setq lsp-keymap-prefix \"s-l\" ) ( require 'lsp-mode ) ( add-hook 'XXX-mode-hook #' lsp ) Where XXX could be major mode like python , java , c++ . Alternatively, if you want to minimize your configuration you may use prog-mode-hook . In case you do that, lsp will try to start for each programming mode and echo a message when there is no client registered for the current mode or if the corresponding server is not present. In addition, lsp-mode will automatically detect and configure lsp-ui and company-mode . To turn off that behavior you could set lsp-auto-configure to nil . To defer LSP server startup (and DidOpen notifications) until the buffer is visible you can use lsp-deferred instead of lsp : ( add-hook 'XXX-mode-hook #' lsp-deferred ) use-package # Replace (require 'lsp-mode) with the following if you use use-package. ( use-package lsp-mode :init ;; set prefix for lsp-command-keymap (few alternatives - \"C-l\", \"C-c l\") ( setq lsp-keymap-prefix \"C-c l\" ) :hook ( ;; replace XXX-mode with concrete major-mode(e. g. python-mode) ( XXX-mode . lsp ) ;; if you want which-key integration ( lsp-mode . lsp-enable-which-key-integration )) :commands lsp ) ;; optionally ( use-package lsp-ui :commands lsp-ui-mode ) ;; if you are helm user ( use-package helm-lsp :commands helm-lsp-workspace-symbol ) ;; if you are ivy user ( use-package lsp-ivy :commands lsp-ivy-workspace-symbol ) ( use-package lsp-treemacs :commands lsp-treemacs-errors-list ) ;; optionally if you want to use debugger ( use-package dap-mode ) ;; (use-package dap-LANGUAGE) to load the dap adapter for your language ;; optional if you want which-key integration ( use-package which-key :config ( which-key-mode )) To defer LSP server startup (and DidOpen notifications) until the buffer is visible you can use lsp-deferred instead of lsp : ( use-package lsp-mode :hook ( XXX-mode . lsp-deferred ) :commands ( lsp lsp-deferred )) When you are not using package.el to install lsp-mode make sure to put clients folder to the load-path : ;; The path to lsp-mode needs to be added to load-path as well as the ;; path to the `clients' subdirectory. ( add-to-list 'load-path ( expand-file-name \"lib/lsp-mode\" user-emacs-directory )) ( add-to-list 'load-path ( expand-file-name \"lib/lsp-mode/clients\" user-emacs-directory )) Install a language server # For instructions on how to install a server for your language, check the available supported servers .","title":"Installation"},{"location":"page/installation/#installation","text":"You need first lsp-mode , that is a Emacs client for an LSP server. Then you need to install the specific LSP server for your language. Finally, call M-x lsp or use the corresponding major mode hook to autostart the server.","title":"Installation"},{"location":"page/installation/#client","text":"lsp-mode has multiple ways to install it.","title":"Client"},{"location":"page/installation/#manually-via-melpa","text":"The recommended way to install lsp-mode is via package.el - the built-in package manager in Emacs. lsp-mode is available on the two major package.el community maintained repos - MELPA Stable and MELPA . M-x package-install RET lsp-mode RET When updating your packages with package.el , we recommend the following procedure: 1. Delete your LSP - related packages 2. Restart Emacs 3. Install the new versions of the packages .","title":"Manually via MELPA"},{"location":"page/installation/#doom-emacs","text":"Doom Emacs has a module to install and configure lsp-mode automatically, you just need to add lsp below :tools in your init.el . To add lsp-mode support to some language, you can add the +lsp flag to the language you want. Example: init.el ... :lang ( clojure +lsp ) ( dart +lsp ) ( java +lsp ) ... For Doom Emacs module flags and more information, check the doom-emacs lsp module documentation .","title":"Doom Emacs"},{"location":"page/installation/#spacemacs","text":"lsp-mode is included in spacemacs develop branch. Add lsp to dotspacemacs-configuration-layers and configure the language that you want to use to be backed by lsp backend.","title":"Spacemacs"},{"location":"page/installation/#vanilla-emacs","text":"You could go minimal and use lsp-mode as it is without external packages with the built-in flymake and completion-at-point or you could install the following extensions for better experience: lsp-ui for fancy sideline, popup documentation, VScode-like peek UI, etc. flycheck if you prefer the more popular flycheck over renewed flymake . lsp-mode will automatically pick it up. company-mode for completion popups. lsp-treemacs for various tree based UI controls (symbols, errors overview, call hierarchy, etc.) helm-lsp provides on type completion alternative of xref-apropos using helm . lsp-ivy provides on type completion alternative of xref-apropos using ivy . dap-mode if your language is supported by the debugger. ;; if you want to change prefix for lsp-mode keybindings. ( setq lsp-keymap-prefix \"s-l\" ) ( require 'lsp-mode ) ( add-hook 'XXX-mode-hook #' lsp ) Where XXX could be major mode like python , java , c++ . Alternatively, if you want to minimize your configuration you may use prog-mode-hook . In case you do that, lsp will try to start for each programming mode and echo a message when there is no client registered for the current mode or if the corresponding server is not present. In addition, lsp-mode will automatically detect and configure lsp-ui and company-mode . To turn off that behavior you could set lsp-auto-configure to nil . To defer LSP server startup (and DidOpen notifications) until the buffer is visible you can use lsp-deferred instead of lsp : ( add-hook 'XXX-mode-hook #' lsp-deferred )","title":"Vanilla Emacs"},{"location":"page/installation/#use-package","text":"Replace (require 'lsp-mode) with the following if you use use-package. ( use-package lsp-mode :init ;; set prefix for lsp-command-keymap (few alternatives - \"C-l\", \"C-c l\") ( setq lsp-keymap-prefix \"C-c l\" ) :hook ( ;; replace XXX-mode with concrete major-mode(e. g. python-mode) ( XXX-mode . lsp ) ;; if you want which-key integration ( lsp-mode . lsp-enable-which-key-integration )) :commands lsp ) ;; optionally ( use-package lsp-ui :commands lsp-ui-mode ) ;; if you are helm user ( use-package helm-lsp :commands helm-lsp-workspace-symbol ) ;; if you are ivy user ( use-package lsp-ivy :commands lsp-ivy-workspace-symbol ) ( use-package lsp-treemacs :commands lsp-treemacs-errors-list ) ;; optionally if you want to use debugger ( use-package dap-mode ) ;; (use-package dap-LANGUAGE) to load the dap adapter for your language ;; optional if you want which-key integration ( use-package which-key :config ( which-key-mode )) To defer LSP server startup (and DidOpen notifications) until the buffer is visible you can use lsp-deferred instead of lsp : ( use-package lsp-mode :hook ( XXX-mode . lsp-deferred ) :commands ( lsp lsp-deferred )) When you are not using package.el to install lsp-mode make sure to put clients folder to the load-path : ;; The path to lsp-mode needs to be added to load-path as well as the ;; path to the `clients' subdirectory. ( add-to-list 'load-path ( expand-file-name \"lib/lsp-mode\" user-emacs-directory )) ( add-to-list 'load-path ( expand-file-name \"lib/lsp-mode/clients\" user-emacs-directory ))","title":"use-package"},{"location":"page/installation/#install-a-language-server","text":"For instructions on how to install a server for your language, check the available supported servers .","title":"Install a language server"},{"location":"page/keybindings/","text":"Keybindings # When using lsp-mode most of the features depend on server capabilities. lsp-mode provides default bindings which are dynamically enabled/disabled based on the server functionality. All the commands are configured lsp-command-map which is bound to lsp-keymap-prefix (default s-l ). Keybinding Description s-l w s Entry point for the server startup. s-l w r Restart language server s-l w q Shutdown language server s-l w d Describes current session s-l w D Disconnect the buffer from the language server keeping the server running. s-l = = Ask the server to format this document. s-l = r Ask the server to format the region, or if none is selected, the current line. s-l F a Add new project root to the list of workspace folders. s-l F r Remove project root from the list of workspace folders. s-l F b Remove project root from the workspace blacklist. s-l T l Toggle code-lens overlays. s-l T L Toggle client-server protocol logging. s-l T h Toggle symbol highlighting. s-l T S Toggle minor mode for showing information for current line in sideline. (requires lsp-ui ) s-l T d Toggle minor mode for showing hover information in child frame. (requires lsp-ui ) s-l T s Toggle signature auto activate. s-l T f Toggle on type formatting. s-l T T Toggle global minor mode for synchronizing lsp-mode workspace folders and treemacs projects. (requires lsp-treemacs ) s-l g g Find definitions of the symbol under point. s-l g r Find references of the symbol under point. s-l g i Find implementations of the symbol under point. s-l g t Find type definitions of the symbol under point. s-l g d Find declarations of the symbol under point. s-l g h Show the incoming call hierarchy for the symbol at point. (requires lsp-treemacs ) s-l g a Find all meaningful symbols that match pattern. s-l h h Display the type signature and documentation of the thing at point. s-l h s Activate signature help. s-l h g Trigger display hover information popup and hide it on next typing. s-l r r Rename the symbol (and all references to it). s-l r o Perform the source.organizeImports code action, if available. s-l a a Execute code action. s-l a l Click lsp lens using \u2018avy\u2019 package. s-l a h Highlight symbol at point. s-l G g Peek definitions to the identifier at point. (requires lsp-ui ) s-l G r Peek references to the identifier at point. (requires lsp-ui ) s-l G i Peek implementation locations of the symbol at point. (requires lsp-ui ) s-l G s Peek symbols in the workspace. (requires lsp-ui ) C-u RET When inserting C-u will change the behaviour from insert to replace or vice versa depending on lsp-completion-default-behaviour which-key integration # To enable which-key integration in the active major mode for lsp-mode-map you will need to call the lsp-enable-which-key-integration function. This could be done when lsp-mode starts with the following: ( with-eval-after-load 'lsp-mode ( add-hook 'lsp-mode-hook #' lsp-enable-which-key-integration )) You can also enable which-key integration for all major modes by passing t as a parameter. This is useful for buffers that can use multiple major modes like those using vue-mode .","title":"Keybindings"},{"location":"page/keybindings/#keybindings","text":"When using lsp-mode most of the features depend on server capabilities. lsp-mode provides default bindings which are dynamically enabled/disabled based on the server functionality. All the commands are configured lsp-command-map which is bound to lsp-keymap-prefix (default s-l ). Keybinding Description s-l w s Entry point for the server startup. s-l w r Restart language server s-l w q Shutdown language server s-l w d Describes current session s-l w D Disconnect the buffer from the language server keeping the server running. s-l = = Ask the server to format this document. s-l = r Ask the server to format the region, or if none is selected, the current line. s-l F a Add new project root to the list of workspace folders. s-l F r Remove project root from the list of workspace folders. s-l F b Remove project root from the workspace blacklist. s-l T l Toggle code-lens overlays. s-l T L Toggle client-server protocol logging. s-l T h Toggle symbol highlighting. s-l T S Toggle minor mode for showing information for current line in sideline. (requires lsp-ui ) s-l T d Toggle minor mode for showing hover information in child frame. (requires lsp-ui ) s-l T s Toggle signature auto activate. s-l T f Toggle on type formatting. s-l T T Toggle global minor mode for synchronizing lsp-mode workspace folders and treemacs projects. (requires lsp-treemacs ) s-l g g Find definitions of the symbol under point. s-l g r Find references of the symbol under point. s-l g i Find implementations of the symbol under point. s-l g t Find type definitions of the symbol under point. s-l g d Find declarations of the symbol under point. s-l g h Show the incoming call hierarchy for the symbol at point. (requires lsp-treemacs ) s-l g a Find all meaningful symbols that match pattern. s-l h h Display the type signature and documentation of the thing at point. s-l h s Activate signature help. s-l h g Trigger display hover information popup and hide it on next typing. s-l r r Rename the symbol (and all references to it). s-l r o Perform the source.organizeImports code action, if available. s-l a a Execute code action. s-l a l Click lsp lens using \u2018avy\u2019 package. s-l a h Highlight symbol at point. s-l G g Peek definitions to the identifier at point. (requires lsp-ui ) s-l G r Peek references to the identifier at point. (requires lsp-ui ) s-l G i Peek implementation locations of the symbol at point. (requires lsp-ui ) s-l G s Peek symbols in the workspace. (requires lsp-ui ) C-u RET When inserting C-u will change the behaviour from insert to replace or vice versa depending on lsp-completion-default-behaviour","title":"Keybindings"},{"location":"page/keybindings/#which-key-integration","text":"To enable which-key integration in the active major mode for lsp-mode-map you will need to call the lsp-enable-which-key-integration function. This could be done when lsp-mode starts with the following: ( with-eval-after-load 'lsp-mode ( add-hook 'lsp-mode-hook #' lsp-enable-which-key-integration )) You can also enable which-key integration for all major modes by passing t as a parameter. This is useful for buffers that can use multiple major modes like those using vue-mode .","title":"which-key integration"},{"location":"page/languages/","text":"Languages # On left, you can find all currently supported languages. Some languages have to be installed manually. Others can be installed with M-x lsp-install-server . See the language's page for the supported installation method.","title":"Languages"},{"location":"page/languages/#languages","text":"On left, you can find all currently supported languages. Some languages have to be installed manually. Others can be installed with M-x lsp-install-server . See the language's page for the supported installation method.","title":"Languages"},{"location":"page/lsp-actionscript/","text":"ActionScript # Server # For more information about the LSP server, check as3mxml . Installation # For more instructions on how to install manually, check here . Debugger: Yes # Available configurations # lsp-actionscript-extension-name # Type: string Default: vscode-nextgenas-1.5.0.vsix File name of the extension file from language server. lsp-actionscript-java-path # Type: string Default: java Path of the java executable. lsp-actionscript-option-charset # Type: string Default: UTF8 The charset to use by the ActionScript Language server. lsp-actionscript-sdk-path # Type: string Default: `` Path to supported SDK. See https://github.com/BowlerHatLLC/vscode-as3mxml/wiki/Choose-an-ActionScript-SDK-for-the-current-workspace-in-Visual-Studio-Code. lsp-actionscript-server-download-url # Type: string Default: https://github.com/BowlerHatLLC/vscode-as3mxml/releases/download/v1.5.0/vscode-nextgenas-1.5.0.vsix Automatic download url for lsp-actionscript. lsp-actionscript-server-store-path # Type: file Default: ~/.emacs.d/.cache/lsp/as3mxml The path to the file in which lsp-actionscript will be stored. lsp-actionscript-version # Type: string Default: 1.5.0 Version of ActionScript language server.","title":"ActionScript"},{"location":"page/lsp-actionscript/#actionscript","text":"","title":"ActionScript"},{"location":"page/lsp-actionscript/#server","text":"For more information about the LSP server, check as3mxml .","title":"Server"},{"location":"page/lsp-actionscript/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-actionscript/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-actionscript/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-actionscript/#lsp-actionscript-extension-name","text":"Type: string Default: vscode-nextgenas-1.5.0.vsix File name of the extension file from language server.","title":"lsp-actionscript-extension-name"},{"location":"page/lsp-actionscript/#lsp-actionscript-java-path","text":"Type: string Default: java Path of the java executable.","title":"lsp-actionscript-java-path"},{"location":"page/lsp-actionscript/#lsp-actionscript-option-charset","text":"Type: string Default: UTF8 The charset to use by the ActionScript Language server.","title":"lsp-actionscript-option-charset"},{"location":"page/lsp-actionscript/#lsp-actionscript-sdk-path","text":"Type: string Default: `` Path to supported SDK. See https://github.com/BowlerHatLLC/vscode-as3mxml/wiki/Choose-an-ActionScript-SDK-for-the-current-workspace-in-Visual-Studio-Code.","title":"lsp-actionscript-sdk-path"},{"location":"page/lsp-actionscript/#lsp-actionscript-server-download-url","text":"Type: string Default: https://github.com/BowlerHatLLC/vscode-as3mxml/releases/download/v1.5.0/vscode-nextgenas-1.5.0.vsix Automatic download url for lsp-actionscript.","title":"lsp-actionscript-server-download-url"},{"location":"page/lsp-actionscript/#lsp-actionscript-server-store-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/as3mxml The path to the file in which lsp-actionscript will be stored.","title":"lsp-actionscript-server-store-path"},{"location":"page/lsp-actionscript/#lsp-actionscript-version","text":"Type: string Default: 1.5.0 Version of ActionScript language server.","title":"lsp-actionscript-version"},{"location":"page/lsp-ada/","text":"Ada # Server # For more information about the LSP server, check ada_language_server . Installation # For more instructions on how to install manually, check here . Debugger: Yes (gdb) # Available configurations # lsp-ada-alire-executable # Type: string Default: alr The alire executable to run when a project is detected. lsp-ada-als-executable # Type: file Default: ada_language_server Command to start the Ada language server. lsp-ada-enable-diagnostics # Type: boolean Default: t A boolean to disable diagnostics. Defaults to true. lsp-ada-option-charset # Type: string Default: UTF-8 The charset to use by the Ada Language server. Defaults to UTF-8 . lsp-ada-project-file # Type: string Default: default.gpr Set the project file full path to configure the language server with. The ~ prefix (for the user home directory) is supported. See https://github.com/AdaCore/ada_language_server for a per-project configuration example.","title":"Ada"},{"location":"page/lsp-ada/#ada","text":"","title":"Ada"},{"location":"page/lsp-ada/#server","text":"For more information about the LSP server, check ada_language_server .","title":"Server"},{"location":"page/lsp-ada/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-ada/#debugger-yes-gdb","text":"","title":"Debugger: Yes (gdb)"},{"location":"page/lsp-ada/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ada/#lsp-ada-alire-executable","text":"Type: string Default: alr The alire executable to run when a project is detected.","title":"lsp-ada-alire-executable"},{"location":"page/lsp-ada/#lsp-ada-als-executable","text":"Type: file Default: ada_language_server Command to start the Ada language server.","title":"lsp-ada-als-executable"},{"location":"page/lsp-ada/#lsp-ada-enable-diagnostics","text":"Type: boolean Default: t A boolean to disable diagnostics. Defaults to true.","title":"lsp-ada-enable-diagnostics"},{"location":"page/lsp-ada/#lsp-ada-option-charset","text":"Type: string Default: UTF-8 The charset to use by the Ada Language server. Defaults to UTF-8 .","title":"lsp-ada-option-charset"},{"location":"page/lsp-ada/#lsp-ada-project-file","text":"Type: string Default: default.gpr Set the project file full path to configure the language server with. The ~ prefix (for the user home directory) is supported. See https://github.com/AdaCore/ada_language_server for a per-project configuration example.","title":"lsp-ada-project-file"},{"location":"page/lsp-angular/","text":"Angular # Server # For more information about the LSP server, check vscode-ng-language-service . Installation # npm install -g @angular/language-service@next typescript @angular/language-server For more instructions on how to install manually, check here . Debugger: Not relevant # Available configurations # lsp-clients-angular-language-server-command # Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: nil The command that starts the angular language server. lsp-clients-angular-node-get-prefix-command # Type: string Default: npm config get --global prefix The shell command that returns the path of NodeJS s prefix. Has no effects when lsp-clients-angular-language-server-command` is set.","title":"Angular"},{"location":"page/lsp-angular/#angular","text":"","title":"Angular"},{"location":"page/lsp-angular/#server","text":"For more information about the LSP server, check vscode-ng-language-service .","title":"Server"},{"location":"page/lsp-angular/#installation","text":"npm install -g @angular/language-service@next typescript @angular/language-server For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-angular/#debugger-not-relevant","text":"","title":"Debugger: Not relevant"},{"location":"page/lsp-angular/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-angular/#lsp-clients-angular-language-server-command","text":"Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: nil The command that starts the angular language server.","title":"lsp-clients-angular-language-server-command"},{"location":"page/lsp-angular/#lsp-clients-angular-node-get-prefix-command","text":"Type: string Default: npm config get --global prefix The shell command that returns the path of NodeJS s prefix. Has no effects when lsp-clients-angular-language-server-command` is set.","title":"lsp-clients-angular-node-get-prefix-command"},{"location":"page/lsp-ansible/","text":"Ansible # Server # For more information about the LSP server, check ansible-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET ansible-ls RET . npm i -g @ansible/ansible-language-server Debugger: Not available # Available configurations # lsp-ansible-add-on? # Type: boolean Default: t Make the client add-on so that it works with other language servers. yamlls is a common one. Enabled by default. lsp-ansible-ansible-path # Type: string Default: ansible Path to the ansible executable. $PATH is searched for the executable. lsp-ansible-completion-provide-module-option-aliases # Type: boolean Default: t Toggle alias provider when completing module options. lsp-ansible-completion-provide-redirect-modules # Type: boolean Default: t Toggle redirected module provider when completing modules. lsp-ansible-execution-environment-container-engine # Type: (choice (const auto) (const podman) (const docker)) Default: auto The container engine to be used while running with execution environment. Valid values are auto, podman and docker. For auto it will look for podman then docker. lsp-ansible-execution-environment-container-options # Type: string Default: `` Extra parameters passed to the container engine command. Example: -\u2013net=host lsp-ansible-execution-environment-enabled # Type: boolean Default: nil Enable or disable the use of an execution environment. lsp-ansible-execution-environment-image # Type: string Default: quay.io/ansible/creator-ee:latest Specify the name of the execution environment image. lsp-ansible-execution-environment-pull-arguments # Type: string Default: `` Specify any additional parameters for the pull command. Example: --tls-verify=false lsp-ansible-execution-environment-pull-policy # Type: (choice (const always) (const missing) (const never) (const tag)) Default: missing Specify the image pull policy. Valid values are always, missing, never and tag. Setting always will always pull the image when extension is activated or reloaded. Setting missing will pull if not locally available. Setting never will never pull the image and setting tag will always pull if the image tag is latest , otherwise pull if not locally available. lsp-ansible-execution-environment-volume-mounts # Type: (lsp-repeatable-vector plist) Default: [] Additonnal volumes to mount in container. The value is a vector of plists. Expected properties are: - src: the name of the local volume or path to be mounted within execution environment - dest: the path where the file or directory are mounted in the container - options: the property is optional, and is a comma-separated list of options. Example: ro,Z lsp-ansible-language-server-command # Type: (repeat :tag List of string values string) Default: (ansible-language-server --stdio) The command that starts the ansible language server. lsp-ansible-python-activation-script # Type: string Default: `` Path to a custom activate script. It will be used instead of lsp-ansible-python-interpreter-path to run in a Python virtual environment. lsp-ansible-python-interpreter-path # Type: string Default: `` Path to the python/python3 executable. This setting may be used to make the extension work with ansible and ansible-lint installations in a Python virtual environment. lsp-ansible-use-fully-qualified-collection-names # Type: boolean Default: t Toggles use of fully qualified collection names when inserting a module name. Disabling it will only use FQCNs when necessary, that is when the collection is not configured for the task. lsp-ansible-validation-enabled # Type: boolean Default: t Toggle validation provider. If enabled and ansible-lint is disabled, validation falls back to ansible-playbook --syntax-check. lsp-ansible-validation-lint-arguments # Type: string Default: `` Optional command line arguments to be appended to ansible-lint invocation. See ansible-lint documentation. lsp-ansible-validation-lint-enabled # Type: boolean Default: t Enables/disables use of ansible-lint. lsp-ansible-validation-lint-path # Type: string Default: ansible-lint Path to the ansible-lint executable. $PATH is searched for the executable.","title":"Ansible"},{"location":"page/lsp-ansible/#ansible","text":"","title":"Ansible"},{"location":"page/lsp-ansible/#server","text":"For more information about the LSP server, check ansible-language-server .","title":"Server"},{"location":"page/lsp-ansible/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET ansible-ls RET . npm i -g @ansible/ansible-language-server","title":"Installation"},{"location":"page/lsp-ansible/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ansible/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ansible/#lsp-ansible-add-on","text":"Type: boolean Default: t Make the client add-on so that it works with other language servers. yamlls is a common one. Enabled by default.","title":"lsp-ansible-add-on?"},{"location":"page/lsp-ansible/#lsp-ansible-ansible-path","text":"Type: string Default: ansible Path to the ansible executable. $PATH is searched for the executable.","title":"lsp-ansible-ansible-path"},{"location":"page/lsp-ansible/#lsp-ansible-completion-provide-module-option-aliases","text":"Type: boolean Default: t Toggle alias provider when completing module options.","title":"lsp-ansible-completion-provide-module-option-aliases"},{"location":"page/lsp-ansible/#lsp-ansible-completion-provide-redirect-modules","text":"Type: boolean Default: t Toggle redirected module provider when completing modules.","title":"lsp-ansible-completion-provide-redirect-modules"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-container-engine","text":"Type: (choice (const auto) (const podman) (const docker)) Default: auto The container engine to be used while running with execution environment. Valid values are auto, podman and docker. For auto it will look for podman then docker.","title":"lsp-ansible-execution-environment-container-engine"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-container-options","text":"Type: string Default: `` Extra parameters passed to the container engine command. Example: -\u2013net=host","title":"lsp-ansible-execution-environment-container-options"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-enabled","text":"Type: boolean Default: nil Enable or disable the use of an execution environment.","title":"lsp-ansible-execution-environment-enabled"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-image","text":"Type: string Default: quay.io/ansible/creator-ee:latest Specify the name of the execution environment image.","title":"lsp-ansible-execution-environment-image"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-pull-arguments","text":"Type: string Default: `` Specify any additional parameters for the pull command. Example: --tls-verify=false","title":"lsp-ansible-execution-environment-pull-arguments"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-pull-policy","text":"Type: (choice (const always) (const missing) (const never) (const tag)) Default: missing Specify the image pull policy. Valid values are always, missing, never and tag. Setting always will always pull the image when extension is activated or reloaded. Setting missing will pull if not locally available. Setting never will never pull the image and setting tag will always pull if the image tag is latest , otherwise pull if not locally available.","title":"lsp-ansible-execution-environment-pull-policy"},{"location":"page/lsp-ansible/#lsp-ansible-execution-environment-volume-mounts","text":"Type: (lsp-repeatable-vector plist) Default: [] Additonnal volumes to mount in container. The value is a vector of plists. Expected properties are: - src: the name of the local volume or path to be mounted within execution environment - dest: the path where the file or directory are mounted in the container - options: the property is optional, and is a comma-separated list of options. Example: ro,Z","title":"lsp-ansible-execution-environment-volume-mounts"},{"location":"page/lsp-ansible/#lsp-ansible-language-server-command","text":"Type: (repeat :tag List of string values string) Default: (ansible-language-server --stdio) The command that starts the ansible language server.","title":"lsp-ansible-language-server-command"},{"location":"page/lsp-ansible/#lsp-ansible-python-activation-script","text":"Type: string Default: `` Path to a custom activate script. It will be used instead of lsp-ansible-python-interpreter-path to run in a Python virtual environment.","title":"lsp-ansible-python-activation-script"},{"location":"page/lsp-ansible/#lsp-ansible-python-interpreter-path","text":"Type: string Default: `` Path to the python/python3 executable. This setting may be used to make the extension work with ansible and ansible-lint installations in a Python virtual environment.","title":"lsp-ansible-python-interpreter-path"},{"location":"page/lsp-ansible/#lsp-ansible-use-fully-qualified-collection-names","text":"Type: boolean Default: t Toggles use of fully qualified collection names when inserting a module name. Disabling it will only use FQCNs when necessary, that is when the collection is not configured for the task.","title":"lsp-ansible-use-fully-qualified-collection-names"},{"location":"page/lsp-ansible/#lsp-ansible-validation-enabled","text":"Type: boolean Default: t Toggle validation provider. If enabled and ansible-lint is disabled, validation falls back to ansible-playbook --syntax-check.","title":"lsp-ansible-validation-enabled"},{"location":"page/lsp-ansible/#lsp-ansible-validation-lint-arguments","text":"Type: string Default: `` Optional command line arguments to be appended to ansible-lint invocation. See ansible-lint documentation.","title":"lsp-ansible-validation-lint-arguments"},{"location":"page/lsp-ansible/#lsp-ansible-validation-lint-enabled","text":"Type: boolean Default: t Enables/disables use of ansible-lint.","title":"lsp-ansible-validation-lint-enabled"},{"location":"page/lsp-ansible/#lsp-ansible-validation-lint-path","text":"Type: string Default: ansible-lint Path to the ansible-lint executable. $PATH is searched for the executable.","title":"lsp-ansible-validation-lint-path"},{"location":"page/lsp-astro/","text":"Astro # Server # For more information about the LSP server, check astro-ls . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET astro-ls RET . npm i -g @astrojs/language-server Debugger: Not available # Available configurations #","title":"Astro"},{"location":"page/lsp-astro/#astro","text":"","title":"Astro"},{"location":"page/lsp-astro/#server","text":"For more information about the LSP server, check astro-ls .","title":"Server"},{"location":"page/lsp-astro/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET astro-ls RET . npm i -g @astrojs/language-server","title":"Installation"},{"location":"page/lsp-astro/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-astro/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-awk/","text":"AWK # Server # For more information about the LSP server, check awk-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET awkls RET . npm i -g awk-language-server Debugger: Not available # Available configurations # lsp-awk-executable # Type: list Default: (awk-language-server) Command to run the AWK language server.","title":"AWK"},{"location":"page/lsp-awk/#awk","text":"","title":"AWK"},{"location":"page/lsp-awk/#server","text":"For more information about the LSP server, check awk-language-server .","title":"Server"},{"location":"page/lsp-awk/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET awkls RET . npm i -g awk-language-server","title":"Installation"},{"location":"page/lsp-awk/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-awk/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-awk/#lsp-awk-executable","text":"Type: list Default: (awk-language-server) Command to run the AWK language server.","title":"lsp-awk-executable"},{"location":"page/lsp-bash/","text":"Bash # Server # For more information about the LSP server, check bash-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET bash-ls RET . npm i -g bash-language-server Debugger: Not available # Available configurations # lsp-bash-explainshell-endpoint # Type: string Default: nil The endpoint to use explainshell.com to answer onHover queries. See instructions at https://marketplace.visualstudio.com/items?itemName=mads-hartmann.bash-ide-vscode lsp-bash-glob-pattern # Type: string Default: nil Glob pattern used to find shell script files to parse. lsp-bash-highlight-parsing-errors # Type: boolean Default: nil Consider parsing errors in scripts as problems .","title":"Bash"},{"location":"page/lsp-bash/#bash","text":"","title":"Bash"},{"location":"page/lsp-bash/#server","text":"For more information about the LSP server, check bash-language-server .","title":"Server"},{"location":"page/lsp-bash/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET bash-ls RET . npm i -g bash-language-server","title":"Installation"},{"location":"page/lsp-bash/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-bash/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-bash/#lsp-bash-explainshell-endpoint","text":"Type: string Default: nil The endpoint to use explainshell.com to answer onHover queries. See instructions at https://marketplace.visualstudio.com/items?itemName=mads-hartmann.bash-ide-vscode","title":"lsp-bash-explainshell-endpoint"},{"location":"page/lsp-bash/#lsp-bash-glob-pattern","text":"Type: string Default: nil Glob pattern used to find shell script files to parse.","title":"lsp-bash-glob-pattern"},{"location":"page/lsp-bash/#lsp-bash-highlight-parsing-errors","text":"Type: boolean Default: nil Consider parsing errors in scripts as problems .","title":"lsp-bash-highlight-parsing-errors"},{"location":"page/lsp-beancount/","text":"Beancount # Server # For more information about the LSP server, check beancount-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET beancount-ls RET . cargo install beancount-language-server For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-beancount-journal-file # Type: string Default: nil Path to Beancount journal file. The path can be absolute, or relative to the currently opened file. Use nil (the default) to use the current beancount buffer as the journal file. lsp-beancount-langserver-executable # Type: string Default: beancount-language-server Command to start Beancount language server.","title":"Beancount"},{"location":"page/lsp-beancount/#beancount","text":"","title":"Beancount"},{"location":"page/lsp-beancount/#server","text":"For more information about the LSP server, check beancount-language-server .","title":"Server"},{"location":"page/lsp-beancount/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET beancount-ls RET . cargo install beancount-language-server For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-beancount/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-beancount/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-beancount/#lsp-beancount-journal-file","text":"Type: string Default: nil Path to Beancount journal file. The path can be absolute, or relative to the currently opened file. Use nil (the default) to use the current beancount buffer as the journal file.","title":"lsp-beancount-journal-file"},{"location":"page/lsp-beancount/#lsp-beancount-langserver-executable","text":"Type: string Default: beancount-language-server Command to start Beancount language server.","title":"lsp-beancount-langserver-executable"},{"location":"page/lsp-camel/","text":"CAMEL # Server # For more information about the LSP server, check camells . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET camells RET . Automatic by lsp-mode with lsp-install-server`` Debugger: Not available # Available configurations #","title":"Camel"},{"location":"page/lsp-camel/#camel","text":"","title":"CAMEL"},{"location":"page/lsp-camel/#server","text":"For more information about the LSP server, check camells .","title":"Server"},{"location":"page/lsp-camel/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET camells RET . Automatic by lsp-mode with lsp-install-server``","title":"Installation"},{"location":"page/lsp-camel/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-camel/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ccls/","text":"C++ # Server # For more information about the LSP server, check ccls . Installation # For more instructions on how to install manually, check here . Debugger: Yes (gdb or lldb) # Available configurations #","title":"C++ (ccls)"},{"location":"page/lsp-ccls/#c","text":"","title":"C++"},{"location":"page/lsp-ccls/#server","text":"For more information about the LSP server, check ccls .","title":"Server"},{"location":"page/lsp-ccls/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-ccls/#debugger-yes-gdb-or-lldb","text":"","title":"Debugger: Yes (gdb or lldb)"},{"location":"page/lsp-ccls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-clangd/","text":"C++ # Server # For more information about the LSP server, check clangd . Installation # For more instructions on how to install manually, check here . Debugger: Yes (gdb or lldb) # Available configurations # lsp-clangd-binary-path # Type: file Default: ~/.emacs.d/.cache/lsp/clangd/clangd_15.0.6/bin/clangd The path to clangd binary. lsp-clangd-download-url # Type: string Default: https://github.com/clangd/clangd/releases/download/15.0.6/clangd-linux-15.0.6.zip Automatic download url for clangd lsp-clangd-version # Type: string Default: 15.0.6 Clangd version to download. It has to be set before lsp-clangd.el is loaded and it has to be available here: https://github.com/clangd/clangd/releases/ lsp-clients-clangd-args # Type: (repeat string) Default: (--header-insertion-decorators=0) Extra arguments for the clangd executable. lsp-clients-clangd-executable # Type: (choice (file :tag Path) (const :tag Auto nil)) Default: nil The clangd executable to use. When `non-nil use the name of the clangd executable file available in your path to use. Otherwise the system will try to find a suitable one. Set this variable before loading lsp. lsp-clients-clangd-library-directories # Type: (repeat string) Default: (/usr) List of directories which will be considered to be libraries.","title":"C++ (clangd)"},{"location":"page/lsp-clangd/#c","text":"","title":"C++"},{"location":"page/lsp-clangd/#server","text":"For more information about the LSP server, check clangd .","title":"Server"},{"location":"page/lsp-clangd/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-clangd/#debugger-yes-gdb-or-lldb","text":"","title":"Debugger: Yes (gdb or lldb)"},{"location":"page/lsp-clangd/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-clangd/#lsp-clangd-binary-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/clangd/clangd_15.0.6/bin/clangd The path to clangd binary.","title":"lsp-clangd-binary-path"},{"location":"page/lsp-clangd/#lsp-clangd-download-url","text":"Type: string Default: https://github.com/clangd/clangd/releases/download/15.0.6/clangd-linux-15.0.6.zip Automatic download url for clangd","title":"lsp-clangd-download-url"},{"location":"page/lsp-clangd/#lsp-clangd-version","text":"Type: string Default: 15.0.6 Clangd version to download. It has to be set before lsp-clangd.el is loaded and it has to be available here: https://github.com/clangd/clangd/releases/","title":"lsp-clangd-version"},{"location":"page/lsp-clangd/#lsp-clients-clangd-args","text":"Type: (repeat string) Default: (--header-insertion-decorators=0) Extra arguments for the clangd executable.","title":"lsp-clients-clangd-args"},{"location":"page/lsp-clangd/#lsp-clients-clangd-executable","text":"Type: (choice (file :tag Path) (const :tag Auto nil)) Default: nil The clangd executable to use. When `non-nil use the name of the clangd executable file available in your path to use. Otherwise the system will try to find a suitable one. Set this variable before loading lsp.","title":"lsp-clients-clangd-executable"},{"location":"page/lsp-clangd/#lsp-clients-clangd-library-directories","text":"Type: (repeat string) Default: (/usr) List of directories which will be considered to be libraries.","title":"lsp-clients-clangd-library-directories"},{"location":"page/lsp-clojure/","text":"Clojure # Server # For more information about the LSP server, check clojure-lsp . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET clojure-lsp RET . For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clojure-custom-server-command # Type: (repeat string) Default: nil The clojure-lisp server command. lsp-clojure-library-dirs # Type: list Default: (/home/runner/.emacs.d/workspace/.cache/ /home/runner/.gitlibs/libs) LSP clojure dirs that should be considered library folders. lsp-clojure-server-download-url # Type: string Default: https://github.com/clojure-lsp/clojure-lsp/releases/latest/download/clojure-lsp-native-linux-amd64.zip Automatic download url for lsp-clojure. lsp-clojure-server-store-path # Type: file Default: ~/.emacs.d/.cache/lsp/clojure/clojure-lsp The path to the file in which clojure-lsp will be stored. lsp-clojure-test-tree-position-params # Type: list Default: nil The optional test tree position params. Defaults to side following treemacs default. lsp-clojure-trace-enable # Type: boolean Default: nil Enable trace logs between client and clojure-lsp server. lsp-clojure-workspace-cache-dir # Type: directory Default: ~/.emacs.d/workspace/.cache/ LSP clojure workspace cache directory. lsp-clojure-workspace-dir # Type: directory Default: ~/.emacs.d/workspace/ LSP clojure workspace directory.","title":"Clojure"},{"location":"page/lsp-clojure/#clojure","text":"","title":"Clojure"},{"location":"page/lsp-clojure/#server","text":"For more information about the LSP server, check clojure-lsp .","title":"Server"},{"location":"page/lsp-clojure/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET clojure-lsp RET . For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-clojure/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-clojure/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-clojure/#lsp-clojure-custom-server-command","text":"Type: (repeat string) Default: nil The clojure-lisp server command.","title":"lsp-clojure-custom-server-command"},{"location":"page/lsp-clojure/#lsp-clojure-library-dirs","text":"Type: list Default: (/home/runner/.emacs.d/workspace/.cache/ /home/runner/.gitlibs/libs) LSP clojure dirs that should be considered library folders.","title":"lsp-clojure-library-dirs"},{"location":"page/lsp-clojure/#lsp-clojure-server-download-url","text":"Type: string Default: https://github.com/clojure-lsp/clojure-lsp/releases/latest/download/clojure-lsp-native-linux-amd64.zip Automatic download url for lsp-clojure.","title":"lsp-clojure-server-download-url"},{"location":"page/lsp-clojure/#lsp-clojure-server-store-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/clojure/clojure-lsp The path to the file in which clojure-lsp will be stored.","title":"lsp-clojure-server-store-path"},{"location":"page/lsp-clojure/#lsp-clojure-test-tree-position-params","text":"Type: list Default: nil The optional test tree position params. Defaults to side following treemacs default.","title":"lsp-clojure-test-tree-position-params"},{"location":"page/lsp-clojure/#lsp-clojure-trace-enable","text":"Type: boolean Default: nil Enable trace logs between client and clojure-lsp server.","title":"lsp-clojure-trace-enable"},{"location":"page/lsp-clojure/#lsp-clojure-workspace-cache-dir","text":"Type: directory Default: ~/.emacs.d/workspace/.cache/ LSP clojure workspace cache directory.","title":"lsp-clojure-workspace-cache-dir"},{"location":"page/lsp-clojure/#lsp-clojure-workspace-dir","text":"Type: directory Default: ~/.emacs.d/workspace/ LSP clojure workspace directory.","title":"lsp-clojure-workspace-dir"},{"location":"page/lsp-cmake/","text":"CMake # Server # For more information about the LSP server, check cmake-language-server . Installation # pip install cmake-language-server For more instructions on how to install manually, check here . Debugger: Not relevant # Available configurations # lsp-cmake-server-command # Type: string Default: cmake-language-server The binary (or full path to binary) which executes the server.","title":"CMake"},{"location":"page/lsp-cmake/#cmake","text":"","title":"CMake"},{"location":"page/lsp-cmake/#server","text":"For more information about the LSP server, check cmake-language-server .","title":"Server"},{"location":"page/lsp-cmake/#installation","text":"pip install cmake-language-server For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-cmake/#debugger-not-relevant","text":"","title":"Debugger: Not relevant"},{"location":"page/lsp-cmake/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-cmake/#lsp-cmake-server-command","text":"Type: string Default: cmake-language-server The binary (or full path to binary) which executes the server.","title":"lsp-cmake-server-command"},{"location":"page/lsp-credo/","text":"Credo # Server # For more information about the LSP server, check credo-ls . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-credo-binary-path # Type: file Default: ~/.emacs.d/.cache/lsp/credo-language-server/credo-language-server The path to credo-language-server binary. lsp-credo-command # Type: (repeat :tag List of string values string) Default: (credo-language-server --stdio=true) The command that starts credo-language-server. lsp-credo-download-url # Type: string Default: https://github.com/elixir-tools/credo-language-server/releases/download/v0.1.2/credo-language-server Automatic download url for credo-language-server. lsp-credo-version # Type: string Default: 0.1.2 Credo language server version to download. It has to be set before lsp-credo.el is loaded and it has to be available here: https://github.com/elixir-tools/credo-language-server/releases.","title":"Lsp credo"},{"location":"page/lsp-credo/#credo","text":"","title":"Credo"},{"location":"page/lsp-credo/#server","text":"For more information about the LSP server, check credo-ls .","title":"Server"},{"location":"page/lsp-credo/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-credo/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-credo/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-credo/#lsp-credo-binary-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/credo-language-server/credo-language-server The path to credo-language-server binary.","title":"lsp-credo-binary-path"},{"location":"page/lsp-credo/#lsp-credo-command","text":"Type: (repeat :tag List of string values string) Default: (credo-language-server --stdio=true) The command that starts credo-language-server.","title":"lsp-credo-command"},{"location":"page/lsp-credo/#lsp-credo-download-url","text":"Type: string Default: https://github.com/elixir-tools/credo-language-server/releases/download/v0.1.2/credo-language-server Automatic download url for credo-language-server.","title":"lsp-credo-download-url"},{"location":"page/lsp-credo/#lsp-credo-version","text":"Type: string Default: 0.1.2 Credo language server version to download. It has to be set before lsp-credo.el is loaded and it has to be available here: https://github.com/elixir-tools/credo-language-server/releases.","title":"lsp-credo-version"},{"location":"page/lsp-crystal/","text":"Crystal # Server # For more information about the LSP server, check crystalline . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Crystal"},{"location":"page/lsp-crystal/#crystal","text":"","title":"Crystal"},{"location":"page/lsp-crystal/#server","text":"For more information about the LSP server, check crystalline .","title":"Server"},{"location":"page/lsp-crystal/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-crystal/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-crystal/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-csharp-ls/","text":"C# (csharp-ls) # Server # For more information about the LSP server, check csharp-ls . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET csharp-ls RET . Automatic by lsp-mode with dotnet tool install -g`` Debugger: Yes (netcoredbg) # Available configurations #","title":"C# (csharp-ls)"},{"location":"page/lsp-csharp-ls/#c-csharp-ls","text":"","title":"C# (csharp-ls)"},{"location":"page/lsp-csharp-ls/#server","text":"For more information about the LSP server, check csharp-ls .","title":"Server"},{"location":"page/lsp-csharp-ls/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET csharp-ls RET . Automatic by lsp-mode with dotnet tool install -g``","title":"Installation"},{"location":"page/lsp-csharp-ls/#debugger-yes-netcoredbg","text":"","title":"Debugger: Yes (netcoredbg)"},{"location":"page/lsp-csharp-ls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-csharp-omnisharp/","text":"C# (Omnisharp-Roslyn) # Server # For more information about the LSP server, check OmniSharp-Roslyn . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET omnisharp RET . Supports automatic installation. Debugger: Yes (netcoredbg) # Available configurations # lsp-csharp-omnisharp-roslyn-binary-path # Type: file Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/latest/OmniSharp The path where omnisharp-roslyn binary after will be stored. lsp-csharp-omnisharp-roslyn-download-url # Type: string Default: https://github.com/omnisharp/omnisharp-roslyn/releases/latest/download/omnisharp-linux-x64-net6.0.zip Automatic download url for omnisharp-roslyn. lsp-csharp-omnisharp-roslyn-server-dir # Type: file Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/latest/omnisharp-roslyn The path where omnisharp-roslyn .zip archive will be extracted. lsp-csharp-omnisharp-roslyn-store-path # Type: file Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/latest/omnisharp-roslyn.zip The path where omnisharp-roslyn .zip archive will be stored. lsp-csharp-server-install-dir # Type: directory Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/ Installation directory for OmniSharp Roslyn server. lsp-csharp-server-path # Type: (string :tag Single string value or nil) Default: nil The path to the OmniSharp Roslyn language-server binary. Set this if you have the binary installed or have it built yourself. lsp-csharp-solution-file # Type: string Default: nil Solution to load when starting the server. Usually this is to be set in your .dir-locals.el on the project root directory. lsp-csharp-test-run-buffer-name # Type: string Default: *lsp-csharp test run* The name of buffer used for outputting lsp-csharp test run results.","title":"C# (omnisharp-roslyn)"},{"location":"page/lsp-csharp-omnisharp/#c-omnisharp-roslyn","text":"","title":"C# (Omnisharp-Roslyn)"},{"location":"page/lsp-csharp-omnisharp/#server","text":"For more information about the LSP server, check OmniSharp-Roslyn .","title":"Server"},{"location":"page/lsp-csharp-omnisharp/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET omnisharp RET . Supports automatic installation.","title":"Installation"},{"location":"page/lsp-csharp-omnisharp/#debugger-yes-netcoredbg","text":"","title":"Debugger: Yes (netcoredbg)"},{"location":"page/lsp-csharp-omnisharp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-omnisharp-roslyn-binary-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/latest/OmniSharp The path where omnisharp-roslyn binary after will be stored.","title":"lsp-csharp-omnisharp-roslyn-binary-path"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-omnisharp-roslyn-download-url","text":"Type: string Default: https://github.com/omnisharp/omnisharp-roslyn/releases/latest/download/omnisharp-linux-x64-net6.0.zip Automatic download url for omnisharp-roslyn.","title":"lsp-csharp-omnisharp-roslyn-download-url"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-omnisharp-roslyn-server-dir","text":"Type: file Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/latest/omnisharp-roslyn The path where omnisharp-roslyn .zip archive will be extracted.","title":"lsp-csharp-omnisharp-roslyn-server-dir"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-omnisharp-roslyn-store-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/latest/omnisharp-roslyn.zip The path where omnisharp-roslyn .zip archive will be stored.","title":"lsp-csharp-omnisharp-roslyn-store-path"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-server-install-dir","text":"Type: directory Default: ~/.emacs.d/.cache/lsp/omnisharp-roslyn/ Installation directory for OmniSharp Roslyn server.","title":"lsp-csharp-server-install-dir"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-server-path","text":"Type: (string :tag Single string value or nil) Default: nil The path to the OmniSharp Roslyn language-server binary. Set this if you have the binary installed or have it built yourself.","title":"lsp-csharp-server-path"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-solution-file","text":"Type: string Default: nil Solution to load when starting the server. Usually this is to be set in your .dir-locals.el on the project root directory.","title":"lsp-csharp-solution-file"},{"location":"page/lsp-csharp-omnisharp/#lsp-csharp-test-run-buffer-name","text":"Type: string Default: *lsp-csharp test run* The name of buffer used for outputting lsp-csharp test run results.","title":"lsp-csharp-test-run-buffer-name"},{"location":"page/lsp-css/","text":"CSS/LessCSS/SASS/SCSS # Server # For more information about the LSP server, check css . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET css-ls RET . npm install -g vscode-langservers-extracted Debugger: Not available # Available configurations # lsp-css-completion-trigger-property-value-completion # Type: boolean Default: t By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior. lsp-css-experimental-custom-data # Type: (repeat string) Default: nil A list of JSON file paths that define custom CSS data that loads custom properties, at directives, pseudo classes / elements. lsp-css-lint-arguments-in-color-function # Type: (choice (const ignore) (const warning) (const error)) Default: error Invalid number of parameters. lsp-css-lint-box-model # Type: (choice (const ignore) (const warning) (const error)) Default: ignore lsp-css-lint-compatible-vendor-prefixes # Type: (choice (const ignore) (const warning) (const error)) Default: ignore When using a vendor-specific prefix make sure to also include all other vendor-specific properties. lsp-css-lint-duplicate-properties # Type: (choice (const ignore) (const warning) (const error)) Default: ignore Do not use duplicate style definitions. lsp-css-lint-empty-rules # Type: (choice (const ignore) (const warning) (const error)) Default: warning Do not use empty rulesets. lsp-css-lint-float # Type: (choice (const ignore) (const warning) (const error)) Default: ignore lsp-css-lint-font-face-properties # Type: (choice (const ignore) (const warning) (const error)) Default: warning lsp-css-lint-hex-color-length # Type: (choice (const ignore) (const warning) (const error)) Default: error Hex colors must consist of three or six hex numbers. lsp-css-lint-id-selector # Type: (choice (const ignore) (const warning) (const error)) Default: ignore Selectors should not contain IDs because these rules are too tightly coupled with the HTML. lsp-css-lint-ie-hack # Type: (choice (const ignore) (const warning) (const error)) Default: ignore IE hacks are only necessary when supporting IE7 and older. lsp-css-lint-import-statement # Type: (choice (const ignore) (const warning) (const error)) Default: ignore Import statements do not load in parallel. lsp-css-lint-important # Type: (choice (const ignore) (const warning) (const error)) Default: ignore lsp-css-lint-property-ignored-due-to-display # Type: (choice (const ignore) (const warning) (const error)) Default: warning lsp-css-lint-universal-selector # Type: (choice (const ignore) (const warning) (const error)) Default: ignore lsp-css-lint-unknown-at-rules # Type: (choice (const ignore) (const warning) (const error)) Default: warning Unknown at-rule. lsp-css-lint-unknown-properties # Type: (choice (const ignore) (const warning) (const error)) Default: warning Unknown property. lsp-css-lint-unknown-vendor-specific-properties # Type: (choice (const ignore) (const warning) (const error)) Default: ignore Unknown vendor specific property. lsp-css-lint-valid-properties # Type: (repeat string) Default: nil A list of properties that are not validated against the unknownProperties rule. lsp-css-lint-vendor-prefix # Type: (choice (const ignore) (const warning) (const error)) Default: warning When using a vendor-specific prefix, also include the standard property. lsp-css-lint-zero-units # Type: (choice (const ignore) (const warning) (const error)) Default: ignore No unit for zero needed. lsp-css-trace-server # Type: (choice (const off) (const messages) (const verbose)) Default: off Traces the communication between VS Code and the CSS language server. lsp-css-validate # Type: boolean Default: t Enables or disables all validations.","title":"CSS/LessCSS/SASS/SCSS"},{"location":"page/lsp-css/#csslesscsssassscss","text":"","title":"CSS/LessCSS/SASS/SCSS"},{"location":"page/lsp-css/#server","text":"For more information about the LSP server, check css .","title":"Server"},{"location":"page/lsp-css/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET css-ls RET . npm install -g vscode-langservers-extracted","title":"Installation"},{"location":"page/lsp-css/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-css/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-css/#lsp-css-completion-trigger-property-value-completion","text":"Type: boolean Default: t By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior.","title":"lsp-css-completion-trigger-property-value-completion"},{"location":"page/lsp-css/#lsp-css-experimental-custom-data","text":"Type: (repeat string) Default: nil A list of JSON file paths that define custom CSS data that loads custom properties, at directives, pseudo classes / elements.","title":"lsp-css-experimental-custom-data"},{"location":"page/lsp-css/#lsp-css-lint-arguments-in-color-function","text":"Type: (choice (const ignore) (const warning) (const error)) Default: error Invalid number of parameters.","title":"lsp-css-lint-arguments-in-color-function"},{"location":"page/lsp-css/#lsp-css-lint-box-model","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore","title":"lsp-css-lint-box-model"},{"location":"page/lsp-css/#lsp-css-lint-compatible-vendor-prefixes","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore When using a vendor-specific prefix make sure to also include all other vendor-specific properties.","title":"lsp-css-lint-compatible-vendor-prefixes"},{"location":"page/lsp-css/#lsp-css-lint-duplicate-properties","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore Do not use duplicate style definitions.","title":"lsp-css-lint-duplicate-properties"},{"location":"page/lsp-css/#lsp-css-lint-empty-rules","text":"Type: (choice (const ignore) (const warning) (const error)) Default: warning Do not use empty rulesets.","title":"lsp-css-lint-empty-rules"},{"location":"page/lsp-css/#lsp-css-lint-float","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore","title":"lsp-css-lint-float"},{"location":"page/lsp-css/#lsp-css-lint-font-face-properties","text":"Type: (choice (const ignore) (const warning) (const error)) Default: warning","title":"lsp-css-lint-font-face-properties"},{"location":"page/lsp-css/#lsp-css-lint-hex-color-length","text":"Type: (choice (const ignore) (const warning) (const error)) Default: error Hex colors must consist of three or six hex numbers.","title":"lsp-css-lint-hex-color-length"},{"location":"page/lsp-css/#lsp-css-lint-id-selector","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore Selectors should not contain IDs because these rules are too tightly coupled with the HTML.","title":"lsp-css-lint-id-selector"},{"location":"page/lsp-css/#lsp-css-lint-ie-hack","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore IE hacks are only necessary when supporting IE7 and older.","title":"lsp-css-lint-ie-hack"},{"location":"page/lsp-css/#lsp-css-lint-import-statement","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore Import statements do not load in parallel.","title":"lsp-css-lint-import-statement"},{"location":"page/lsp-css/#lsp-css-lint-important","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore","title":"lsp-css-lint-important"},{"location":"page/lsp-css/#lsp-css-lint-property-ignored-due-to-display","text":"Type: (choice (const ignore) (const warning) (const error)) Default: warning","title":"lsp-css-lint-property-ignored-due-to-display"},{"location":"page/lsp-css/#lsp-css-lint-universal-selector","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore","title":"lsp-css-lint-universal-selector"},{"location":"page/lsp-css/#lsp-css-lint-unknown-at-rules","text":"Type: (choice (const ignore) (const warning) (const error)) Default: warning Unknown at-rule.","title":"lsp-css-lint-unknown-at-rules"},{"location":"page/lsp-css/#lsp-css-lint-unknown-properties","text":"Type: (choice (const ignore) (const warning) (const error)) Default: warning Unknown property.","title":"lsp-css-lint-unknown-properties"},{"location":"page/lsp-css/#lsp-css-lint-unknown-vendor-specific-properties","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore Unknown vendor specific property.","title":"lsp-css-lint-unknown-vendor-specific-properties"},{"location":"page/lsp-css/#lsp-css-lint-valid-properties","text":"Type: (repeat string) Default: nil A list of properties that are not validated against the unknownProperties rule.","title":"lsp-css-lint-valid-properties"},{"location":"page/lsp-css/#lsp-css-lint-vendor-prefix","text":"Type: (choice (const ignore) (const warning) (const error)) Default: warning When using a vendor-specific prefix, also include the standard property.","title":"lsp-css-lint-vendor-prefix"},{"location":"page/lsp-css/#lsp-css-lint-zero-units","text":"Type: (choice (const ignore) (const warning) (const error)) Default: ignore No unit for zero needed.","title":"lsp-css-lint-zero-units"},{"location":"page/lsp-css/#lsp-css-trace-server","text":"Type: (choice (const off) (const messages) (const verbose)) Default: off Traces the communication between VS Code and the CSS language server.","title":"lsp-css-trace-server"},{"location":"page/lsp-css/#lsp-css-validate","text":"Type: boolean Default: t Enables or disables all validations.","title":"lsp-css-validate"},{"location":"page/lsp-d/","text":"D # Server # For more information about the LSP server, check serve-d . Installation # For more instructions on how to install manually, check here . Debugger: Yes # Available configurations #","title":"D"},{"location":"page/lsp-d/#d","text":"","title":"D"},{"location":"page/lsp-d/#server","text":"For more information about the LSP server, check serve-d .","title":"Server"},{"location":"page/lsp-d/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-d/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-d/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-deno/","text":"Javascript/Typescript (deno) # Server # For more information about the LSP server, check deno lsp . Installation # Debugger: Yes (Chrome) # Available configurations # lsp-clients-deno-config # Type: file Default: nil The file path to a tsconfig.json file. The path can be either be relative to the workspace, or an absolute path. Examples: ./tsconfig.json , /path/to/tsconfig.json , C:\\path\\to\\tsconfig.json lsp-clients-deno-enable-code-lens-implementations # Type: boolean Default: t Enables or disables the display of code lens information for implementations. lsp-clients-deno-enable-code-lens-references # Type: boolean Default: t Enables or disables the display of code lens information. lsp-clients-deno-enable-code-lens-references-all-functions # Type: boolean Default: t Enables or disables the display of code lens information for all functions. Setting this variable to non-nil implicitly enables lsp-clients-deno-enable-code-lens-references . lsp-clients-deno-enable-lint # Type: boolean Default: t Controls if linting information will be provided by the Deno Language Server. lsp-clients-deno-enable-unstable # Type: boolean Default: nil Controls if code will be type checked with Deno`s unstable APIs. lsp-clients-deno-import-map # Type: file Default: nil The file path to an import map. Import maps provide a way to relocate modules based on their specifiers. The path can either be relative to the workspace, or an absolute path. Examples: ./import-map.json , /path/to/import-map.json , C:\\path\\to\\import-map.json . lsp-clients-deno-server # Type: file Default: deno The Deno executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path . lsp-clients-deno-server-args # Type: (repeat string) Default: (lsp) Extra arguments for starting the Deno language server.","title":"Javascript/Typescript (deno)"},{"location":"page/lsp-deno/#javascripttypescript-deno","text":"","title":"Javascript/Typescript (deno)"},{"location":"page/lsp-deno/#server","text":"For more information about the LSP server, check deno lsp .","title":"Server"},{"location":"page/lsp-deno/#installation","text":"","title":"Installation"},{"location":"page/lsp-deno/#debugger-yes-chrome","text":"","title":"Debugger: Yes (Chrome)"},{"location":"page/lsp-deno/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-deno/#lsp-clients-deno-config","text":"Type: file Default: nil The file path to a tsconfig.json file. The path can be either be relative to the workspace, or an absolute path. Examples: ./tsconfig.json , /path/to/tsconfig.json , C:\\path\\to\\tsconfig.json","title":"lsp-clients-deno-config"},{"location":"page/lsp-deno/#lsp-clients-deno-enable-code-lens-implementations","text":"Type: boolean Default: t Enables or disables the display of code lens information for implementations.","title":"lsp-clients-deno-enable-code-lens-implementations"},{"location":"page/lsp-deno/#lsp-clients-deno-enable-code-lens-references","text":"Type: boolean Default: t Enables or disables the display of code lens information.","title":"lsp-clients-deno-enable-code-lens-references"},{"location":"page/lsp-deno/#lsp-clients-deno-enable-code-lens-references-all-functions","text":"Type: boolean Default: t Enables or disables the display of code lens information for all functions. Setting this variable to non-nil implicitly enables lsp-clients-deno-enable-code-lens-references .","title":"lsp-clients-deno-enable-code-lens-references-all-functions"},{"location":"page/lsp-deno/#lsp-clients-deno-enable-lint","text":"Type: boolean Default: t Controls if linting information will be provided by the Deno Language Server.","title":"lsp-clients-deno-enable-lint"},{"location":"page/lsp-deno/#lsp-clients-deno-enable-unstable","text":"Type: boolean Default: nil Controls if code will be type checked with Deno`s unstable APIs.","title":"lsp-clients-deno-enable-unstable"},{"location":"page/lsp-deno/#lsp-clients-deno-import-map","text":"Type: file Default: nil The file path to an import map. Import maps provide a way to relocate modules based on their specifiers. The path can either be relative to the workspace, or an absolute path. Examples: ./import-map.json , /path/to/import-map.json , C:\\path\\to\\import-map.json .","title":"lsp-clients-deno-import-map"},{"location":"page/lsp-deno/#lsp-clients-deno-server","text":"Type: file Default: deno The Deno executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path .","title":"lsp-clients-deno-server"},{"location":"page/lsp-deno/#lsp-clients-deno-server-args","text":"Type: (repeat string) Default: (lsp) Extra arguments for starting the Deno language server.","title":"lsp-clients-deno-server-args"},{"location":"page/lsp-dhall/","text":"Dhall # Server # For more information about the LSP server, check dhall-lsp-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Dhall"},{"location":"page/lsp-dhall/#dhall","text":"","title":"Dhall"},{"location":"page/lsp-dhall/#server","text":"For more information about the LSP server, check dhall-lsp-server .","title":"Server"},{"location":"page/lsp-dhall/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-dhall/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-dhall/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-dockerfile/","text":"Dockerfile # Server # For more information about the LSP server, check dockerfile-language-server-nodejs . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET dockerfile-ls RET . npm install -g dockerfile-language-server-nodejs Debugger: Not available # Available configurations # lsp-dockerfile-language-server-command # Type: (repeat :tag List of string values string) Default: (docker-langserver --stdio) The command that starts the docker language server.","title":"Dockerfile"},{"location":"page/lsp-dockerfile/#dockerfile","text":"","title":"Dockerfile"},{"location":"page/lsp-dockerfile/#server","text":"For more information about the LSP server, check dockerfile-language-server-nodejs .","title":"Server"},{"location":"page/lsp-dockerfile/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET dockerfile-ls RET . npm install -g dockerfile-language-server-nodejs","title":"Installation"},{"location":"page/lsp-dockerfile/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-dockerfile/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-dockerfile/#lsp-dockerfile-language-server-command","text":"Type: (repeat :tag List of string values string) Default: (docker-langserver --stdio) The command that starts the docker language server.","title":"lsp-dockerfile-language-server-command"},{"location":"page/lsp-dot/","text":"DOT # Server # For more information about the LSP server, check dot-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET dot-ls RET . npm install -g dot-language-server Debugger: Not available # Available configurations #","title":"Lsp dot"},{"location":"page/lsp-dot/#dot","text":"","title":"DOT"},{"location":"page/lsp-dot/#server","text":"For more information about the LSP server, check dot-language-server .","title":"Server"},{"location":"page/lsp-dot/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET dot-ls RET . npm install -g dot-language-server","title":"Installation"},{"location":"page/lsp-dot/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-dot/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-elixir/","text":"Elixir # Server # For more information about the LSP server, check elixir-lsp/elixir-ls . Installation # For more instructions on how to install manually, check here . Debugger: Yes # Available configurations # lsp-elixir-dialyzer-enabled # Type: boolean Default: t Run ElixirLS`s rapid Dialyzer when code is saved. lsp-elixir-dialyzer-format # Type: string Default: dialyxir_long Formatter to use for Dialyzer warnings. lsp-elixir-dialyzer-warn-opts # Type: (repeat string) Default: nil Dialyzer options to enable or disable warnings. See Dialyzer`s documentation for options. Note that the \"race_conditions\" option is unsupported lsp-elixir-enable-test-lenses # Type: boolean Default: t Suggest Tests. lsp-elixir-fetch-deps # Type: boolean Default: nil Automatically fetch project dependencies when compiling. lsp-elixir-local-server-command # Type: (repeat string) Default: /home/runner/.emacs.d/.cache/lsp/elixir-ls/language_server.sh Command to start local elixir-ls binary. lsp-elixir-ls-download-url # Type: string Default: https://github.com/elixir-lsp/elixir-ls/releases/download/v0.16.0/elixir-ls-v0.16.0.zip Automatic download url for elixir-ls lsp-elixir-ls-version # Type: string Default: v0.16.0 Elixir-Ls version to download. It has to be set before lsp-elixir.el is loaded and it has to be available here: https://github.com/elixir-lsp/elixir-ls/releases/ lsp-elixir-mix-env # Type: string Default: test Mix environment to use for compilation. lsp-elixir-mix-target # Type: string Default: nil Mix target to use for compilation (requires Elixir >= 1.8). lsp-elixir-project-dir # Type: string Default: nil Subdirectory containing Mix project if not in the project root. If value is \"\" then defaults to the workspace rootUri. lsp-elixir-server-command # Type: (repeat string) Default: (language_server.sh) Command to start elixir-ls. Leave as default to let executable-find search for it. lsp-elixir-signature-after-complete # Type: boolean Default: t Show signature help after confirming autocomplete. lsp-elixir-suggest-specs # Type: boolean Default: t Suggest @spec annotations inline using Dialyzer`s inferred success typings. This requires Dialyzer.","title":"Elixir"},{"location":"page/lsp-elixir/#elixir","text":"","title":"Elixir"},{"location":"page/lsp-elixir/#server","text":"For more information about the LSP server, check elixir-lsp/elixir-ls .","title":"Server"},{"location":"page/lsp-elixir/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-elixir/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-elixir/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-elixir/#lsp-elixir-dialyzer-enabled","text":"Type: boolean Default: t Run ElixirLS`s rapid Dialyzer when code is saved.","title":"lsp-elixir-dialyzer-enabled"},{"location":"page/lsp-elixir/#lsp-elixir-dialyzer-format","text":"Type: string Default: dialyxir_long Formatter to use for Dialyzer warnings.","title":"lsp-elixir-dialyzer-format"},{"location":"page/lsp-elixir/#lsp-elixir-dialyzer-warn-opts","text":"Type: (repeat string) Default: nil Dialyzer options to enable or disable warnings. See Dialyzer`s documentation for options. Note that the \"race_conditions\" option is unsupported","title":"lsp-elixir-dialyzer-warn-opts"},{"location":"page/lsp-elixir/#lsp-elixir-enable-test-lenses","text":"Type: boolean Default: t Suggest Tests.","title":"lsp-elixir-enable-test-lenses"},{"location":"page/lsp-elixir/#lsp-elixir-fetch-deps","text":"Type: boolean Default: nil Automatically fetch project dependencies when compiling.","title":"lsp-elixir-fetch-deps"},{"location":"page/lsp-elixir/#lsp-elixir-local-server-command","text":"Type: (repeat string) Default: /home/runner/.emacs.d/.cache/lsp/elixir-ls/language_server.sh Command to start local elixir-ls binary.","title":"lsp-elixir-local-server-command"},{"location":"page/lsp-elixir/#lsp-elixir-ls-download-url","text":"Type: string Default: https://github.com/elixir-lsp/elixir-ls/releases/download/v0.16.0/elixir-ls-v0.16.0.zip Automatic download url for elixir-ls","title":"lsp-elixir-ls-download-url"},{"location":"page/lsp-elixir/#lsp-elixir-ls-version","text":"Type: string Default: v0.16.0 Elixir-Ls version to download. It has to be set before lsp-elixir.el is loaded and it has to be available here: https://github.com/elixir-lsp/elixir-ls/releases/","title":"lsp-elixir-ls-version"},{"location":"page/lsp-elixir/#lsp-elixir-mix-env","text":"Type: string Default: test Mix environment to use for compilation.","title":"lsp-elixir-mix-env"},{"location":"page/lsp-elixir/#lsp-elixir-mix-target","text":"Type: string Default: nil Mix target to use for compilation (requires Elixir >= 1.8).","title":"lsp-elixir-mix-target"},{"location":"page/lsp-elixir/#lsp-elixir-project-dir","text":"Type: string Default: nil Subdirectory containing Mix project if not in the project root. If value is \"\" then defaults to the workspace rootUri.","title":"lsp-elixir-project-dir"},{"location":"page/lsp-elixir/#lsp-elixir-server-command","text":"Type: (repeat string) Default: (language_server.sh) Command to start elixir-ls. Leave as default to let executable-find search for it.","title":"lsp-elixir-server-command"},{"location":"page/lsp-elixir/#lsp-elixir-signature-after-complete","text":"Type: boolean Default: t Show signature help after confirming autocomplete.","title":"lsp-elixir-signature-after-complete"},{"location":"page/lsp-elixir/#lsp-elixir-suggest-specs","text":"Type: boolean Default: t Suggest @spec annotations inline using Dialyzer`s inferred success typings. This requires Dialyzer.","title":"lsp-elixir-suggest-specs"},{"location":"page/lsp-elm/","text":"Elm # Server # For more information about the LSP server, check elmLS . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET elm-ls RET . npm i -g @elm-tooling/elm-language-server, or clone the repository and follow installation instructions Debugger: Not available # Available configurations # lsp-elm-disable-elmls-diagnostics # Type: boolean Default: nil Enable/Disable linting diagnostics from the language server. lsp-elm-elm-format-path # Type: file Default: `` The path to your elm-format executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder. lsp-elm-elm-language-server-path # Type: file Default: nil Path for elm-language-server. Can be installed globally with: npm i -g @elm-tooling/elm-language-server, or manually by cloning the repo and following the installing instructions. lsp-elm-elm-path # Type: file Default: `` The path to your elm executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder. lsp-elm-elm-test-path # Type: file Default: `` The path to your elm-test executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder. lsp-elm-only-update-diagnostics-on-save # Type: boolean Default: nil Only update compiler diagnostics on save, not on document change. lsp-elm-server-args # Type: (repeat string) Default: (--stdio) Arguments to pass to the server. lsp-elm-skip-install-package-confirmation # Type: boolean Default: nil Skip confirmation for the Install Package code action. lsp-elm-trace-server # Type: boolean Default: nil Enable/disable trace logging of client and server communication.","title":"Elm"},{"location":"page/lsp-elm/#elm","text":"","title":"Elm"},{"location":"page/lsp-elm/#server","text":"For more information about the LSP server, check elmLS .","title":"Server"},{"location":"page/lsp-elm/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET elm-ls RET . npm i -g @elm-tooling/elm-language-server, or clone the repository and follow installation instructions","title":"Installation"},{"location":"page/lsp-elm/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-elm/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-elm/#lsp-elm-disable-elmls-diagnostics","text":"Type: boolean Default: nil Enable/Disable linting diagnostics from the language server.","title":"lsp-elm-disable-elmls-diagnostics"},{"location":"page/lsp-elm/#lsp-elm-elm-format-path","text":"Type: file Default: `` The path to your elm-format executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder.","title":"lsp-elm-elm-format-path"},{"location":"page/lsp-elm/#lsp-elm-elm-language-server-path","text":"Type: file Default: nil Path for elm-language-server. Can be installed globally with: npm i -g @elm-tooling/elm-language-server, or manually by cloning the repo and following the installing instructions.","title":"lsp-elm-elm-language-server-path"},{"location":"page/lsp-elm/#lsp-elm-elm-path","text":"Type: file Default: `` The path to your elm executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder.","title":"lsp-elm-elm-path"},{"location":"page/lsp-elm/#lsp-elm-elm-test-path","text":"Type: file Default: `` The path to your elm-test executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder.","title":"lsp-elm-elm-test-path"},{"location":"page/lsp-elm/#lsp-elm-only-update-diagnostics-on-save","text":"Type: boolean Default: nil Only update compiler diagnostics on save, not on document change.","title":"lsp-elm-only-update-diagnostics-on-save"},{"location":"page/lsp-elm/#lsp-elm-server-args","text":"Type: (repeat string) Default: (--stdio) Arguments to pass to the server.","title":"lsp-elm-server-args"},{"location":"page/lsp-elm/#lsp-elm-skip-install-package-confirmation","text":"Type: boolean Default: nil Skip confirmation for the Install Package code action.","title":"lsp-elm-skip-install-package-confirmation"},{"location":"page/lsp-elm/#lsp-elm-trace-server","text":"Type: boolean Default: nil Enable/disable trace logging of client and server communication.","title":"lsp-elm-trace-server"},{"location":"page/lsp-emmet/","text":"Emmet # Server # For more information about the LSP server, check emmet-ls . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET emmet-ls RET . npm i -g emmet-ls Debugger: Not available # Available configurations #","title":"Emmet"},{"location":"page/lsp-emmet/#emmet","text":"","title":"Emmet"},{"location":"page/lsp-emmet/#server","text":"For more information about the LSP server, check emmet-ls .","title":"Server"},{"location":"page/lsp-emmet/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET emmet-ls RET . npm i -g emmet-ls","title":"Installation"},{"location":"page/lsp-emmet/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-emmet/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-emmy-lua/","text":"Lua # Server # For more information about the LSP server, check EmmyLua . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-emmy-lua-args # Type: (repeat string) Default: (-jar) Arguments to the Lua Language server. lsp-clients-emmy-lua-command # Type: (repeat string) Default: nil Final command to call the Lua Language server. lsp-clients-emmy-lua-jar-path # Type: file Default: ~/.emacs.d/.cache/lsp/EmmyLua-LS-all.jar Emmy Lua language server jar file. lsp-clients-emmy-lua-java-path # Type: file Default: java Java Runtime binary location.","title":"Lua (EmmyLua)"},{"location":"page/lsp-emmy-lua/#lua","text":"","title":"Lua"},{"location":"page/lsp-emmy-lua/#server","text":"For more information about the LSP server, check EmmyLua .","title":"Server"},{"location":"page/lsp-emmy-lua/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-emmy-lua/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-emmy-lua/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-emmy-lua/#lsp-clients-emmy-lua-args","text":"Type: (repeat string) Default: (-jar) Arguments to the Lua Language server.","title":"lsp-clients-emmy-lua-args"},{"location":"page/lsp-emmy-lua/#lsp-clients-emmy-lua-command","text":"Type: (repeat string) Default: nil Final command to call the Lua Language server.","title":"lsp-clients-emmy-lua-command"},{"location":"page/lsp-emmy-lua/#lsp-clients-emmy-lua-jar-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/EmmyLua-LS-all.jar Emmy Lua language server jar file.","title":"lsp-clients-emmy-lua-jar-path"},{"location":"page/lsp-emmy-lua/#lsp-clients-emmy-lua-java-path","text":"Type: file Default: java Java Runtime binary location.","title":"lsp-clients-emmy-lua-java-path"},{"location":"page/lsp-erlang-elp/","text":"Erlang # Server # For more information about the LSP server, check elp . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-erlang-elp-download-url # Type: string Default: https://github.com/WhatsApp/erlang-language-platform/releases/latest/download/elp-linux-x86_64-unknown-linux-gnu-otp-26.tar.gz Automatic download url for erlang-language-platform. lsp-erlang-elp-server-command # Type: (repeat string) Default: (elp server) Command to start erlang-language-platform. lsp-erlang-elp-store-path # Type: file Default: ~/.emacs.d/.cache/lsp/erlang/elp The path to the file in which elp will be stored.","title":"Lsp erlang elp"},{"location":"page/lsp-erlang-elp/#erlang","text":"","title":"Erlang"},{"location":"page/lsp-erlang-elp/#server","text":"For more information about the LSP server, check elp .","title":"Server"},{"location":"page/lsp-erlang-elp/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-erlang-elp/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-erlang-elp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-erlang-elp/#lsp-erlang-elp-download-url","text":"Type: string Default: https://github.com/WhatsApp/erlang-language-platform/releases/latest/download/elp-linux-x86_64-unknown-linux-gnu-otp-26.tar.gz Automatic download url for erlang-language-platform.","title":"lsp-erlang-elp-download-url"},{"location":"page/lsp-erlang-elp/#lsp-erlang-elp-server-command","text":"Type: (repeat string) Default: (elp server) Command to start erlang-language-platform.","title":"lsp-erlang-elp-server-command"},{"location":"page/lsp-erlang-elp/#lsp-erlang-elp-store-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/erlang/elp The path to the file in which elp will be stored.","title":"lsp-erlang-elp-store-path"},{"location":"page/lsp-erlang-ls/","text":"Erlang # Server # For more information about the LSP server, check erlang_ls . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-erlang-ls-server-connection-type # Type: symbol Default: stdio Type of connection to use with the Erlang Language Server: tcp or stdio. lsp-erlang-ls-server-path # Type: file Default: erlang_ls Path to the Erlang Language Server binary.","title":"Lsp erlang ls"},{"location":"page/lsp-erlang-ls/#erlang","text":"","title":"Erlang"},{"location":"page/lsp-erlang-ls/#server","text":"For more information about the LSP server, check erlang_ls .","title":"Server"},{"location":"page/lsp-erlang-ls/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-erlang-ls/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-erlang-ls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-erlang-ls/#lsp-erlang-ls-server-connection-type","text":"Type: symbol Default: stdio Type of connection to use with the Erlang Language Server: tcp or stdio.","title":"lsp-erlang-ls-server-connection-type"},{"location":"page/lsp-erlang-ls/#lsp-erlang-ls-server-path","text":"Type: file Default: erlang_ls Path to the Erlang Language Server binary.","title":"lsp-erlang-ls-server-path"},{"location":"page/lsp-eslint/","text":"ESlint # Server # For more information about the LSP server, check eslint . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET eslint RET . Debugger: N/A # Available configurations # lsp-eslint-auto-fix-on-save # Type: boolean Default: nil Turns auto fix on save on or off. lsp-eslint-code-action-disable-rule-comment # Type: bool Default: t Controls whether code actions to add a rule-disabling comment should be shown. lsp-eslint-code-action-disable-rule-comment-location # Type: (choice (const separateLine) (const sameLine)) Default: separateLine Controls where the disable rule code action places comments. Accepts the following values: - \"separateLine\": Add the comment above the line to be disabled (default). - \"sameLine\": Add the comment on the same line that will be disabled. lsp-eslint-code-action-show-documentation # Type: bool Default: t Controls whether code actions to show documentation for an eslint rule should be shown. lsp-eslint-config-problems # Type: alist Default: nil The eslint problems configuration. lsp-eslint-download-url # Type: string Default: https://github.com/emacs-lsp/lsp-server-binaries/blob/master/dbaeumer.vscode-eslint-2.2.2.vsix?raw=true Eslint language server download url. lsp-eslint-enable # Type: boolean Default: t Controls whether eslint is enabled for JavaScript files or not. lsp-eslint-experimental # Type: alist Default: nil The eslint experimental configuration. lsp-eslint-experimental-incremental-sync # Type: boolean Default: t Controls whether the new incremental text document synchronization should be used. lsp-eslint-fix-all-problem-type # Type: (choice (const all) (const problems) string) Default: all Determines which problems are fixed when running the source.fixAll code action. lsp-eslint-format # Type: boolean Default: t Whether to perform format. lsp-eslint-library-choices-file # Type: string Default: /home/runner/.emacs.d/.lsp-eslint-choices The file where choices to permit or deny ESLint libraries from running is stored. lsp-eslint-lint-task-enable # Type: boolean Default: nil Controls whether a task for linting the whole workspace will be available. lsp-eslint-lint-task-options # Type: string Default: . Command line options applied when running the task for linting the whole workspace (see https://eslint.org/docs/user-guide/command-line-interface). lsp-eslint-node # Type: file Default: node Path to nodejs. lsp-eslint-node-path # Type: (repeat string) Default: nil A path added to NODE_PATH when resolving the eslint module. lsp-eslint-options # Type: alist Default: nil The eslint options object to provide args normally passed to eslint when executed from a command line (see http://eslint.org/docs/developer-guide/nodejs-api#cliengine). lsp-eslint-package-manager # Type: (choice (const :tag npm npm) (const :tag yarn yarn) (const :tag pnpm pnpm) (string :tag other)) Default: npm The package manager you use to install node modules. lsp-eslint-provide-lint-task # Type: boolean Default: nil Controls whether a task for linting the whole workspace will be available. lsp-eslint-quiet # Type: boolean Default: nil Turns on quiet mode, which ignores warnings. lsp-eslint-rules-customizations # Type: (lsp-repeatable-vector (alist :options ((rule string) (severity (choice (const off) (const info) (const warn) (const error) (const upgrade) (const downgrade) (const default)))))) Default: [] Controls severity overrides for eslint rules. The value is a vector of alists, with each alist containing the following keys: - rule - The rule to match. Can match wildcards with *, or be prefixed with ! to negate the match. - severity - The severity to report this rule as. Can be one of the following: - \"off\": Disable the rule. - \"info\": Report as informational. - \"warn\": Report as a warning. - \"error\": Report as an error. - \"upgrade\": Increase by 1 severity level (eg. warning -> error). - \"downgrade\": Decrease by 1 severity level (eg. warning -> info). - \"default\": Report as the same severity specified in the eslint config. lsp-eslint-run # Type: (choice (const :tag onSave onSave) (const :tag onType onType)) Default: onType Run the linter on save (onSave) or on type (onType) lsp-eslint-runtime # Type: (repeat string) Default: nil The location of the node binary to run ESLint under. lsp-eslint-save-library-choices # Type: boolean Default: t Controls whether to remember choices made to permit or deny ESLint libraries from running. lsp-eslint-server-command # Type: (repeat string) Default: (node ~/server/out/eslintServer.js --stdio) Command to start eslint server. lsp-eslint-time-budget # Type: alist Default: nil The eslint config to inform you of slow validation times and long ESLint runs when computing code fixes during save. lsp-eslint-trace-server # Type: string Default: off Traces the communication between VSCode and the eslint linter service. lsp-eslint-unzipped-path # Type: file Default: ~/.emacs.d/.cache/lsp/eslint/unzipped The path to the file in which eslint will be stored. lsp-eslint-validate # Type: (repeat string) Default: (svelte) An array of language ids which should always be validated by eslint. lsp-eslint-warn-on-ignored-files # Type: bool Default: nil Controls whether a warning should be emitted when a file is ignored. lsp-eslint-working-directories # Type: lsp-string-vector Default: [] A vector of working directory names to use. Can be a pattern, an absolute path or a path relative to the workspace. Examples: - \"/home/user/abc/\" - \"abc/\" - (directory \"abc\") which is equivalent to \"abc\" above - (pattern \"abc/*\") Note that the home directory reference ~/ is not currently supported, use /home/[user]/ instead.","title":"Eslint"},{"location":"page/lsp-eslint/#eslint","text":"","title":"ESlint"},{"location":"page/lsp-eslint/#server","text":"For more information about the LSP server, check eslint .","title":"Server"},{"location":"page/lsp-eslint/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET eslint RET .","title":"Installation"},{"location":"page/lsp-eslint/#debugger-na","text":"","title":"Debugger: N/A"},{"location":"page/lsp-eslint/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-eslint/#lsp-eslint-auto-fix-on-save","text":"Type: boolean Default: nil Turns auto fix on save on or off.","title":"lsp-eslint-auto-fix-on-save"},{"location":"page/lsp-eslint/#lsp-eslint-code-action-disable-rule-comment","text":"Type: bool Default: t Controls whether code actions to add a rule-disabling comment should be shown.","title":"lsp-eslint-code-action-disable-rule-comment"},{"location":"page/lsp-eslint/#lsp-eslint-code-action-disable-rule-comment-location","text":"Type: (choice (const separateLine) (const sameLine)) Default: separateLine Controls where the disable rule code action places comments. Accepts the following values: - \"separateLine\": Add the comment above the line to be disabled (default). - \"sameLine\": Add the comment on the same line that will be disabled.","title":"lsp-eslint-code-action-disable-rule-comment-location"},{"location":"page/lsp-eslint/#lsp-eslint-code-action-show-documentation","text":"Type: bool Default: t Controls whether code actions to show documentation for an eslint rule should be shown.","title":"lsp-eslint-code-action-show-documentation"},{"location":"page/lsp-eslint/#lsp-eslint-config-problems","text":"Type: alist Default: nil The eslint problems configuration.","title":"lsp-eslint-config-problems"},{"location":"page/lsp-eslint/#lsp-eslint-download-url","text":"Type: string Default: https://github.com/emacs-lsp/lsp-server-binaries/blob/master/dbaeumer.vscode-eslint-2.2.2.vsix?raw=true Eslint language server download url.","title":"lsp-eslint-download-url"},{"location":"page/lsp-eslint/#lsp-eslint-enable","text":"Type: boolean Default: t Controls whether eslint is enabled for JavaScript files or not.","title":"lsp-eslint-enable"},{"location":"page/lsp-eslint/#lsp-eslint-experimental","text":"Type: alist Default: nil The eslint experimental configuration.","title":"lsp-eslint-experimental"},{"location":"page/lsp-eslint/#lsp-eslint-experimental-incremental-sync","text":"Type: boolean Default: t Controls whether the new incremental text document synchronization should be used.","title":"lsp-eslint-experimental-incremental-sync"},{"location":"page/lsp-eslint/#lsp-eslint-fix-all-problem-type","text":"Type: (choice (const all) (const problems) string) Default: all Determines which problems are fixed when running the source.fixAll code action.","title":"lsp-eslint-fix-all-problem-type"},{"location":"page/lsp-eslint/#lsp-eslint-format","text":"Type: boolean Default: t Whether to perform format.","title":"lsp-eslint-format"},{"location":"page/lsp-eslint/#lsp-eslint-library-choices-file","text":"Type: string Default: /home/runner/.emacs.d/.lsp-eslint-choices The file where choices to permit or deny ESLint libraries from running is stored.","title":"lsp-eslint-library-choices-file"},{"location":"page/lsp-eslint/#lsp-eslint-lint-task-enable","text":"Type: boolean Default: nil Controls whether a task for linting the whole workspace will be available.","title":"lsp-eslint-lint-task-enable"},{"location":"page/lsp-eslint/#lsp-eslint-lint-task-options","text":"Type: string Default: . Command line options applied when running the task for linting the whole workspace (see https://eslint.org/docs/user-guide/command-line-interface).","title":"lsp-eslint-lint-task-options"},{"location":"page/lsp-eslint/#lsp-eslint-node","text":"Type: file Default: node Path to nodejs.","title":"lsp-eslint-node"},{"location":"page/lsp-eslint/#lsp-eslint-node-path","text":"Type: (repeat string) Default: nil A path added to NODE_PATH when resolving the eslint module.","title":"lsp-eslint-node-path"},{"location":"page/lsp-eslint/#lsp-eslint-options","text":"Type: alist Default: nil The eslint options object to provide args normally passed to eslint when executed from a command line (see http://eslint.org/docs/developer-guide/nodejs-api#cliengine).","title":"lsp-eslint-options"},{"location":"page/lsp-eslint/#lsp-eslint-package-manager","text":"Type: (choice (const :tag npm npm) (const :tag yarn yarn) (const :tag pnpm pnpm) (string :tag other)) Default: npm The package manager you use to install node modules.","title":"lsp-eslint-package-manager"},{"location":"page/lsp-eslint/#lsp-eslint-provide-lint-task","text":"Type: boolean Default: nil Controls whether a task for linting the whole workspace will be available.","title":"lsp-eslint-provide-lint-task"},{"location":"page/lsp-eslint/#lsp-eslint-quiet","text":"Type: boolean Default: nil Turns on quiet mode, which ignores warnings.","title":"lsp-eslint-quiet"},{"location":"page/lsp-eslint/#lsp-eslint-rules-customizations","text":"Type: (lsp-repeatable-vector (alist :options ((rule string) (severity (choice (const off) (const info) (const warn) (const error) (const upgrade) (const downgrade) (const default)))))) Default: [] Controls severity overrides for eslint rules. The value is a vector of alists, with each alist containing the following keys: - rule - The rule to match. Can match wildcards with *, or be prefixed with ! to negate the match. - severity - The severity to report this rule as. Can be one of the following: - \"off\": Disable the rule. - \"info\": Report as informational. - \"warn\": Report as a warning. - \"error\": Report as an error. - \"upgrade\": Increase by 1 severity level (eg. warning -> error). - \"downgrade\": Decrease by 1 severity level (eg. warning -> info). - \"default\": Report as the same severity specified in the eslint config.","title":"lsp-eslint-rules-customizations"},{"location":"page/lsp-eslint/#lsp-eslint-run","text":"Type: (choice (const :tag onSave onSave) (const :tag onType onType)) Default: onType Run the linter on save (onSave) or on type (onType)","title":"lsp-eslint-run"},{"location":"page/lsp-eslint/#lsp-eslint-runtime","text":"Type: (repeat string) Default: nil The location of the node binary to run ESLint under.","title":"lsp-eslint-runtime"},{"location":"page/lsp-eslint/#lsp-eslint-save-library-choices","text":"Type: boolean Default: t Controls whether to remember choices made to permit or deny ESLint libraries from running.","title":"lsp-eslint-save-library-choices"},{"location":"page/lsp-eslint/#lsp-eslint-server-command","text":"Type: (repeat string) Default: (node ~/server/out/eslintServer.js --stdio) Command to start eslint server.","title":"lsp-eslint-server-command"},{"location":"page/lsp-eslint/#lsp-eslint-time-budget","text":"Type: alist Default: nil The eslint config to inform you of slow validation times and long ESLint runs when computing code fixes during save.","title":"lsp-eslint-time-budget"},{"location":"page/lsp-eslint/#lsp-eslint-trace-server","text":"Type: string Default: off Traces the communication between VSCode and the eslint linter service.","title":"lsp-eslint-trace-server"},{"location":"page/lsp-eslint/#lsp-eslint-unzipped-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/eslint/unzipped The path to the file in which eslint will be stored.","title":"lsp-eslint-unzipped-path"},{"location":"page/lsp-eslint/#lsp-eslint-validate","text":"Type: (repeat string) Default: (svelte) An array of language ids which should always be validated by eslint.","title":"lsp-eslint-validate"},{"location":"page/lsp-eslint/#lsp-eslint-warn-on-ignored-files","text":"Type: bool Default: nil Controls whether a warning should be emitted when a file is ignored.","title":"lsp-eslint-warn-on-ignored-files"},{"location":"page/lsp-eslint/#lsp-eslint-working-directories","text":"Type: lsp-string-vector Default: [] A vector of working directory names to use. Can be a pattern, an absolute path or a path relative to the workspace. Examples: - \"/home/user/abc/\" - \"abc/\" - (directory \"abc\") which is equivalent to \"abc\" above - (pattern \"abc/*\") Note that the home directory reference ~/ is not currently supported, use /home/[user]/ instead.","title":"lsp-eslint-working-directories"},{"location":"page/lsp-flow/","text":"JavaScript Flow # Server # For more information about the LSP server, check flow . Installation # For more instructions on how to install manually, check here . Debugger: Yes (Firefox/Chrome) # Available configurations # lsp-clients-flow-server # Type: file Default: flow The Flow executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path . lsp-clients-flow-server-args # Type: (repeat string) Default: (lsp) Extra arguments for starting the Flow language server.","title":"JavaScript Flow"},{"location":"page/lsp-flow/#javascript-flow","text":"","title":"JavaScript Flow"},{"location":"page/lsp-flow/#server","text":"For more information about the LSP server, check flow .","title":"Server"},{"location":"page/lsp-flow/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-flow/#debugger-yes-firefoxchrome","text":"","title":"Debugger: Yes (Firefox/Chrome)"},{"location":"page/lsp-flow/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-flow/#lsp-clients-flow-server","text":"Type: file Default: flow The Flow executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path .","title":"lsp-clients-flow-server"},{"location":"page/lsp-flow/#lsp-clients-flow-server-args","text":"Type: (repeat string) Default: (lsp) Extra arguments for starting the Flow language server.","title":"lsp-clients-flow-server-args"},{"location":"page/lsp-fortran/","text":"Fortran # Server # For more information about the LSP server, check fortls . Installation # pip install fortls Debugger: Yes # Available configurations # lsp-clients-fortls-args # Type: (repeat string) Default: nil Extra arguments for the fortls executable lsp-clients-fortls-executable # Type: file Default: fortls The fortls executable to use. Leave as just the executable name to use the default behavior of finding the executable with exec-path .","title":"Fortran"},{"location":"page/lsp-fortran/#fortran","text":"","title":"Fortran"},{"location":"page/lsp-fortran/#server","text":"For more information about the LSP server, check fortls .","title":"Server"},{"location":"page/lsp-fortran/#installation","text":"pip install fortls","title":"Installation"},{"location":"page/lsp-fortran/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-fortran/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-fortran/#lsp-clients-fortls-args","text":"Type: (repeat string) Default: nil Extra arguments for the fortls executable","title":"lsp-clients-fortls-args"},{"location":"page/lsp-fortran/#lsp-clients-fortls-executable","text":"Type: file Default: fortls The fortls executable to use. Leave as just the executable name to use the default behavior of finding the executable with exec-path .","title":"lsp-clients-fortls-executable"},{"location":"page/lsp-fsharp/","text":"F# # Server # For more information about the LSP server, check fsautocomplete . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET fsac RET . Automatic by lsp-mode Debugger: Yes (netcoredbg) # Available configurations # lsp-fsharp-auto-workspace-init # Type: boolean Default: nil Enable automatic workspace initialization. Do note that this can cause unexpected or challenging behaviors, as solutions with test projects are not autoloaded by FSharpAutoComplete. lsp-fsharp-enable-reference-code-lens # Type: boolean Default: t Enables reference count code lenses. lsp-fsharp-external-autocomplete # Type: boolean Default: nil Provides autocompletion for symbols from not opened namespaces/modules; inserts open on accept. lsp-fsharp-generate-binlog # Type: boolean Default: nil Generate a binlog for debugging project cracking. lsp-fsharp-interface-stub-generation # Type: boolean Default: t Enables code action to generate an interface stub. lsp-fsharp-interface-stub-generation-method-body # Type: string Default: failwith \"Not Implemented\" Defines dummy body used by interface stub generator. lsp-fsharp-interface-stub-generation-object-identifier # Type: string Default: this Defines object identifier used by interface stub generator, e.g. this or self . lsp-fsharp-keywords-autocomplete # Type: boolean Default: t Provides keywords in autocomplete list. lsp-fsharp-linter # Type: boolean Default: t Enables FSharpLint integration, provides additional warnings and code action fixes. lsp-fsharp-record-stub-generation # Type: boolean Default: t Enables code action to generate record stub. lsp-fsharp-record-stub-generation-body # Type: string Default: failwith \"Not Implemented\" Defines dummy body used by record stub generator. lsp-fsharp-resolve-namespaces # Type: boolean Default: t Enables resolve namespace quick fix; adds open if symbol is from not yet opened module/namespace. lsp-fsharp-server-args # Type: (repeat string) Default: nil Extra arguments for the F# language server. lsp-fsharp-server-install-dir # Type: directory Default: ~/.emacs.d/.cache/lsp/fsautocomplete/ Install directory for fsautocomplete server. The slash is expected at the end. lsp-fsharp-simplify-name-analyzer # Type: boolean Default: nil Enables simplify name analyzer and remove redundant qualifier quick fix. lsp-fsharp-union-case-stub-generation # Type: boolean Default: t Enables a code action to generate pattern matching cases. lsp-fsharp-union-case-stub-generation-body # Type: string Default: failwith \"Not Implemented\" Defines dummy body used by pattern matching generator. lsp-fsharp-unused-declarations-analyzer # Type: boolean Default: t Enables unused symbol detection. lsp-fsharp-unused-opens-analyzer # Type: boolean Default: t Enables unused open detection. lsp-fsharp-use-dotnet-tool-for-fsac # Type: boolean Default: t Run FsAutoComplete as a dotnet tool. The binary will be invoked via \"dotnet fsautocomplete\" in the project`s root directory, which will run a project-local tool if available, else the globally installed tool.","title":"F#"},{"location":"page/lsp-fsharp/#f","text":"","title":"F#"},{"location":"page/lsp-fsharp/#server","text":"For more information about the LSP server, check fsautocomplete .","title":"Server"},{"location":"page/lsp-fsharp/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET fsac RET . Automatic by lsp-mode","title":"Installation"},{"location":"page/lsp-fsharp/#debugger-yes-netcoredbg","text":"","title":"Debugger: Yes (netcoredbg)"},{"location":"page/lsp-fsharp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-fsharp/#lsp-fsharp-auto-workspace-init","text":"Type: boolean Default: nil Enable automatic workspace initialization. Do note that this can cause unexpected or challenging behaviors, as solutions with test projects are not autoloaded by FSharpAutoComplete.","title":"lsp-fsharp-auto-workspace-init"},{"location":"page/lsp-fsharp/#lsp-fsharp-enable-reference-code-lens","text":"Type: boolean Default: t Enables reference count code lenses.","title":"lsp-fsharp-enable-reference-code-lens"},{"location":"page/lsp-fsharp/#lsp-fsharp-external-autocomplete","text":"Type: boolean Default: nil Provides autocompletion for symbols from not opened namespaces/modules; inserts open on accept.","title":"lsp-fsharp-external-autocomplete"},{"location":"page/lsp-fsharp/#lsp-fsharp-generate-binlog","text":"Type: boolean Default: nil Generate a binlog for debugging project cracking.","title":"lsp-fsharp-generate-binlog"},{"location":"page/lsp-fsharp/#lsp-fsharp-interface-stub-generation","text":"Type: boolean Default: t Enables code action to generate an interface stub.","title":"lsp-fsharp-interface-stub-generation"},{"location":"page/lsp-fsharp/#lsp-fsharp-interface-stub-generation-method-body","text":"Type: string Default: failwith \"Not Implemented\" Defines dummy body used by interface stub generator.","title":"lsp-fsharp-interface-stub-generation-method-body"},{"location":"page/lsp-fsharp/#lsp-fsharp-interface-stub-generation-object-identifier","text":"Type: string Default: this Defines object identifier used by interface stub generator, e.g. this or self .","title":"lsp-fsharp-interface-stub-generation-object-identifier"},{"location":"page/lsp-fsharp/#lsp-fsharp-keywords-autocomplete","text":"Type: boolean Default: t Provides keywords in autocomplete list.","title":"lsp-fsharp-keywords-autocomplete"},{"location":"page/lsp-fsharp/#lsp-fsharp-linter","text":"Type: boolean Default: t Enables FSharpLint integration, provides additional warnings and code action fixes.","title":"lsp-fsharp-linter"},{"location":"page/lsp-fsharp/#lsp-fsharp-record-stub-generation","text":"Type: boolean Default: t Enables code action to generate record stub.","title":"lsp-fsharp-record-stub-generation"},{"location":"page/lsp-fsharp/#lsp-fsharp-record-stub-generation-body","text":"Type: string Default: failwith \"Not Implemented\" Defines dummy body used by record stub generator.","title":"lsp-fsharp-record-stub-generation-body"},{"location":"page/lsp-fsharp/#lsp-fsharp-resolve-namespaces","text":"Type: boolean Default: t Enables resolve namespace quick fix; adds open if symbol is from not yet opened module/namespace.","title":"lsp-fsharp-resolve-namespaces"},{"location":"page/lsp-fsharp/#lsp-fsharp-server-args","text":"Type: (repeat string) Default: nil Extra arguments for the F# language server.","title":"lsp-fsharp-server-args"},{"location":"page/lsp-fsharp/#lsp-fsharp-server-install-dir","text":"Type: directory Default: ~/.emacs.d/.cache/lsp/fsautocomplete/ Install directory for fsautocomplete server. The slash is expected at the end.","title":"lsp-fsharp-server-install-dir"},{"location":"page/lsp-fsharp/#lsp-fsharp-simplify-name-analyzer","text":"Type: boolean Default: nil Enables simplify name analyzer and remove redundant qualifier quick fix.","title":"lsp-fsharp-simplify-name-analyzer"},{"location":"page/lsp-fsharp/#lsp-fsharp-union-case-stub-generation","text":"Type: boolean Default: t Enables a code action to generate pattern matching cases.","title":"lsp-fsharp-union-case-stub-generation"},{"location":"page/lsp-fsharp/#lsp-fsharp-union-case-stub-generation-body","text":"Type: string Default: failwith \"Not Implemented\" Defines dummy body used by pattern matching generator.","title":"lsp-fsharp-union-case-stub-generation-body"},{"location":"page/lsp-fsharp/#lsp-fsharp-unused-declarations-analyzer","text":"Type: boolean Default: t Enables unused symbol detection.","title":"lsp-fsharp-unused-declarations-analyzer"},{"location":"page/lsp-fsharp/#lsp-fsharp-unused-opens-analyzer","text":"Type: boolean Default: t Enables unused open detection.","title":"lsp-fsharp-unused-opens-analyzer"},{"location":"page/lsp-fsharp/#lsp-fsharp-use-dotnet-tool-for-fsac","text":"Type: boolean Default: t Run FsAutoComplete as a dotnet tool. The binary will be invoked via \"dotnet fsautocomplete\" in the project`s root directory, which will run a project-local tool if available, else the globally installed tool.","title":"lsp-fsharp-use-dotnet-tool-for-fsac"},{"location":"page/lsp-gdscript/","text":"GDScript # Server # For more information about the LSP server, check godot . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-gdscript-port # Type: integer Default: 6005 Port to connect server to","title":"GDScript"},{"location":"page/lsp-gdscript/#gdscript","text":"","title":"GDScript"},{"location":"page/lsp-gdscript/#server","text":"For more information about the LSP server, check godot .","title":"Server"},{"location":"page/lsp-gdscript/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-gdscript/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-gdscript/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-gdscript/#lsp-gdscript-port","text":"Type: integer Default: 6005 Port to connect server to","title":"lsp-gdscript-port"},{"location":"page/lsp-gettext/","text":"gettext # Server # For more information about the LSP server, check po-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Lsp gettext"},{"location":"page/lsp-gettext/#gettext","text":"","title":"gettext"},{"location":"page/lsp-gettext/#server","text":"For more information about the LSP server, check po-language-server .","title":"Server"},{"location":"page/lsp-gettext/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-gettext/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-gettext/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-gleam/","text":"Gleam # Server # For more information about the LSP server, check gleam . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-gleam-executable # Type: file Default: (gleam lsp) Command to run the Gleam LSP server.","title":"Gleam"},{"location":"page/lsp-gleam/#gleam","text":"","title":"Gleam"},{"location":"page/lsp-gleam/#server","text":"For more information about the LSP server, check gleam .","title":"Server"},{"location":"page/lsp-gleam/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-gleam/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-gleam/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-gleam/#lsp-gleam-executable","text":"Type: file Default: (gleam lsp) Command to run the Gleam LSP server.","title":"lsp-gleam-executable"},{"location":"page/lsp-glsl/","text":"GLSL # Server # For more information about the LSP server, check glsl . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-glsl-executable # Type: list Default: (glslls --stdin) Command to run the GLSL language server.","title":"GLSL"},{"location":"page/lsp-glsl/#glsl","text":"","title":"GLSL"},{"location":"page/lsp-glsl/#server","text":"For more information about the LSP server, check glsl .","title":"Server"},{"location":"page/lsp-glsl/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-glsl/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-glsl/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-glsl/#lsp-glsl-executable","text":"Type: list Default: (glslls --stdin) Command to run the GLSL language server.","title":"lsp-glsl-executable"},{"location":"page/lsp-gopls/","text":"Go # Server # For more information about the LSP server, check gopls . Installation # For more instructions on how to install manually, check here . Debugger: Yes # root_file: docs/manual-language-docs/lsp-gopls.md # Go (gopls) # lsp-mode provides Go language support via the gopls language server. See upstream for gopls installation instructions. Configuration # By default, some gopls analyzers are enabled and others are disabled. To override, use: (setq lsp-go-analyses '((shadow . t) (simplifycompositelit . :json-false))) Troubleshooting # Working with nested go.mod files # If you encounter an error like one of these: errors loading workspace: You are working in a nested module. Please open it as a separate workspace folder This file is in %s, which is a nested module in the %s module. gopls currently requires one module per workspace folder. Please open %s as a separate workspace folder Then the problem is most likely because lsp-mode has not started gopls with the correct root directory. By default lsp-mode will pick the root of your whole Git repository (or whatever else Projectile turns up) for all language servers started inside the repo. However, if you have nested go.mod files, you need to have lsp-mode start separate instances of gopls for each nested go.mod , and use the appropriate one for each file. You can make this work by manually invoking M-x lsp-workspace-folders-add and adding each nested go.mod directory as a workspace folder. Then reloading LSP with M-x lsp in an affected file (or restarting Emacs) will cause the file to be re-associated with a gopls process running under the correct project workspace. See #3473 for a bit more discussion of this particular issue. Available configurations #","title":"Lsp gopls"},{"location":"page/lsp-gopls/#go","text":"","title":"Go"},{"location":"page/lsp-gopls/#server","text":"For more information about the LSP server, check gopls .","title":"Server"},{"location":"page/lsp-gopls/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-gopls/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-gopls/#root_file-docsmanual-language-docslsp-goplsmd","text":"","title":"root_file: docs/manual-language-docs/lsp-gopls.md"},{"location":"page/lsp-gopls/#go-gopls","text":"lsp-mode provides Go language support via the gopls language server. See upstream for gopls installation instructions.","title":"Go (gopls)"},{"location":"page/lsp-gopls/#configuration","text":"By default, some gopls analyzers are enabled and others are disabled. To override, use: (setq lsp-go-analyses '((shadow . t) (simplifycompositelit . :json-false)))","title":"Configuration"},{"location":"page/lsp-gopls/#troubleshooting","text":"","title":"Troubleshooting"},{"location":"page/lsp-gopls/#working-with-nested-gomod-files","text":"If you encounter an error like one of these: errors loading workspace: You are working in a nested module. Please open it as a separate workspace folder This file is in %s, which is a nested module in the %s module. gopls currently requires one module per workspace folder. Please open %s as a separate workspace folder Then the problem is most likely because lsp-mode has not started gopls with the correct root directory. By default lsp-mode will pick the root of your whole Git repository (or whatever else Projectile turns up) for all language servers started inside the repo. However, if you have nested go.mod files, you need to have lsp-mode start separate instances of gopls for each nested go.mod , and use the appropriate one for each file. You can make this work by manually invoking M-x lsp-workspace-folders-add and adding each nested go.mod directory as a workspace folder. Then reloading LSP with M-x lsp in an affected file (or restarting Emacs) will cause the file to be re-associated with a gopls process running under the correct project workspace. See #3473 for a bit more discussion of this particular issue.","title":"Working with nested go.mod files"},{"location":"page/lsp-gopls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-grammarly/","text":"Grammarly # Server # For more information about the LSP server, check @emacs-grammarly/grammarly-languageserver . Installation # npm i -g @emacs-grammarly/grammarly-languageserver For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Grammarly"},{"location":"page/lsp-grammarly/#grammarly","text":"","title":"Grammarly"},{"location":"page/lsp-grammarly/#server","text":"For more information about the LSP server, check @emacs-grammarly/grammarly-languageserver .","title":"Server"},{"location":"page/lsp-grammarly/#installation","text":"npm i -g @emacs-grammarly/grammarly-languageserver For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-grammarly/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-grammarly/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-graphql/","text":"GraphQL # Server # For more information about the LSP server, check graphql-language-service-cli . Installation # npm i -g graphql-language-service-cli For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-graphql-server-args # Type: (repeat string) Default: (server --method=stream) CLI arguments for graphql language server.","title":"GraphQL"},{"location":"page/lsp-graphql/#graphql","text":"","title":"GraphQL"},{"location":"page/lsp-graphql/#server","text":"For more information about the LSP server, check graphql-language-service-cli .","title":"Server"},{"location":"page/lsp-graphql/#installation","text":"npm i -g graphql-language-service-cli For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-graphql/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-graphql/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-graphql/#lsp-clients-graphql-server-args","text":"Type: (repeat string) Default: (server --method=stream) CLI arguments for graphql language server.","title":"lsp-clients-graphql-server-args"},{"location":"page/lsp-groovy/","text":"Groovy # Server # For more information about the LSP server, check groovy-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-groovy-classpath # Type: lsp-string-vector Default: [/usr/local/opt/groovy/libexec/lib] List of paths to Groovy JARs. lsp-groovy-server-file # Type: file Default: ~/.emacs.d/.cache/lsp/groovy-language-server-all.jar JAR file path for groovy-language-server-all.jar.","title":"Groovy"},{"location":"page/lsp-groovy/#groovy","text":"","title":"Groovy"},{"location":"page/lsp-groovy/#server","text":"For more information about the LSP server, check groovy-language-server .","title":"Server"},{"location":"page/lsp-groovy/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-groovy/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-groovy/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-groovy/#lsp-groovy-classpath","text":"Type: lsp-string-vector Default: [/usr/local/opt/groovy/libexec/lib] List of paths to Groovy JARs.","title":"lsp-groovy-classpath"},{"location":"page/lsp-groovy/#lsp-groovy-server-file","text":"Type: file Default: ~/.emacs.d/.cache/lsp/groovy-language-server-all.jar JAR file path for groovy-language-server-all.jar.","title":"lsp-groovy-server-file"},{"location":"page/lsp-hack/","text":"Hack # Server # For more information about the LSP server, check hhvm . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-hack-command # Type: (repeat string) Default: (hh_client lsp --from emacs) Command to start hh_client.","title":"Hack"},{"location":"page/lsp-hack/#hack","text":"","title":"Hack"},{"location":"page/lsp-hack/#server","text":"For more information about the LSP server, check hhvm .","title":"Server"},{"location":"page/lsp-hack/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-hack/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-hack/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-hack/#lsp-clients-hack-command","text":"Type: (repeat string) Default: (hh_client lsp --from emacs) Command to start hh_client.","title":"lsp-clients-hack-command"},{"location":"page/lsp-html/","text":"HTML # Server # For more information about the LSP server, check html . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET html-ls RET . npm install -g vscode-langservers-extracted Debugger: Not available # Available configurations # lsp-html-auto-closing-tags # Type: boolean Default: t Enable/disable autoclosing of HTML tags. lsp-html-experimental-custom-data # Type: (choice (const nil) string) Default: nil A list of JSON file paths that define custom tags, properties and other HTML syntax constructs. Only workspace folder setting will be read. lsp-html-format-content-unformatted # Type: (choice (const nil) string) Default: pre,code,textarea lsp-html-format-enable # Type: boolean Default: t Enable/disable default HTML formatter. lsp-html-format-end-with-newline # Type: boolean Default: nil End with a newline. lsp-html-format-extra-liners # Type: (choice (const nil) string) Default: head, body, /html lsp-html-format-indent-handlebars # Type: boolean Default: nil lsp-html-format-indent-inner-html # Type: boolean Default: nil lsp-html-format-max-preserve-new-lines # Type: (choice (const nil) integer) Default: nil lsp-html-format-preserve-new-lines # Type: boolean Default: t Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text. lsp-html-format-unformatted # Type: (choice (const nil) string) Default: wbr lsp-html-format-wrap-attributes # Type: (choice (const auto) (const force) (const force-aligned) (const force-expand-multiline) (const aligned-multiple) (const preserve) (const preserve-aligned)) Default: auto Wrap attributes. lsp-html-format-wrap-line-length # Type: number Default: 120 Maximum amount of characters per line (0 = disable). lsp-html-server-command-args # Type: (repeat string) Default: (--stdio) Command to start html-languageserver. lsp-html-suggest-html5 # Type: boolean Default: t Controls whether the built-in HTML language support suggests HTML5 tags, properties and values. lsp-html-trace-server # Type: (choice (const off) (const messages) (const verbose)) Default: off Traces the communication between VS Code and the HTML language server. lsp-html-validate-scripts # Type: boolean Default: t Controls whether the built-in HTML language support validates embedded scripts. lsp-html-validate-styles # Type: boolean Default: t Controls whether the built-in HTML language support validates embedded styles.","title":"HTML"},{"location":"page/lsp-html/#html","text":"","title":"HTML"},{"location":"page/lsp-html/#server","text":"For more information about the LSP server, check html .","title":"Server"},{"location":"page/lsp-html/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET html-ls RET . npm install -g vscode-langservers-extracted","title":"Installation"},{"location":"page/lsp-html/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-html/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-html/#lsp-html-auto-closing-tags","text":"Type: boolean Default: t Enable/disable autoclosing of HTML tags.","title":"lsp-html-auto-closing-tags"},{"location":"page/lsp-html/#lsp-html-experimental-custom-data","text":"Type: (choice (const nil) string) Default: nil A list of JSON file paths that define custom tags, properties and other HTML syntax constructs. Only workspace folder setting will be read.","title":"lsp-html-experimental-custom-data"},{"location":"page/lsp-html/#lsp-html-format-content-unformatted","text":"Type: (choice (const nil) string) Default: pre,code,textarea","title":"lsp-html-format-content-unformatted"},{"location":"page/lsp-html/#lsp-html-format-enable","text":"Type: boolean Default: t Enable/disable default HTML formatter.","title":"lsp-html-format-enable"},{"location":"page/lsp-html/#lsp-html-format-end-with-newline","text":"Type: boolean Default: nil End with a newline.","title":"lsp-html-format-end-with-newline"},{"location":"page/lsp-html/#lsp-html-format-extra-liners","text":"Type: (choice (const nil) string) Default: head, body, /html","title":"lsp-html-format-extra-liners"},{"location":"page/lsp-html/#lsp-html-format-indent-handlebars","text":"Type: boolean Default: nil","title":"lsp-html-format-indent-handlebars"},{"location":"page/lsp-html/#lsp-html-format-indent-inner-html","text":"Type: boolean Default: nil","title":"lsp-html-format-indent-inner-html"},{"location":"page/lsp-html/#lsp-html-format-max-preserve-new-lines","text":"Type: (choice (const nil) integer) Default: nil","title":"lsp-html-format-max-preserve-new-lines"},{"location":"page/lsp-html/#lsp-html-format-preserve-new-lines","text":"Type: boolean Default: t Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text.","title":"lsp-html-format-preserve-new-lines"},{"location":"page/lsp-html/#lsp-html-format-unformatted","text":"Type: (choice (const nil) string) Default: wbr","title":"lsp-html-format-unformatted"},{"location":"page/lsp-html/#lsp-html-format-wrap-attributes","text":"Type: (choice (const auto) (const force) (const force-aligned) (const force-expand-multiline) (const aligned-multiple) (const preserve) (const preserve-aligned)) Default: auto Wrap attributes.","title":"lsp-html-format-wrap-attributes"},{"location":"page/lsp-html/#lsp-html-format-wrap-line-length","text":"Type: number Default: 120 Maximum amount of characters per line (0 = disable).","title":"lsp-html-format-wrap-line-length"},{"location":"page/lsp-html/#lsp-html-server-command-args","text":"Type: (repeat string) Default: (--stdio) Command to start html-languageserver.","title":"lsp-html-server-command-args"},{"location":"page/lsp-html/#lsp-html-suggest-html5","text":"Type: boolean Default: t Controls whether the built-in HTML language support suggests HTML5 tags, properties and values.","title":"lsp-html-suggest-html5"},{"location":"page/lsp-html/#lsp-html-trace-server","text":"Type: (choice (const off) (const messages) (const verbose)) Default: off Traces the communication between VS Code and the HTML language server.","title":"lsp-html-trace-server"},{"location":"page/lsp-html/#lsp-html-validate-scripts","text":"Type: boolean Default: t Controls whether the built-in HTML language support validates embedded scripts.","title":"lsp-html-validate-scripts"},{"location":"page/lsp-html/#lsp-html-validate-styles","text":"Type: boolean Default: t Controls whether the built-in HTML language support validates embedded styles.","title":"lsp-html-validate-styles"},{"location":"page/lsp-idris/","text":"Idris # Server # For more information about the LSP server, check idris2-lsp . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-idris2-lsp-path # Type: string Default: idris2-lsp Command to start Idris 2 language server process. lsp-idris2-lsp-trace-server # Type: (choice (:tag off messages verbose)) Default: off Traces the communication between VS Code and the language server.","title":"Idris"},{"location":"page/lsp-idris/#idris","text":"","title":"Idris"},{"location":"page/lsp-idris/#server","text":"For more information about the LSP server, check idris2-lsp .","title":"Server"},{"location":"page/lsp-idris/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-idris/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-idris/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-idris/#lsp-idris2-lsp-path","text":"Type: string Default: idris2-lsp Command to start Idris 2 language server process.","title":"lsp-idris2-lsp-path"},{"location":"page/lsp-idris/#lsp-idris2-lsp-trace-server","text":"Type: (choice (:tag off messages verbose)) Default: off Traces the communication between VS Code and the language server.","title":"lsp-idris2-lsp-trace-server"},{"location":"page/lsp-intelephense/","text":"PHP(recommended) # Server # For more information about the LSP server, check intelephense . Installation # Automatic or manual by npm i intelephense -g`` Debugger: Yes # Available configurations # lsp-clients-php-server-command # Type: (repeat string) Default: nil Install directory for php-language-server. lsp-php-composer-dir # Type: string Default: nil Home directory of composer. lsp-intelephense-clear-cache # Type: boolean Default: nil Optional flag to clear server state. lsp-intelephense-completion-fully-qualify-global-constants-and-functions # Type: boolean Default: nil Global namespace constants and functions will be fully qualified (prefixed with a backslash). lsp-intelephense-completion-insert-use-declaration # Type: boolean Default: t Use declarations will be automatically inserted for namespaced classes, traits, interfaces, functions, and constants. lsp-intelephense-completion-max-items # Type: number Default: 100 The maximum number of completion items returned per request. lsp-intelephense-completion-trigger-parameter-hints # Type: boolean Default: t Method and function completions will include parentheses and trigger parameter hints. lsp-intelephense-files-associations # Type: (repeat string) Default: [*.php *.phtml] Configure glob patterns to make files available for language server features. lsp-intelephense-files-exclude # Type: (repeat string) Default: [**/.git/** **/.svn/** **/.hg/** **/CVS/** **/.DS_Store/** **/node_modules/** **/bower_components/** **/vendor/**/{Test,test,Tests,tests}/**] Configure glob patterns to exclude certain files and folders from all language server features. lsp-intelephense-files-max-size # Type: number Default: 1000000 Maximum file size in bytes. lsp-intelephense-format-braces # Type: string Default: psr12 Formatting braces style. psr12, allman or k&r lsp-intelephense-format-enable # Type: boolean Default: t Enables formatting. lsp-intelephense-global-storage-path # Type: directory Default: ~/.emacs.d/intelephense Optional absolute path to global storage dir. lsp-intelephense-licence-key # Type: string Default: nil Enter your intelephense licence key here to access premium features. lsp-intelephense-multi-root # Type: boolean Default: t Flag to control if the server supports multi-root projects. lsp-intelephense-php-version # Type: string Default: 8.0.1 Minimum version of PHP to refer to. Affects code actions, diagnostic & completions. lsp-intelephense-rename-exclude # Type: (repeat string) Default: [**/vendor/**] Glob patterns to exclude files and folders from having symbols renamed. Rename operation will fail if references and/or definitions are found in excluded files/folders. lsp-intelephense-server-command # Type: (repeat string) Default: (intelephense --stdio) Command to start Intelephense. lsp-intelephense-storage-path # Type: directory Default: ~/.emacs.d/lsp-cache Optional absolute path to storage dir. lsp-intelephense-stubs # Type: (repeat string) Default: [apache bcmath bz2 calendar com_dotnet Core ctype curl date dba dom enchant exif fileinfo filter fpm ftp gd hash iconv imap interbase intl json ldap libxml mbstring mcrypt meta mssql mysqli oci8 odbc openssl pcntl pcre PDO pdo_ibm pdo_mysql pdo_pgsql pdo_sqlite pgsql Phar posix pspell readline recode Reflection regex session shmop SimpleXML snmp soap sockets sodium SPL sqlite3 standard superglobals sybase sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter Zend OPcache zip zlib] Configure stub files for built in symbols and common extensions. The default setting includes PHP core and all bundled extensions. lsp-intelephense-telemetry-enabled # Type: boolean Default: nil Anonymous usage and crash data will be sent to Azure Application Insights. lsp-intelephense-trace-server # Type: (choice (:tag off messages verbose)) Default: off Traces the communication between VSCode and the intelephense language server.","title":"PHP (intelephense)"},{"location":"page/lsp-intelephense/#phprecommended","text":"","title":"PHP(recommended)"},{"location":"page/lsp-intelephense/#server","text":"For more information about the LSP server, check intelephense .","title":"Server"},{"location":"page/lsp-intelephense/#installation","text":"Automatic or manual by npm i intelephense -g``","title":"Installation"},{"location":"page/lsp-intelephense/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-intelephense/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-intelephense/#lsp-clients-php-server-command","text":"Type: (repeat string) Default: nil Install directory for php-language-server.","title":"lsp-clients-php-server-command"},{"location":"page/lsp-intelephense/#lsp-php-composer-dir","text":"Type: string Default: nil Home directory of composer.","title":"lsp-php-composer-dir"},{"location":"page/lsp-intelephense/#lsp-intelephense-clear-cache","text":"Type: boolean Default: nil Optional flag to clear server state.","title":"lsp-intelephense-clear-cache"},{"location":"page/lsp-intelephense/#lsp-intelephense-completion-fully-qualify-global-constants-and-functions","text":"Type: boolean Default: nil Global namespace constants and functions will be fully qualified (prefixed with a backslash).","title":"lsp-intelephense-completion-fully-qualify-global-constants-and-functions"},{"location":"page/lsp-intelephense/#lsp-intelephense-completion-insert-use-declaration","text":"Type: boolean Default: t Use declarations will be automatically inserted for namespaced classes, traits, interfaces, functions, and constants.","title":"lsp-intelephense-completion-insert-use-declaration"},{"location":"page/lsp-intelephense/#lsp-intelephense-completion-max-items","text":"Type: number Default: 100 The maximum number of completion items returned per request.","title":"lsp-intelephense-completion-max-items"},{"location":"page/lsp-intelephense/#lsp-intelephense-completion-trigger-parameter-hints","text":"Type: boolean Default: t Method and function completions will include parentheses and trigger parameter hints.","title":"lsp-intelephense-completion-trigger-parameter-hints"},{"location":"page/lsp-intelephense/#lsp-intelephense-files-associations","text":"Type: (repeat string) Default: [*.php *.phtml] Configure glob patterns to make files available for language server features.","title":"lsp-intelephense-files-associations"},{"location":"page/lsp-intelephense/#lsp-intelephense-files-exclude","text":"Type: (repeat string) Default: [**/.git/** **/.svn/** **/.hg/** **/CVS/** **/.DS_Store/** **/node_modules/** **/bower_components/** **/vendor/**/{Test,test,Tests,tests}/**] Configure glob patterns to exclude certain files and folders from all language server features.","title":"lsp-intelephense-files-exclude"},{"location":"page/lsp-intelephense/#lsp-intelephense-files-max-size","text":"Type: number Default: 1000000 Maximum file size in bytes.","title":"lsp-intelephense-files-max-size"},{"location":"page/lsp-intelephense/#lsp-intelephense-format-braces","text":"Type: string Default: psr12 Formatting braces style. psr12, allman or k&r","title":"lsp-intelephense-format-braces"},{"location":"page/lsp-intelephense/#lsp-intelephense-format-enable","text":"Type: boolean Default: t Enables formatting.","title":"lsp-intelephense-format-enable"},{"location":"page/lsp-intelephense/#lsp-intelephense-global-storage-path","text":"Type: directory Default: ~/.emacs.d/intelephense Optional absolute path to global storage dir.","title":"lsp-intelephense-global-storage-path"},{"location":"page/lsp-intelephense/#lsp-intelephense-licence-key","text":"Type: string Default: nil Enter your intelephense licence key here to access premium features.","title":"lsp-intelephense-licence-key"},{"location":"page/lsp-intelephense/#lsp-intelephense-multi-root","text":"Type: boolean Default: t Flag to control if the server supports multi-root projects.","title":"lsp-intelephense-multi-root"},{"location":"page/lsp-intelephense/#lsp-intelephense-php-version","text":"Type: string Default: 8.0.1 Minimum version of PHP to refer to. Affects code actions, diagnostic & completions.","title":"lsp-intelephense-php-version"},{"location":"page/lsp-intelephense/#lsp-intelephense-rename-exclude","text":"Type: (repeat string) Default: [**/vendor/**] Glob patterns to exclude files and folders from having symbols renamed. Rename operation will fail if references and/or definitions are found in excluded files/folders.","title":"lsp-intelephense-rename-exclude"},{"location":"page/lsp-intelephense/#lsp-intelephense-server-command","text":"Type: (repeat string) Default: (intelephense --stdio) Command to start Intelephense.","title":"lsp-intelephense-server-command"},{"location":"page/lsp-intelephense/#lsp-intelephense-storage-path","text":"Type: directory Default: ~/.emacs.d/lsp-cache Optional absolute path to storage dir.","title":"lsp-intelephense-storage-path"},{"location":"page/lsp-intelephense/#lsp-intelephense-stubs","text":"Type: (repeat string) Default: [apache bcmath bz2 calendar com_dotnet Core ctype curl date dba dom enchant exif fileinfo filter fpm ftp gd hash iconv imap interbase intl json ldap libxml mbstring mcrypt meta mssql mysqli oci8 odbc openssl pcntl pcre PDO pdo_ibm pdo_mysql pdo_pgsql pdo_sqlite pgsql Phar posix pspell readline recode Reflection regex session shmop SimpleXML snmp soap sockets sodium SPL sqlite3 standard superglobals sybase sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter Zend OPcache zip zlib] Configure stub files for built in symbols and common extensions. The default setting includes PHP core and all bundled extensions.","title":"lsp-intelephense-stubs"},{"location":"page/lsp-intelephense/#lsp-intelephense-telemetry-enabled","text":"Type: boolean Default: nil Anonymous usage and crash data will be sent to Azure Application Insights.","title":"lsp-intelephense-telemetry-enabled"},{"location":"page/lsp-intelephense/#lsp-intelephense-trace-server","text":"Type: (choice (:tag off messages verbose)) Default: off Traces the communication between VSCode and the intelephense language server.","title":"lsp-intelephense-trace-server"},{"location":"page/lsp-jedi/","text":"Python (Jedi-language-server) # Server # For more information about the LSP server, check jedi . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Python (Jedi Language Server)"},{"location":"page/lsp-jedi/#python-jedi-language-server","text":"","title":"Python (Jedi-language-server)"},{"location":"page/lsp-jedi/#server","text":"For more information about the LSP server, check jedi .","title":"Server"},{"location":"page/lsp-jedi/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-jedi/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-jedi/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-json/","text":"Json # Server # For more information about the LSP server, check vscode-json-languageserver . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET json-ls RET . Automatic or manual by npm i -g vscode-langservers-extracted Debugger: Not available # Available configurations # lsp-http-proxy # Type: string Default: nil The URL of the proxy server to use when fetching schema. lsp-http-proxyStrictSSL # Type: boolean Default: t The URL of the proxy server to use when fetching schema. lsp-json-schemas # Type: (repeat alist) Default: nil Associate schemas to JSON files in the current project example can be found here .","title":"Json"},{"location":"page/lsp-json/#json","text":"","title":"Json"},{"location":"page/lsp-json/#server","text":"For more information about the LSP server, check vscode-json-languageserver .","title":"Server"},{"location":"page/lsp-json/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET json-ls RET . Automatic or manual by npm i -g vscode-langservers-extracted","title":"Installation"},{"location":"page/lsp-json/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-json/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-json/#lsp-http-proxy","text":"Type: string Default: nil The URL of the proxy server to use when fetching schema.","title":"lsp-http-proxy"},{"location":"page/lsp-json/#lsp-http-proxystrictssl","text":"Type: boolean Default: t The URL of the proxy server to use when fetching schema.","title":"lsp-http-proxyStrictSSL"},{"location":"page/lsp-json/#lsp-json-schemas","text":"Type: (repeat alist) Default: nil Associate schemas to JSON files in the current project example can be found here .","title":"lsp-json-schemas"},{"location":"page/lsp-julia/","text":"Julia # Server # For more information about the LSP server, check lsp-julia . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Julia"},{"location":"page/lsp-julia/#julia","text":"","title":"Julia"},{"location":"page/lsp-julia/#server","text":"For more information about the LSP server, check lsp-julia .","title":"Server"},{"location":"page/lsp-julia/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-julia/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-julia/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-kotlin/","text":"Kotlin # Server # For more information about the LSP server, check kotlin-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-kotlin-server-executable # Type: string Default: kotlin-language-server The kotlin-language-server executable to use. Leave as just the executable name to use the default behavior of finding the executable with exec-path . lsp-kotlin-compiler-jvm-target # Type: string Default: 1.8 Specifies the JVM target, e.g. \"1.6\" or \"1.8\". lsp-kotlin-completion-snippets-enabled # Type: boolean Default: t Specifies whether code completion should provide snippets (true) or plain-text items (false). lsp-kotlin-debug-adapter-enabled # Type: boolean Default: t [Recommended] Specifies whether the debug adapter should be used. When enabled a debugger for Kotlin will be available. lsp-kotlin-debug-adapter-path # Type: string Default: `` Optionally a custom path to the debug adapter executable. lsp-kotlin-external-sources-auto-convert-to-kotlin # Type: boolean Default: t Specifies whether decompiled/external classes should be auto-converted to Kotlin. lsp-kotlin-external-sources-use-kls-scheme # Type: boolean Default: t [Recommended] Specifies whether URIs inside JARs should be represented using the kls -scheme. lsp-kotlin-linting-debounce-time # Type: number Default: 250 [DEBUG] Specifies the debounce time limit. Lower to increase responsiveness at the cost of possible stability issues. lsp-kotlin-server-download-url # Type: string Default: https://github.com/fwcd/kotlin-language-server/releases/latest/download/server.zip The URL for the language server download. lsp-kotlin-trace-server # Type: (choice (:tag off messages verbose)) Default: off Traces the communication between VSCode and the Kotlin language server.","title":"Kotlin"},{"location":"page/lsp-kotlin/#kotlin","text":"","title":"Kotlin"},{"location":"page/lsp-kotlin/#server","text":"For more information about the LSP server, check kotlin-language-server .","title":"Server"},{"location":"page/lsp-kotlin/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-kotlin/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-kotlin/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-kotlin/#lsp-clients-kotlin-server-executable","text":"Type: string Default: kotlin-language-server The kotlin-language-server executable to use. Leave as just the executable name to use the default behavior of finding the executable with exec-path .","title":"lsp-clients-kotlin-server-executable"},{"location":"page/lsp-kotlin/#lsp-kotlin-compiler-jvm-target","text":"Type: string Default: 1.8 Specifies the JVM target, e.g. \"1.6\" or \"1.8\".","title":"lsp-kotlin-compiler-jvm-target"},{"location":"page/lsp-kotlin/#lsp-kotlin-completion-snippets-enabled","text":"Type: boolean Default: t Specifies whether code completion should provide snippets (true) or plain-text items (false).","title":"lsp-kotlin-completion-snippets-enabled"},{"location":"page/lsp-kotlin/#lsp-kotlin-debug-adapter-enabled","text":"Type: boolean Default: t [Recommended] Specifies whether the debug adapter should be used. When enabled a debugger for Kotlin will be available.","title":"lsp-kotlin-debug-adapter-enabled"},{"location":"page/lsp-kotlin/#lsp-kotlin-debug-adapter-path","text":"Type: string Default: `` Optionally a custom path to the debug adapter executable.","title":"lsp-kotlin-debug-adapter-path"},{"location":"page/lsp-kotlin/#lsp-kotlin-external-sources-auto-convert-to-kotlin","text":"Type: boolean Default: t Specifies whether decompiled/external classes should be auto-converted to Kotlin.","title":"lsp-kotlin-external-sources-auto-convert-to-kotlin"},{"location":"page/lsp-kotlin/#lsp-kotlin-external-sources-use-kls-scheme","text":"Type: boolean Default: t [Recommended] Specifies whether URIs inside JARs should be represented using the kls -scheme.","title":"lsp-kotlin-external-sources-use-kls-scheme"},{"location":"page/lsp-kotlin/#lsp-kotlin-linting-debounce-time","text":"Type: number Default: 250 [DEBUG] Specifies the debounce time limit. Lower to increase responsiveness at the cost of possible stability issues.","title":"lsp-kotlin-linting-debounce-time"},{"location":"page/lsp-kotlin/#lsp-kotlin-server-download-url","text":"Type: string Default: https://github.com/fwcd/kotlin-language-server/releases/latest/download/server.zip The URL for the language server download.","title":"lsp-kotlin-server-download-url"},{"location":"page/lsp-kotlin/#lsp-kotlin-trace-server","text":"Type: (choice (:tag off messages verbose)) Default: off Traces the communication between VSCode and the Kotlin language server.","title":"lsp-kotlin-trace-server"},{"location":"page/lsp-latex/","text":"TeX, LaTeX, etc. # Server # For more information about the LSP server, check texlab . Installation # cargo install --git https://github.com/latex-lsp/texlab.git Debugger: Not available # root_file: docs/manual-language-docs/lsp-latex.md # lsp-latex.el: texlab LSP-client # See lsp-latex.el homepage . Available configurations #","title":"TeX, LaTeX, etc (texlab, external)"},{"location":"page/lsp-latex/#tex-latex-etc","text":"","title":"TeX, LaTeX, etc."},{"location":"page/lsp-latex/#server","text":"For more information about the LSP server, check texlab .","title":"Server"},{"location":"page/lsp-latex/#installation","text":"cargo install --git https://github.com/latex-lsp/texlab.git","title":"Installation"},{"location":"page/lsp-latex/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-latex/#root_file-docsmanual-language-docslsp-latexmd","text":"","title":"root_file: docs/manual-language-docs/lsp-latex.md"},{"location":"page/lsp-latex/#lsp-latexel-texlab-lsp-client","text":"See lsp-latex.el homepage .","title":"lsp-latex.el: texlab LSP-client"},{"location":"page/lsp-latex/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ltex/","text":"LanguageTool # Server # For more information about the LSP server, check LTEX . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"LanguageTool (LTEX)"},{"location":"page/lsp-ltex/#languagetool","text":"","title":"LanguageTool"},{"location":"page/lsp-ltex/#server","text":"For more information about the LSP server, check LTEX .","title":"Server"},{"location":"page/lsp-ltex/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-ltex/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ltex/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-lua-language-server/","text":"Lua # Server # For more information about the LSP server, check lua-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-lua-language-server-args # Type: (repeat string) Default: (-E) Arguments to run the Lua Language server. lsp-clients-lua-language-server-bin # Type: file Default: ~/.emacs.d/.cache/lsp/lua-language-server/bin/lua-language-server Location of Lua Language Server. lsp-clients-lua-language-server-command # Type: (repeat string) Default: nil Command to start Lua Language server. lsp-clients-lua-language-server-install-dir # Type: directory Default: ~/.emacs.d/.cache/lsp/lua-language-server/ Installation directory for Lua Language Server. lsp-clients-lua-language-server-main-location # Type: file Default: ~/.emacs.d/.cache/lsp/lua-language-server/main.lua Location of Lua Language Server main.lua. lsp-lua-color-mode # Type: (choice (:tag Grammar Semantic)) Default: Semantic Color mode. lsp-lua-completion-call-snippet # Type: (choice (:tag Disable Both Replace)) Default: Disable Shows function call snippets. lsp-lua-completion-display-context # Type: number Default: 6 Previewing the relevant code snippet of the suggestion may help you understand the usage of the suggestion. The number set indicates the number of intercepted lines in the code fragment. If it is set to 0 , this feature can be disabled. lsp-lua-completion-enable # Type: boolean Default: t Enable completion. lsp-lua-completion-keyword-snippet # Type: (choice (:tag Disable Both Replace)) Default: Replace Shows keyword syntax snippets. lsp-lua-completion-workspace-word # Type: boolean Default: t Show words within the workspace. lsp-lua-develop-debugger-port # Type: number Default: 11412 Listen port of debugger. lsp-lua-develop-debugger-wait # Type: boolean Default: nil Suspend before debugger connects. lsp-lua-develop-enable # Type: boolean Default: nil Developer mode. Do not enable, performance will be affected. lsp-lua-diagnostics-disable # Type: lsp-string-vector Default: nil Disabled diagnostic (Use code in hover brackets). \"Lua.diagnostics.disable\" : [ \"unused-local\" , \"lowercase-global\" ] lsp-lua-diagnostics-enable # Type: boolean Default: t Enable diagnostics. lsp-lua-diagnostics-globals # Type: lsp-string-vector Default: nil Defined global variables. \"Lua.diagnostics.globals\" : [ \"GLOBAL1\" , \"GLOBAL2\" ] lsp-lua-diagnostics-needed-file-status # Type: alist Default: nil If you want to check only opened files, choice Opened; else choice Any. \"Lua.diagnostics.neededFileStatus\" : { \"ambiguity-1\" : \"Any\" , \"circle-doc-class\" : \"Opened\" } lsp-lua-diagnostics-severity # Type: alist Default: nil Modified diagnostic severity. \"Lua.diagnostics.severity\" : { \"redefined-local\" : \"Warning\" , \"emmy-lua\" : \"Hint\" } lsp-lua-diagnostics-workspace-delay # Type: number Default: 0 Latency (milliseconds) for workspace diagnostics. When you start the workspace, or edit any file, the entire workspace will be re-diagnosed in the background. Set to negative to disable workspace diagnostics. lsp-lua-diagnostics-workspace-rate # Type: number Default: 100 Workspace diagnostics run rate (%). Decreasing this value reduces CPU usage, but also reduces the speed of workspace diagnostics. The diagnosis of the file you are currently editing is always done at full speed and is not affected by this setting. lsp-lua-files-associations # Type: alist Default: nil Files.associations. lsp-lua-files-exclude # Type: alist Default: nil Files.exclude. lsp-lua-hint-enable # Type: boolean Default: nil Enable hint. lsp-lua-hint-param-name # Type: boolean Default: t Hint parameter name when the parameter called is literal. lsp-lua-hint-param-type # Type: boolean Default: t Show type hints at the parameter of the function. lsp-lua-hint-set-type # Type: boolean Default: nil Hint type at assignment operation. lsp-lua-hover-enable # Type: boolean Default: t Enable hover. lsp-lua-hover-field-infer # Type: number Default: 3000 When hovering to view a table, type infer will be performed for each field. When the accumulated time of type infer reaches the set value (MS), the type infer of subsequent fields will be skipped. lsp-lua-hover-preview-fields # Type: number Default: 100 When hovering to view a table, limits the maximum number of previews for fields. lsp-lua-hover-view-number # Type: boolean Default: t Hover to view numeric content (only if literal is not decimal). lsp-lua-hover-view-string # Type: boolean Default: t Hover to view the contents of a string (only if the literal contains an escape character). lsp-lua-hover-view-string-max # Type: number Default: 1000 The maximum length of a hover to view the contents of a string. lsp-lua-intelli-sense-search-depth # Type: number Default: 0 Set the search depth for IntelliSense. Increasing this value increases accuracy, but decreases performance. Different workspace have different tolerance for this setting. Please adjust it to the appropriate value. lsp-lua-prefer-musl # Type: boolean Default: nil Whether or not to download the musl-compiled server. lsp-lua-runtime-file-encoding # Type: (choice (:tag utf8 ansi)) Default: utf8 File encoding. The ansi option is only available under the Windows platform. lsp-lua-runtime-nonstandard-symbol # Type: lsp-string-vector Default: nil Supports non-standard symbols. Make sure that your runtime environment supports these symbols. lsp-lua-runtime-path # Type: lsp-string-vector Default: [?.lua ?/init.lua ?/?.lua] package.path . lsp-lua-runtime-plugin # Type: file Default: nil (Proposed) Plugin path. Default is .vscode/lua/plugin.lua lsp-lua-runtime-special # Type: alist Default: nil The custom global variables are regarded as some special built-in variables, and the language server will provide special support. \"Lua.runtime.special\" : { \"include\" : \"require\" } lsp-lua-runtime-unicode-name # Type: boolean Default: nil Allows Unicode characters in name. lsp-lua-runtime-version # Type: (choice (:tag Lua 5.1 Lua 5.2 Lua 5.3 Lua 5.4 LuaJIT)) Default: Lua 5.4 Lua runtime version. lsp-lua-signature-help-enable # Type: boolean Default: t Enable signature help. lsp-lua-telemetry-enable # Type: boolean Default: nil Enable telemetry to send your editor information and error logs over the network. lsp-lua-window-progress-bar # Type: boolean Default: t Show progress bar in status bar. lsp-lua-window-status-bar # Type: boolean Default: t Show extension status in status bar. lsp-lua-workspace-ignore-dir # Type: lsp-string-vector Default: [.vscode] Ignored directories (Use .gitignore grammar). \"Lua.workspace.ignoreDir\" : [ \"temp/*.*\" , \"!temp/*.lua\" ] lsp-lua-workspace-ignore-submodules # Type: boolean Default: t Ignore submodules. lsp-lua-workspace-library # Type: alist Default: nil Load external library. This feature can load external Lua files, which can be used for definition, automatic completion and other functions. Note that the language server does not monitor changes in external files and needs to restart if the external files are modified. The following example shows loaded files in C:/lua and ../lib ,exclude ../lib/temp . \"Lua.workspace.library\" : { \"C:/lua\" : true , \"../lib\" : [ \"temp/*\" ] } lsp-lua-workspace-max-preload # Type: number Default: 1000 Max preloaded files. lsp-lua-workspace-preload-file-size # Type: number Default: 100 Skip files larger than this value (KB) when preloading. lsp-lua-workspace-use-git-ignore # Type: boolean Default: t Ignore files list in .gitignore .","title":"Lua (Lua Language Server)"},{"location":"page/lsp-lua-language-server/#lua","text":"","title":"Lua"},{"location":"page/lsp-lua-language-server/#server","text":"For more information about the LSP server, check lua-language-server .","title":"Server"},{"location":"page/lsp-lua-language-server/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-lua-language-server/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-lua-language-server/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-lua-language-server/#lsp-clients-lua-language-server-args","text":"Type: (repeat string) Default: (-E) Arguments to run the Lua Language server.","title":"lsp-clients-lua-language-server-args"},{"location":"page/lsp-lua-language-server/#lsp-clients-lua-language-server-bin","text":"Type: file Default: ~/.emacs.d/.cache/lsp/lua-language-server/bin/lua-language-server Location of Lua Language Server.","title":"lsp-clients-lua-language-server-bin"},{"location":"page/lsp-lua-language-server/#lsp-clients-lua-language-server-command","text":"Type: (repeat string) Default: nil Command to start Lua Language server.","title":"lsp-clients-lua-language-server-command"},{"location":"page/lsp-lua-language-server/#lsp-clients-lua-language-server-install-dir","text":"Type: directory Default: ~/.emacs.d/.cache/lsp/lua-language-server/ Installation directory for Lua Language Server.","title":"lsp-clients-lua-language-server-install-dir"},{"location":"page/lsp-lua-language-server/#lsp-clients-lua-language-server-main-location","text":"Type: file Default: ~/.emacs.d/.cache/lsp/lua-language-server/main.lua Location of Lua Language Server main.lua.","title":"lsp-clients-lua-language-server-main-location"},{"location":"page/lsp-lua-language-server/#lsp-lua-color-mode","text":"Type: (choice (:tag Grammar Semantic)) Default: Semantic Color mode.","title":"lsp-lua-color-mode"},{"location":"page/lsp-lua-language-server/#lsp-lua-completion-call-snippet","text":"Type: (choice (:tag Disable Both Replace)) Default: Disable Shows function call snippets.","title":"lsp-lua-completion-call-snippet"},{"location":"page/lsp-lua-language-server/#lsp-lua-completion-display-context","text":"Type: number Default: 6 Previewing the relevant code snippet of the suggestion may help you understand the usage of the suggestion. The number set indicates the number of intercepted lines in the code fragment. If it is set to 0 , this feature can be disabled.","title":"lsp-lua-completion-display-context"},{"location":"page/lsp-lua-language-server/#lsp-lua-completion-enable","text":"Type: boolean Default: t Enable completion.","title":"lsp-lua-completion-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-completion-keyword-snippet","text":"Type: (choice (:tag Disable Both Replace)) Default: Replace Shows keyword syntax snippets.","title":"lsp-lua-completion-keyword-snippet"},{"location":"page/lsp-lua-language-server/#lsp-lua-completion-workspace-word","text":"Type: boolean Default: t Show words within the workspace.","title":"lsp-lua-completion-workspace-word"},{"location":"page/lsp-lua-language-server/#lsp-lua-develop-debugger-port","text":"Type: number Default: 11412 Listen port of debugger.","title":"lsp-lua-develop-debugger-port"},{"location":"page/lsp-lua-language-server/#lsp-lua-develop-debugger-wait","text":"Type: boolean Default: nil Suspend before debugger connects.","title":"lsp-lua-develop-debugger-wait"},{"location":"page/lsp-lua-language-server/#lsp-lua-develop-enable","text":"Type: boolean Default: nil Developer mode. Do not enable, performance will be affected.","title":"lsp-lua-develop-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-disable","text":"Type: lsp-string-vector Default: nil Disabled diagnostic (Use code in hover brackets). \"Lua.diagnostics.disable\" : [ \"unused-local\" , \"lowercase-global\" ]","title":"lsp-lua-diagnostics-disable"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-enable","text":"Type: boolean Default: t Enable diagnostics.","title":"lsp-lua-diagnostics-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-globals","text":"Type: lsp-string-vector Default: nil Defined global variables. \"Lua.diagnostics.globals\" : [ \"GLOBAL1\" , \"GLOBAL2\" ]","title":"lsp-lua-diagnostics-globals"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-needed-file-status","text":"Type: alist Default: nil If you want to check only opened files, choice Opened; else choice Any. \"Lua.diagnostics.neededFileStatus\" : { \"ambiguity-1\" : \"Any\" , \"circle-doc-class\" : \"Opened\" }","title":"lsp-lua-diagnostics-needed-file-status"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-severity","text":"Type: alist Default: nil Modified diagnostic severity. \"Lua.diagnostics.severity\" : { \"redefined-local\" : \"Warning\" , \"emmy-lua\" : \"Hint\" }","title":"lsp-lua-diagnostics-severity"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-workspace-delay","text":"Type: number Default: 0 Latency (milliseconds) for workspace diagnostics. When you start the workspace, or edit any file, the entire workspace will be re-diagnosed in the background. Set to negative to disable workspace diagnostics.","title":"lsp-lua-diagnostics-workspace-delay"},{"location":"page/lsp-lua-language-server/#lsp-lua-diagnostics-workspace-rate","text":"Type: number Default: 100 Workspace diagnostics run rate (%). Decreasing this value reduces CPU usage, but also reduces the speed of workspace diagnostics. The diagnosis of the file you are currently editing is always done at full speed and is not affected by this setting.","title":"lsp-lua-diagnostics-workspace-rate"},{"location":"page/lsp-lua-language-server/#lsp-lua-files-associations","text":"Type: alist Default: nil Files.associations.","title":"lsp-lua-files-associations"},{"location":"page/lsp-lua-language-server/#lsp-lua-files-exclude","text":"Type: alist Default: nil Files.exclude.","title":"lsp-lua-files-exclude"},{"location":"page/lsp-lua-language-server/#lsp-lua-hint-enable","text":"Type: boolean Default: nil Enable hint.","title":"lsp-lua-hint-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-hint-param-name","text":"Type: boolean Default: t Hint parameter name when the parameter called is literal.","title":"lsp-lua-hint-param-name"},{"location":"page/lsp-lua-language-server/#lsp-lua-hint-param-type","text":"Type: boolean Default: t Show type hints at the parameter of the function.","title":"lsp-lua-hint-param-type"},{"location":"page/lsp-lua-language-server/#lsp-lua-hint-set-type","text":"Type: boolean Default: nil Hint type at assignment operation.","title":"lsp-lua-hint-set-type"},{"location":"page/lsp-lua-language-server/#lsp-lua-hover-enable","text":"Type: boolean Default: t Enable hover.","title":"lsp-lua-hover-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-hover-field-infer","text":"Type: number Default: 3000 When hovering to view a table, type infer will be performed for each field. When the accumulated time of type infer reaches the set value (MS), the type infer of subsequent fields will be skipped.","title":"lsp-lua-hover-field-infer"},{"location":"page/lsp-lua-language-server/#lsp-lua-hover-preview-fields","text":"Type: number Default: 100 When hovering to view a table, limits the maximum number of previews for fields.","title":"lsp-lua-hover-preview-fields"},{"location":"page/lsp-lua-language-server/#lsp-lua-hover-view-number","text":"Type: boolean Default: t Hover to view numeric content (only if literal is not decimal).","title":"lsp-lua-hover-view-number"},{"location":"page/lsp-lua-language-server/#lsp-lua-hover-view-string","text":"Type: boolean Default: t Hover to view the contents of a string (only if the literal contains an escape character).","title":"lsp-lua-hover-view-string"},{"location":"page/lsp-lua-language-server/#lsp-lua-hover-view-string-max","text":"Type: number Default: 1000 The maximum length of a hover to view the contents of a string.","title":"lsp-lua-hover-view-string-max"},{"location":"page/lsp-lua-language-server/#lsp-lua-intelli-sense-search-depth","text":"Type: number Default: 0 Set the search depth for IntelliSense. Increasing this value increases accuracy, but decreases performance. Different workspace have different tolerance for this setting. Please adjust it to the appropriate value.","title":"lsp-lua-intelli-sense-search-depth"},{"location":"page/lsp-lua-language-server/#lsp-lua-prefer-musl","text":"Type: boolean Default: nil Whether or not to download the musl-compiled server.","title":"lsp-lua-prefer-musl"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-file-encoding","text":"Type: (choice (:tag utf8 ansi)) Default: utf8 File encoding. The ansi option is only available under the Windows platform.","title":"lsp-lua-runtime-file-encoding"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-nonstandard-symbol","text":"Type: lsp-string-vector Default: nil Supports non-standard symbols. Make sure that your runtime environment supports these symbols.","title":"lsp-lua-runtime-nonstandard-symbol"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-path","text":"Type: lsp-string-vector Default: [?.lua ?/init.lua ?/?.lua] package.path .","title":"lsp-lua-runtime-path"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-plugin","text":"Type: file Default: nil (Proposed) Plugin path. Default is .vscode/lua/plugin.lua","title":"lsp-lua-runtime-plugin"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-special","text":"Type: alist Default: nil The custom global variables are regarded as some special built-in variables, and the language server will provide special support. \"Lua.runtime.special\" : { \"include\" : \"require\" }","title":"lsp-lua-runtime-special"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-unicode-name","text":"Type: boolean Default: nil Allows Unicode characters in name.","title":"lsp-lua-runtime-unicode-name"},{"location":"page/lsp-lua-language-server/#lsp-lua-runtime-version","text":"Type: (choice (:tag Lua 5.1 Lua 5.2 Lua 5.3 Lua 5.4 LuaJIT)) Default: Lua 5.4 Lua runtime version.","title":"lsp-lua-runtime-version"},{"location":"page/lsp-lua-language-server/#lsp-lua-signature-help-enable","text":"Type: boolean Default: t Enable signature help.","title":"lsp-lua-signature-help-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-telemetry-enable","text":"Type: boolean Default: nil Enable telemetry to send your editor information and error logs over the network.","title":"lsp-lua-telemetry-enable"},{"location":"page/lsp-lua-language-server/#lsp-lua-window-progress-bar","text":"Type: boolean Default: t Show progress bar in status bar.","title":"lsp-lua-window-progress-bar"},{"location":"page/lsp-lua-language-server/#lsp-lua-window-status-bar","text":"Type: boolean Default: t Show extension status in status bar.","title":"lsp-lua-window-status-bar"},{"location":"page/lsp-lua-language-server/#lsp-lua-workspace-ignore-dir","text":"Type: lsp-string-vector Default: [.vscode] Ignored directories (Use .gitignore grammar). \"Lua.workspace.ignoreDir\" : [ \"temp/*.*\" , \"!temp/*.lua\" ]","title":"lsp-lua-workspace-ignore-dir"},{"location":"page/lsp-lua-language-server/#lsp-lua-workspace-ignore-submodules","text":"Type: boolean Default: t Ignore submodules.","title":"lsp-lua-workspace-ignore-submodules"},{"location":"page/lsp-lua-language-server/#lsp-lua-workspace-library","text":"Type: alist Default: nil Load external library. This feature can load external Lua files, which can be used for definition, automatic completion and other functions. Note that the language server does not monitor changes in external files and needs to restart if the external files are modified. The following example shows loaded files in C:/lua and ../lib ,exclude ../lib/temp . \"Lua.workspace.library\" : { \"C:/lua\" : true , \"../lib\" : [ \"temp/*\" ] }","title":"lsp-lua-workspace-library"},{"location":"page/lsp-lua-language-server/#lsp-lua-workspace-max-preload","text":"Type: number Default: 1000 Max preloaded files.","title":"lsp-lua-workspace-max-preload"},{"location":"page/lsp-lua-language-server/#lsp-lua-workspace-preload-file-size","text":"Type: number Default: 100 Skip files larger than this value (KB) when preloading.","title":"lsp-lua-workspace-preload-file-size"},{"location":"page/lsp-lua-language-server/#lsp-lua-workspace-use-git-ignore","text":"Type: boolean Default: t Ignore files list in .gitignore .","title":"lsp-lua-workspace-use-git-ignore"},{"location":"page/lsp-lua-lsp/","text":"Lua # Server # For more information about the LSP server, check lua-lsp . Installation # luarocks install --server=https://luarocks.org/dev lua-lsp --local For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-lua-lsp-server-install-dir # Type: file Default: nil Installation directory for Lua-Lsp Language Server. lsp-clients-luarocks-bin-dir # Type: directory Default: ~/.luarocks/bin/ LuaRocks bin directory.","title":"Lua (Lua-Lsp)"},{"location":"page/lsp-lua-lsp/#lua","text":"","title":"Lua"},{"location":"page/lsp-lua-lsp/#server","text":"For more information about the LSP server, check lua-lsp .","title":"Server"},{"location":"page/lsp-lua-lsp/#installation","text":"luarocks install --server=https://luarocks.org/dev lua-lsp --local For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-lua-lsp/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-lua-lsp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-lua-lsp/#lsp-clients-lua-lsp-server-install-dir","text":"Type: file Default: nil Installation directory for Lua-Lsp Language Server.","title":"lsp-clients-lua-lsp-server-install-dir"},{"location":"page/lsp-lua-lsp/#lsp-clients-luarocks-bin-dir","text":"Type: directory Default: ~/.luarocks/bin/ LuaRocks bin directory.","title":"lsp-clients-luarocks-bin-dir"},{"location":"page/lsp-lua-roblox/","text":"Lua Roblox # Server # For more information about the LSP server, check lua-roblox-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Lsp lua roblox"},{"location":"page/lsp-lua-roblox/#lua-roblox","text":"","title":"Lua Roblox"},{"location":"page/lsp-lua-roblox/#server","text":"For more information about the LSP server, check lua-roblox-language-server .","title":"Server"},{"location":"page/lsp-lua-roblox/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-lua-roblox/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-lua-roblox/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-magik/","text":"GE Smallworld Magik # Server # For more information about the LSP server, check magik-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET magik-ls RET . Automatic by lsp-mode with lsp-install-server`` Debugger: Yes # Available configurations # lsp-magik-download-url-lsp # Type: string Default: https://github.com/StevenLooman/magik-tools/releases/download/0.8.0/magik-language-server-0.8.0.jar URL of LSP server to download. lsp-magik-java-home # Type: string Default: nil Path to Java Runtime, Java 11 minimum. lsp-magik-java-path # Type: string Default: (closure (t) nil (cond ((eq system-type 'windows-nt) (or (lsp-resolve-value (executable-find (expand-file-name bin/java (getenv JAVA_HOME)))) (lsp-resolve-value (executable-find java)))) (t java))) Path of the java executable. lsp-magik-lint-override-config-file # Type: string Default: nil Override path to magiklintrc.properties. lsp-magik-ls-path # Type: string Default: /home/runner/.emacs.d/.cache/lsp/magik-ls/magik-language-server-0.8.0.jar Path of the language server. lsp-magik-smallworld-gis # Type: string Default: nil Path to Smallworld Core. lsp-magik-trace-server # Type: (choice (const off) (const message) (const verbose)) Default: off Traces the communication between VS Code and the Magik language server. lsp-magik-typing-enable-checks # Type: boolean Default: nil Enable typing checks. lsp-magik-typing-type-database-paths # Type: lsp-string-vector Default: [] Paths to type databases. lsp-magik-version # Type: string Default: 0.8.0 Version of LSP server.","title":"Magik"},{"location":"page/lsp-magik/#ge-smallworld-magik","text":"","title":"GE Smallworld Magik"},{"location":"page/lsp-magik/#server","text":"For more information about the LSP server, check magik-language-server .","title":"Server"},{"location":"page/lsp-magik/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET magik-ls RET . Automatic by lsp-mode with lsp-install-server``","title":"Installation"},{"location":"page/lsp-magik/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-magik/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-magik/#lsp-magik-download-url-lsp","text":"Type: string Default: https://github.com/StevenLooman/magik-tools/releases/download/0.8.0/magik-language-server-0.8.0.jar URL of LSP server to download.","title":"lsp-magik-download-url-lsp"},{"location":"page/lsp-magik/#lsp-magik-java-home","text":"Type: string Default: nil Path to Java Runtime, Java 11 minimum.","title":"lsp-magik-java-home"},{"location":"page/lsp-magik/#lsp-magik-java-path","text":"Type: string Default: (closure (t) nil (cond ((eq system-type 'windows-nt) (or (lsp-resolve-value (executable-find (expand-file-name bin/java (getenv JAVA_HOME)))) (lsp-resolve-value (executable-find java)))) (t java))) Path of the java executable.","title":"lsp-magik-java-path"},{"location":"page/lsp-magik/#lsp-magik-lint-override-config-file","text":"Type: string Default: nil Override path to magiklintrc.properties.","title":"lsp-magik-lint-override-config-file"},{"location":"page/lsp-magik/#lsp-magik-ls-path","text":"Type: string Default: /home/runner/.emacs.d/.cache/lsp/magik-ls/magik-language-server-0.8.0.jar Path of the language server.","title":"lsp-magik-ls-path"},{"location":"page/lsp-magik/#lsp-magik-smallworld-gis","text":"Type: string Default: nil Path to Smallworld Core.","title":"lsp-magik-smallworld-gis"},{"location":"page/lsp-magik/#lsp-magik-trace-server","text":"Type: (choice (const off) (const message) (const verbose)) Default: off Traces the communication between VS Code and the Magik language server.","title":"lsp-magik-trace-server"},{"location":"page/lsp-magik/#lsp-magik-typing-enable-checks","text":"Type: boolean Default: nil Enable typing checks.","title":"lsp-magik-typing-enable-checks"},{"location":"page/lsp-magik/#lsp-magik-typing-type-database-paths","text":"Type: lsp-string-vector Default: [] Paths to type databases.","title":"lsp-magik-typing-type-database-paths"},{"location":"page/lsp-magik/#lsp-magik-version","text":"Type: string Default: 0.8.0 Version of LSP server.","title":"lsp-magik-version"},{"location":"page/lsp-markdown/","text":"Markdown # Server # For more information about the LSP server, check unified-language-server (deprecated in favor of remark-language-server) . Installation # npm i -g unified-language-server Debugger: Not available # Available configurations # lsp-markdown-remark-check-text-with-mutator # Type: lsp-string-vector Default: [#remark-retext #parse-latin] Vector of additional mutators. For a complete list of plugins, check: https://github.com/unifiedjs/unified-language-server/blob/main/CONFIGURATION.md#re-using-settings lsp-markdown-remark-check-text-with-setting # Type: (choice ((const retext-english) (const remark-parse))) Default: retext-english Configure checkTextWith subproperty. For a complete list of plugins, check: https://github.com/unifiedjs/unified-language-server/blob/main/CONFIGURATION.md#re-using-settings lsp-markdown-remark-plugins # Type: lsp-string-vector Default: [[#remark-preset-lint-markdown-style-guide]] The JSON configuration object for plugins. For a complete list of plugins, check: https://github.com/unifiedjs/unified-language-server/blob/main/CONFIGURATION.md#re-using-settings lsp-markdown-server-command # Type: string Default: unified-language-server The binary (or full path to binary) which executes the server. lsp-markdown-server-command-args # Type: (repeat 'string) Default: (--parser=remark-parse --stdio) Command-line arguments for the markdown lsp server.","title":"Markdown"},{"location":"page/lsp-markdown/#markdown","text":"","title":"Markdown"},{"location":"page/lsp-markdown/#server","text":"For more information about the LSP server, check unified-language-server (deprecated in favor of remark-language-server) .","title":"Server"},{"location":"page/lsp-markdown/#installation","text":"npm i -g unified-language-server","title":"Installation"},{"location":"page/lsp-markdown/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-markdown/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-markdown/#lsp-markdown-remark-check-text-with-mutator","text":"Type: lsp-string-vector Default: [#remark-retext #parse-latin] Vector of additional mutators. For a complete list of plugins, check: https://github.com/unifiedjs/unified-language-server/blob/main/CONFIGURATION.md#re-using-settings","title":"lsp-markdown-remark-check-text-with-mutator"},{"location":"page/lsp-markdown/#lsp-markdown-remark-check-text-with-setting","text":"Type: (choice ((const retext-english) (const remark-parse))) Default: retext-english Configure checkTextWith subproperty. For a complete list of plugins, check: https://github.com/unifiedjs/unified-language-server/blob/main/CONFIGURATION.md#re-using-settings","title":"lsp-markdown-remark-check-text-with-setting"},{"location":"page/lsp-markdown/#lsp-markdown-remark-plugins","text":"Type: lsp-string-vector Default: [[#remark-preset-lint-markdown-style-guide]] The JSON configuration object for plugins. For a complete list of plugins, check: https://github.com/unifiedjs/unified-language-server/blob/main/CONFIGURATION.md#re-using-settings","title":"lsp-markdown-remark-plugins"},{"location":"page/lsp-markdown/#lsp-markdown-server-command","text":"Type: string Default: unified-language-server The binary (or full path to binary) which executes the server.","title":"lsp-markdown-server-command"},{"location":"page/lsp-markdown/#lsp-markdown-server-command-args","text":"Type: (repeat 'string) Default: (--parser=remark-parse --stdio) Command-line arguments for the markdown lsp server.","title":"lsp-markdown-server-command-args"},{"location":"page/lsp-marksman/","text":"Marksman # Server # For more information about the LSP server, check marksman . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-marksman-download-url # Type: string Default: https://github.com/artempyanykh/marksman/releases/latest/download/marksman-linux-x64 Automatic download url for Marksman. lsp-marksman-server-command # Type: string Default: marksman The binary (or full path to binary) which executes the server. lsp-marksman-server-command-args # Type: (repeat 'string) Default: nil Command-line arguments for the marksman lsp server. Not normally Needed. lsp-marksman-store-path # Type: file Default: ~/.emacs.d/.cache/lsp/marksman/marksman The path to the file in which marksman will be stored.","title":"Marksman"},{"location":"page/lsp-marksman/#marksman","text":"","title":"Marksman"},{"location":"page/lsp-marksman/#server","text":"For more information about the LSP server, check marksman .","title":"Server"},{"location":"page/lsp-marksman/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-marksman/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-marksman/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-marksman/#lsp-marksman-download-url","text":"Type: string Default: https://github.com/artempyanykh/marksman/releases/latest/download/marksman-linux-x64 Automatic download url for Marksman.","title":"lsp-marksman-download-url"},{"location":"page/lsp-marksman/#lsp-marksman-server-command","text":"Type: string Default: marksman The binary (or full path to binary) which executes the server.","title":"lsp-marksman-server-command"},{"location":"page/lsp-marksman/#lsp-marksman-server-command-args","text":"Type: (repeat 'string) Default: nil Command-line arguments for the marksman lsp server. Not normally Needed.","title":"lsp-marksman-server-command-args"},{"location":"page/lsp-marksman/#lsp-marksman-store-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/marksman/marksman The path to the file in which marksman will be stored.","title":"lsp-marksman-store-path"},{"location":"page/lsp-mdx/","text":"mdx # Server # For more information about the LSP server, check mdx-analyzer . Installation # npm install -g @mdx-js/language-server Debugger: Not available # Available configurations # lsp-mdx-server-command # Type: string Default: mdx-language-server The binary (or full path to binary) which executes the server. lsp-mdx-server-command-args # Type: (repeat 'string) Default: (--stdio) Command-line arguments for the mdx lsp server.","title":"MDX"},{"location":"page/lsp-mdx/#mdx","text":"","title":"mdx"},{"location":"page/lsp-mdx/#server","text":"For more information about the LSP server, check mdx-analyzer .","title":"Server"},{"location":"page/lsp-mdx/#installation","text":"npm install -g @mdx-js/language-server","title":"Installation"},{"location":"page/lsp-mdx/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-mdx/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-mdx/#lsp-mdx-server-command","text":"Type: string Default: mdx-language-server The binary (or full path to binary) which executes the server.","title":"lsp-mdx-server-command"},{"location":"page/lsp-mdx/#lsp-mdx-server-command-args","text":"Type: (repeat 'string) Default: (--stdio) Command-line arguments for the mdx lsp server.","title":"lsp-mdx-server-command-args"},{"location":"page/lsp-millet/","text":"Standard ML (Millet) # Server # For more information about the LSP server, check millet . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Lsp millet"},{"location":"page/lsp-millet/#standard-ml-millet","text":"","title":"Standard ML (Millet)"},{"location":"page/lsp-millet/#server","text":"For more information about the LSP server, check millet .","title":"Server"},{"location":"page/lsp-millet/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-millet/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-millet/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-mint/","text":"mint-lang # Server # For more information about the LSP server, check mint . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-mint-executable # Type: file Default: (mint ls) Command to start the mint language server.","title":"Lsp mint"},{"location":"page/lsp-mint/#mint-lang","text":"","title":"mint-lang"},{"location":"page/lsp-mint/#server","text":"For more information about the LSP server, check mint .","title":"Server"},{"location":"page/lsp-mint/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-mint/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-mint/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-mint/#lsp-clients-mint-executable","text":"Type: file Default: (mint ls) Command to start the mint language server.","title":"lsp-clients-mint-executable"},{"location":"page/lsp-move/","text":"Move Language # Server # For more information about the LSP server, check move-analyzer . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-move-analyzer-args # Type: (repeat string) Default: nil Extra arguments for the move-analyzer executable. lsp-clients-move-analyzer-executable # Type: file Default: move-analyzer The move-analyzer executable to use. Leave as just the executable name to use the default behavior of finding the executable with exec-path .","title":"Move"},{"location":"page/lsp-move/#move-language","text":"","title":"Move Language"},{"location":"page/lsp-move/#server","text":"For more information about the LSP server, check move-analyzer .","title":"Server"},{"location":"page/lsp-move/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-move/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-move/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-move/#lsp-clients-move-analyzer-args","text":"Type: (repeat string) Default: nil Extra arguments for the move-analyzer executable.","title":"lsp-clients-move-analyzer-args"},{"location":"page/lsp-move/#lsp-clients-move-analyzer-executable","text":"Type: file Default: move-analyzer The move-analyzer executable to use. Leave as just the executable name to use the default behavior of finding the executable with exec-path .","title":"lsp-clients-move-analyzer-executable"},{"location":"page/lsp-nginx/","text":"Nginx # Server # For more information about the LSP server, check nginx-lsp . Installation # pip install -U nginx-language-server Debugger: Not available # Available configurations # lsp-nginx-server-command # Type: (repeat string) Default: (nginx-language-server) Command to start Nginx Language Server.","title":"Nginx"},{"location":"page/lsp-nginx/#nginx","text":"","title":"Nginx"},{"location":"page/lsp-nginx/#server","text":"For more information about the LSP server, check nginx-lsp .","title":"Server"},{"location":"page/lsp-nginx/#installation","text":"pip install -U nginx-language-server","title":"Installation"},{"location":"page/lsp-nginx/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-nginx/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-nginx/#lsp-nginx-server-command","text":"Type: (repeat string) Default: (nginx-language-server) Command to start Nginx Language Server.","title":"lsp-nginx-server-command"},{"location":"page/lsp-nim/","text":"Nim # Server # For more information about the LSP server, check nimlsp . Installation # nimble install nimlsp Debugger: Not available # Available configurations # lsp-nim-auto-check-file # Type: boolean Default: t Check the file on the fly lsp-nim-auto-check-project # Type: boolean Default: t Check the project after saving the file lsp-nim-langserver # Type: number Default: nimlangserver Path to nimlangserver lsp-nim-lsp # Type: number Default: nimlsp Path to nimlsp lsp-nim-nimsuggest-path # Type: number Default: nimsuggest Path to nimsuggest to use. lsp-nim-project-mapping # Type: (lsp-repeatable-vector plist) Default: [] Nimsuggest project mapping. Sample value [(:projectFile \"root.nim\" :fileRegex \".*.nim\")] lsp-nim-timeout # Type: number Default: 120000 Timeout for restarting nimsuggest","title":"Nim"},{"location":"page/lsp-nim/#nim","text":"","title":"Nim"},{"location":"page/lsp-nim/#server","text":"For more information about the LSP server, check nimlsp .","title":"Server"},{"location":"page/lsp-nim/#installation","text":"nimble install nimlsp","title":"Installation"},{"location":"page/lsp-nim/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-nim/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-nim/#lsp-nim-auto-check-file","text":"Type: boolean Default: t Check the file on the fly","title":"lsp-nim-auto-check-file"},{"location":"page/lsp-nim/#lsp-nim-auto-check-project","text":"Type: boolean Default: t Check the project after saving the file","title":"lsp-nim-auto-check-project"},{"location":"page/lsp-nim/#lsp-nim-langserver","text":"Type: number Default: nimlangserver Path to nimlangserver","title":"lsp-nim-langserver"},{"location":"page/lsp-nim/#lsp-nim-lsp","text":"Type: number Default: nimlsp Path to nimlsp","title":"lsp-nim-lsp"},{"location":"page/lsp-nim/#lsp-nim-nimsuggest-path","text":"Type: number Default: nimsuggest Path to nimsuggest to use.","title":"lsp-nim-nimsuggest-path"},{"location":"page/lsp-nim/#lsp-nim-project-mapping","text":"Type: (lsp-repeatable-vector plist) Default: [] Nimsuggest project mapping. Sample value [(:projectFile \"root.nim\" :fileRegex \".*.nim\")]","title":"lsp-nim-project-mapping"},{"location":"page/lsp-nim/#lsp-nim-timeout","text":"Type: number Default: 120000 Timeout for restarting nimsuggest","title":"lsp-nim-timeout"},{"location":"page/lsp-nix-nil/","text":"Nix # Server # For more information about the LSP server, check nix-nil . Installation # nix-env -i nil || nix profile install nixpkgs#nil Debugger: Not available # Available configurations # lsp-nix-nil-exclude-files-diagnostic # Type: lsp-string-vector Default: nil Files to exclude from showing diagnostics. lsp-nix-nil-formatter # Type: lsp-string-vector Default: nil External formatter command with arguments. Example [nixpkgs-fmt]. lsp-nix-nil-ignored-diagnostics # Type: lsp-string-vector Default: nil Ignored diagnostic kinds. lsp-nix-nil-server-path # Type: string Default: nil Executable path for the server.","title":"Nix (nil)"},{"location":"page/lsp-nix-nil/#nix","text":"","title":"Nix"},{"location":"page/lsp-nix-nil/#server","text":"For more information about the LSP server, check nix-nil .","title":"Server"},{"location":"page/lsp-nix-nil/#installation","text":"nix-env -i nil || nix profile install nixpkgs#nil","title":"Installation"},{"location":"page/lsp-nix-nil/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-nix-nil/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-nix-nil/#lsp-nix-nil-exclude-files-diagnostic","text":"Type: lsp-string-vector Default: nil Files to exclude from showing diagnostics.","title":"lsp-nix-nil-exclude-files-diagnostic"},{"location":"page/lsp-nix-nil/#lsp-nix-nil-formatter","text":"Type: lsp-string-vector Default: nil External formatter command with arguments. Example [nixpkgs-fmt].","title":"lsp-nix-nil-formatter"},{"location":"page/lsp-nix-nil/#lsp-nix-nil-ignored-diagnostics","text":"Type: lsp-string-vector Default: nil Ignored diagnostic kinds.","title":"lsp-nix-nil-ignored-diagnostics"},{"location":"page/lsp-nix-nil/#lsp-nix-nil-server-path","text":"Type: string Default: nil Executable path for the server.","title":"lsp-nix-nil-server-path"},{"location":"page/lsp-nix/","text":"Nix # Server # For more information about the LSP server, check rnix-lsp . Installation # nix-env -i rnix-lsp Debugger: Not available # Available configurations #","title":"Nix (rnix-lsp)"},{"location":"page/lsp-nix/#nix","text":"","title":"Nix"},{"location":"page/lsp-nix/#server","text":"For more information about the LSP server, check rnix-lsp .","title":"Server"},{"location":"page/lsp-nix/#installation","text":"nix-env -i rnix-lsp","title":"Installation"},{"location":"page/lsp-nix/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-nix/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ocaml-lsp-server/","text":"OCaml # Server # For more information about the LSP server, check ocaml-lsp-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"OCaml (ocaml-lsp)"},{"location":"page/lsp-ocaml-lsp-server/#ocaml","text":"","title":"OCaml"},{"location":"page/lsp-ocaml-lsp-server/#server","text":"For more information about the LSP server, check ocaml-lsp-server .","title":"Server"},{"location":"page/lsp-ocaml-lsp-server/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-ocaml-lsp-server/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ocaml-lsp-server/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ocaml/","text":"OCaml # Server # For more information about the LSP server, check ocaml-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-cut-signature # Type: (choice (symbol :tag Default behaviour 'cut) (symbol :tag Display all the lines with spaces 'space)) Default: space If non-nil, signatures returned on hover will not be split on newline. lsp-ocaml-lang-server-command # Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: (ocaml-language-server --stdio) Command to start ocaml-language-server. lsp-ocaml-lsp-server-command # Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: (ocamllsp) Command to start ocaml-language-server.","title":"Lsp ocaml"},{"location":"page/lsp-ocaml/#ocaml","text":"","title":"OCaml"},{"location":"page/lsp-ocaml/#server","text":"For more information about the LSP server, check ocaml-language-server .","title":"Server"},{"location":"page/lsp-ocaml/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-ocaml/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ocaml/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ocaml/#lsp-cut-signature","text":"Type: (choice (symbol :tag Default behaviour 'cut) (symbol :tag Display all the lines with spaces 'space)) Default: space If non-nil, signatures returned on hover will not be split on newline.","title":"lsp-cut-signature"},{"location":"page/lsp-ocaml/#lsp-ocaml-lang-server-command","text":"Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: (ocaml-language-server --stdio) Command to start ocaml-language-server.","title":"lsp-ocaml-lang-server-command"},{"location":"page/lsp-ocaml/#lsp-ocaml-lsp-server-command","text":"Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: (ocamllsp) Command to start ocaml-language-server.","title":"lsp-ocaml-lsp-server-command"},{"location":"page/lsp-openscad/","text":"OpenSCAD # Server # For more information about the LSP server, check openscad-lsp . Installation # cargo install openscad-lsp For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-openscad-format-exe # Type: string Default: clang-format Path to the clang-format executable. lsp-openscad-format-style # Type: string Default: file Style argument to use with clang-format. lsp-openscad-search-paths # Type: string Default: `` Customized search path. lsp-openscad-server # Type: file Default: openscad-lsp Path to the openscad language server. lsp-openscad-server-connection-type # Type: symbol Default: tcp Type of connection to use with the OpenSCAD Language Server: tcp or stdio.","title":"OpenSCAD"},{"location":"page/lsp-openscad/#openscad","text":"","title":"OpenSCAD"},{"location":"page/lsp-openscad/#server","text":"For more information about the LSP server, check openscad-lsp .","title":"Server"},{"location":"page/lsp-openscad/#installation","text":"cargo install openscad-lsp For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-openscad/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-openscad/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-openscad/#lsp-openscad-format-exe","text":"Type: string Default: clang-format Path to the clang-format executable.","title":"lsp-openscad-format-exe"},{"location":"page/lsp-openscad/#lsp-openscad-format-style","text":"Type: string Default: file Style argument to use with clang-format.","title":"lsp-openscad-format-style"},{"location":"page/lsp-openscad/#lsp-openscad-search-paths","text":"Type: string Default: `` Customized search path.","title":"lsp-openscad-search-paths"},{"location":"page/lsp-openscad/#lsp-openscad-server","text":"Type: file Default: openscad-lsp Path to the openscad language server.","title":"lsp-openscad-server"},{"location":"page/lsp-openscad/#lsp-openscad-server-connection-type","text":"Type: symbol Default: tcp Type of connection to use with the OpenSCAD Language Server: tcp or stdio.","title":"lsp-openscad-server-connection-type"},{"location":"page/lsp-pascal/","text":"Pascal/Object Pascal # Server # For more information about the LSP server, check pascal-language-server . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Pascal/Object Pascal"},{"location":"page/lsp-pascal/#pascalobject-pascal","text":"","title":"Pascal/Object Pascal"},{"location":"page/lsp-pascal/#server","text":"For more information about the LSP server, check pascal-language-server .","title":"Server"},{"location":"page/lsp-pascal/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-pascal/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-pascal/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-perl/","text":"Perl # Server # For more information about the LSP server, check Perl::LanguageServer . Installation # cpan Perl::LanguageServer Debugger: Not available # Available configurations # lsp-perl-file-filter # Type: lsp-string-vector Default: nil A vector of directories filtering perl file. Defaults to [\".pm\" \".pl\"] if nil. lsp-perl-ignore-dirs # Type: lsp-string-vector Default: nil A vector of directories to ignore. Defaults to [\".vscode\" \".git\" \".svn\"] if nil. lsp-perl-language-server-client-version # Type: string Default: 2.1.0 Choose client version. lsp-perl-language-server-path # Type: string Default: perl Path to perl interpreter. lsp-perl-language-server-port # Type: integer Default: 13603 Choose listen port. lsp-perl-log-level # Type: integer Default: nil Log level 0-2. Defaults to 0. lsp-perl-perl-cmd # Type: string Default: nil Path to perl interpreter used in Perl Language Server. Defaults to perl if nil. lsp-perl-perl-inc # Type: lsp-string-vector Default: nil A vector of paths to add to perl library path. lsp-perl-show-local-vars # Type: boolean Default: nil If true, show also local variables in symbol view. Defaults to false if nil","title":"Perl (Perl::LanguageServer)"},{"location":"page/lsp-perl/#perl","text":"","title":"Perl"},{"location":"page/lsp-perl/#server","text":"For more information about the LSP server, check Perl::LanguageServer .","title":"Server"},{"location":"page/lsp-perl/#installation","text":"cpan Perl::LanguageServer","title":"Installation"},{"location":"page/lsp-perl/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-perl/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-perl/#lsp-perl-file-filter","text":"Type: lsp-string-vector Default: nil A vector of directories filtering perl file. Defaults to [\".pm\" \".pl\"] if nil.","title":"lsp-perl-file-filter"},{"location":"page/lsp-perl/#lsp-perl-ignore-dirs","text":"Type: lsp-string-vector Default: nil A vector of directories to ignore. Defaults to [\".vscode\" \".git\" \".svn\"] if nil.","title":"lsp-perl-ignore-dirs"},{"location":"page/lsp-perl/#lsp-perl-language-server-client-version","text":"Type: string Default: 2.1.0 Choose client version.","title":"lsp-perl-language-server-client-version"},{"location":"page/lsp-perl/#lsp-perl-language-server-path","text":"Type: string Default: perl Path to perl interpreter.","title":"lsp-perl-language-server-path"},{"location":"page/lsp-perl/#lsp-perl-language-server-port","text":"Type: integer Default: 13603 Choose listen port.","title":"lsp-perl-language-server-port"},{"location":"page/lsp-perl/#lsp-perl-log-level","text":"Type: integer Default: nil Log level 0-2. Defaults to 0.","title":"lsp-perl-log-level"},{"location":"page/lsp-perl/#lsp-perl-perl-cmd","text":"Type: string Default: nil Path to perl interpreter used in Perl Language Server. Defaults to perl if nil.","title":"lsp-perl-perl-cmd"},{"location":"page/lsp-perl/#lsp-perl-perl-inc","text":"Type: lsp-string-vector Default: nil A vector of paths to add to perl library path.","title":"lsp-perl-perl-inc"},{"location":"page/lsp-perl/#lsp-perl-show-local-vars","text":"Type: boolean Default: nil If true, show also local variables in symbol view. Defaults to false if nil","title":"lsp-perl-show-local-vars"},{"location":"page/lsp-perlnavigator/","text":"Perl Navigator # Server # For more information about the LSP server, check perlnavigator . Installation # https://github.com/bscan/PerlNavigator/releases Debugger: Not available # Available configurations # lsp-perlnavigator-autoinstall-dir # Type: directory Default: ~/.emacs.d/.cache/lsp/perlnavigator Automatic installation directory for Perl Navigator. lsp-perlnavigator-download-url # Type: string Default: https://github.com/bscan/PerlNavigator/releases/latest/download/perlnavigator-linux-x86_64.zip Automatic download url for PerlNavigator. lsp-perlnavigator-enable-warnings # Type: boolean Default: t Enable warnings using -Mwarnings command switch. lsp-perlnavigator-executable # Type: file Default: perlnavigator Location of the perlnavigator binary. lsp-perlnavigator-include-paths # Type: lsp-string-vector Default: nil Array of paths added to @INC. You can use $workspaceRoot as a placeholder. lsp-perlnavigator-logging # Type: boolean Default: t Log to stdout from the navigator. Viewable in the Perl Navigator LSP log. lsp-perlnavigator-perl-path # Type: string Default: perl Full path to the perl executable (no aliases, .bat files or ~/). lsp-perlnavigator-perlcritic-enabled # Type: boolean Default: t Enable perl critic. lsp-perlnavigator-perlcritic-profile # Type: string Default: nil Path to perl critic profile. Otherwise perlcritic itself will default to ~/.perlcriticrc. (no aliases, .bat files or ~/). lsp-perlnavigator-perltidy-profile # Type: string Default: nil Path to perl tidy profile (no aliases, .bat files or ~/). lsp-perlnavigator-severity1 # Type: (choice (:tag error warning info hint none)) Default: hint Editor Diagnostic severity level for Critic severity 1. lsp-perlnavigator-severity2 # Type: (choice (:tag error warning info hint none)) Default: hint Editor Diagnostic severity level for Critic severity 2. lsp-perlnavigator-severity3 # Type: (choice (:tag error warning info hint none)) Default: hint Editor Diagnostic severity level for Critic severity 3. lsp-perlnavigator-severity4 # Type: (choice (:tag error warning info hint none)) Default: info Editor Diagnostic severity level for Critic severity 4. lsp-perlnavigator-severity5 # Type: (choice (:tag error warning info hint none)) Default: warning Editor Diagnostic severity level for Critic severity 5. lsp-perlnavigator-trace-server # Type: (choice (:tag off messages verbose)) Default: messages Traces the communication between VS Code and the language server.","title":"Perl (Navigator)"},{"location":"page/lsp-perlnavigator/#perl-navigator","text":"","title":"Perl Navigator"},{"location":"page/lsp-perlnavigator/#server","text":"For more information about the LSP server, check perlnavigator .","title":"Server"},{"location":"page/lsp-perlnavigator/#installation","text":"https://github.com/bscan/PerlNavigator/releases","title":"Installation"},{"location":"page/lsp-perlnavigator/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-perlnavigator/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-autoinstall-dir","text":"Type: directory Default: ~/.emacs.d/.cache/lsp/perlnavigator Automatic installation directory for Perl Navigator.","title":"lsp-perlnavigator-autoinstall-dir"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-download-url","text":"Type: string Default: https://github.com/bscan/PerlNavigator/releases/latest/download/perlnavigator-linux-x86_64.zip Automatic download url for PerlNavigator.","title":"lsp-perlnavigator-download-url"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-enable-warnings","text":"Type: boolean Default: t Enable warnings using -Mwarnings command switch.","title":"lsp-perlnavigator-enable-warnings"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-executable","text":"Type: file Default: perlnavigator Location of the perlnavigator binary.","title":"lsp-perlnavigator-executable"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-include-paths","text":"Type: lsp-string-vector Default: nil Array of paths added to @INC. You can use $workspaceRoot as a placeholder.","title":"lsp-perlnavigator-include-paths"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-logging","text":"Type: boolean Default: t Log to stdout from the navigator. Viewable in the Perl Navigator LSP log.","title":"lsp-perlnavigator-logging"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-perl-path","text":"Type: string Default: perl Full path to the perl executable (no aliases, .bat files or ~/).","title":"lsp-perlnavigator-perl-path"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-perlcritic-enabled","text":"Type: boolean Default: t Enable perl critic.","title":"lsp-perlnavigator-perlcritic-enabled"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-perlcritic-profile","text":"Type: string Default: nil Path to perl critic profile. Otherwise perlcritic itself will default to ~/.perlcriticrc. (no aliases, .bat files or ~/).","title":"lsp-perlnavigator-perlcritic-profile"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-perltidy-profile","text":"Type: string Default: nil Path to perl tidy profile (no aliases, .bat files or ~/).","title":"lsp-perlnavigator-perltidy-profile"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-severity1","text":"Type: (choice (:tag error warning info hint none)) Default: hint Editor Diagnostic severity level for Critic severity 1.","title":"lsp-perlnavigator-severity1"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-severity2","text":"Type: (choice (:tag error warning info hint none)) Default: hint Editor Diagnostic severity level for Critic severity 2.","title":"lsp-perlnavigator-severity2"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-severity3","text":"Type: (choice (:tag error warning info hint none)) Default: hint Editor Diagnostic severity level for Critic severity 3.","title":"lsp-perlnavigator-severity3"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-severity4","text":"Type: (choice (:tag error warning info hint none)) Default: info Editor Diagnostic severity level for Critic severity 4.","title":"lsp-perlnavigator-severity4"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-severity5","text":"Type: (choice (:tag error warning info hint none)) Default: warning Editor Diagnostic severity level for Critic severity 5.","title":"lsp-perlnavigator-severity5"},{"location":"page/lsp-perlnavigator/#lsp-perlnavigator-trace-server","text":"Type: (choice (:tag off messages verbose)) Default: messages Traces the communication between VS Code and the language server.","title":"lsp-perlnavigator-trace-server"},{"location":"page/lsp-php/","text":"PHP # Server # For more information about the LSP server, check php-language-server . Installation # composer require felixfbecker/language-server For more instructions on how to install manually, check here . Debugger: Yes # Available configurations # lsp-clients-php-server-command # Type: (repeat string) Default: nil Install directory for php-language-server. lsp-php-composer-dir # Type: string Default: nil Home directory of composer. lsp-clients-php-server-command # Type: (repeat string) Default: nil Install directory for php-language-server. lsp-php-composer-dir # Type: string Default: nil Home directory of composer.","title":"PHP (felixbecker)"},{"location":"page/lsp-php/#php","text":"","title":"PHP"},{"location":"page/lsp-php/#server","text":"For more information about the LSP server, check php-language-server .","title":"Server"},{"location":"page/lsp-php/#installation","text":"composer require felixfbecker/language-server For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-php/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-php/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-php/#lsp-clients-php-server-command","text":"Type: (repeat string) Default: nil Install directory for php-language-server.","title":"lsp-clients-php-server-command"},{"location":"page/lsp-php/#lsp-php-composer-dir","text":"Type: string Default: nil Home directory of composer.","title":"lsp-php-composer-dir"},{"location":"page/lsp-php/#lsp-clients-php-server-command_1","text":"Type: (repeat string) Default: nil Install directory for php-language-server.","title":"lsp-clients-php-server-command"},{"location":"page/lsp-php/#lsp-php-composer-dir_1","text":"Type: string Default: nil Home directory of composer.","title":"lsp-php-composer-dir"},{"location":"page/lsp-phpactor/","text":"Phpactor # Server # For more information about the LSP server, check phpactor . Installation # For more instructions on how to install manually, check here . Debugger: yes # Available configurations # lsp-clients-php-server-command # Type: (repeat string) Default: nil Install directory for php-language-server. lsp-php-composer-dir # Type: string Default: nil Home directory of composer. lsp-phpactor-extension-alist # Type: (alist :key-type string :value-type string) Default: ((Phpstan . phpactor/language-server-phpstan-extension) (Behat . phpactor/behat-extension) (PHPUnit . phpactor/phpunit-extension)) Alist mapping extension names to composer packages. These extensions can be installed using lsp-phpactor-install-extension . lsp-phpactor-path # Type: string Default: nil Path to the phpactor command.","title":"PHP (phpactor)"},{"location":"page/lsp-phpactor/#phpactor","text":"","title":"Phpactor"},{"location":"page/lsp-phpactor/#server","text":"For more information about the LSP server, check phpactor .","title":"Server"},{"location":"page/lsp-phpactor/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-phpactor/#debugger-yes","text":"","title":"Debugger: yes"},{"location":"page/lsp-phpactor/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-phpactor/#lsp-clients-php-server-command","text":"Type: (repeat string) Default: nil Install directory for php-language-server.","title":"lsp-clients-php-server-command"},{"location":"page/lsp-phpactor/#lsp-php-composer-dir","text":"Type: string Default: nil Home directory of composer.","title":"lsp-php-composer-dir"},{"location":"page/lsp-phpactor/#lsp-phpactor-extension-alist","text":"Type: (alist :key-type string :value-type string) Default: ((Phpstan . phpactor/language-server-phpstan-extension) (Behat . phpactor/behat-extension) (PHPUnit . phpactor/phpunit-extension)) Alist mapping extension names to composer packages. These extensions can be installed using lsp-phpactor-install-extension .","title":"lsp-phpactor-extension-alist"},{"location":"page/lsp-phpactor/#lsp-phpactor-path","text":"Type: string Default: nil Path to the phpactor command.","title":"lsp-phpactor-path"},{"location":"page/lsp-pls/","text":"PLS # Server # For more information about the LSP server, check Perl Language Server . Installation # cpan PLS Debugger: Not available # Available configurations # lsp-pls-arguments # Type: (repeat 'string) Default: nil Additional arguments needed to execute PLS. lsp-pls-executable # Type: (string) Default: pls Full path to the PLS executable. lsp-pls-include # Type: (repeat 'string) Default: nil Paths to be added to your @INC. lsp-pls-perlcritic-enabled # Type: (boolean) Default: t Enable perlcritic checking. lsp-pls-perlcritic-rc # Type: (string) Default: nil Path to your .perlcriticrc file. Default is \"~/.perlcriticrc\" when not configured. lsp-pls-perltidy-rc # Type: (string) Default: nil Path to your .perltidyrc file. Default is \"~/.perltidyrc\" when not configured. lsp-pls-syntax-args # Type: (repeat 'string) Default: nil Additional arguments to pass to Perl when syntax checking. This is useful if there is a BEGIN block in your code that changes behavior depending on the contents of @ARGV. lsp-pls-syntax-enabled # Type: (boolean) Default: t Enable syntax checking. lsp-pls-syntax-perl # Type: (string) Default: nil Full path to an alternate perl used for syntax checking. By default, the perl used to run PLS will be used. lsp-pls-working-dir # Type: (string) Default: nil Working directory to run PLS in. Defaults to the workspace root when not configured.","title":"Perl (PLS)"},{"location":"page/lsp-pls/#pls","text":"","title":"PLS"},{"location":"page/lsp-pls/#server","text":"For more information about the LSP server, check Perl Language Server .","title":"Server"},{"location":"page/lsp-pls/#installation","text":"cpan PLS","title":"Installation"},{"location":"page/lsp-pls/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-pls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-pls/#lsp-pls-arguments","text":"Type: (repeat 'string) Default: nil Additional arguments needed to execute PLS.","title":"lsp-pls-arguments"},{"location":"page/lsp-pls/#lsp-pls-executable","text":"Type: (string) Default: pls Full path to the PLS executable.","title":"lsp-pls-executable"},{"location":"page/lsp-pls/#lsp-pls-include","text":"Type: (repeat 'string) Default: nil Paths to be added to your @INC.","title":"lsp-pls-include"},{"location":"page/lsp-pls/#lsp-pls-perlcritic-enabled","text":"Type: (boolean) Default: t Enable perlcritic checking.","title":"lsp-pls-perlcritic-enabled"},{"location":"page/lsp-pls/#lsp-pls-perlcritic-rc","text":"Type: (string) Default: nil Path to your .perlcriticrc file. Default is \"~/.perlcriticrc\" when not configured.","title":"lsp-pls-perlcritic-rc"},{"location":"page/lsp-pls/#lsp-pls-perltidy-rc","text":"Type: (string) Default: nil Path to your .perltidyrc file. Default is \"~/.perltidyrc\" when not configured.","title":"lsp-pls-perltidy-rc"},{"location":"page/lsp-pls/#lsp-pls-syntax-args","text":"Type: (repeat 'string) Default: nil Additional arguments to pass to Perl when syntax checking. This is useful if there is a BEGIN block in your code that changes behavior depending on the contents of @ARGV.","title":"lsp-pls-syntax-args"},{"location":"page/lsp-pls/#lsp-pls-syntax-enabled","text":"Type: (boolean) Default: t Enable syntax checking.","title":"lsp-pls-syntax-enabled"},{"location":"page/lsp-pls/#lsp-pls-syntax-perl","text":"Type: (string) Default: nil Full path to an alternate perl used for syntax checking. By default, the perl used to run PLS will be used.","title":"lsp-pls-syntax-perl"},{"location":"page/lsp-pls/#lsp-pls-working-dir","text":"Type: (string) Default: nil Working directory to run PLS in. Defaults to the workspace root when not configured.","title":"lsp-pls-working-dir"},{"location":"page/lsp-prolog/","text":"Prolog # Server # For more information about the LSP server, check lsp_server . Installation # swipl -g 'pack_install(lsp_server).' Debugger: Not available # Available configurations #","title":"Prolog"},{"location":"page/lsp-prolog/#prolog","text":"","title":"Prolog"},{"location":"page/lsp-prolog/#server","text":"For more information about the LSP server, check lsp_server .","title":"Server"},{"location":"page/lsp-prolog/#installation","text":"swipl -g 'pack_install(lsp_server).'","title":"Installation"},{"location":"page/lsp-prolog/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-prolog/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-purescript/","text":"PureScript # Server # For more information about the LSP server, check purescript-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET pursls RET . npm i -g purescript-language-server For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-purescript-add-npm-path # Type: boolean Default: nil Whether to add the local npm bin directory to the PATH. lsp-purescript-add-spago-sources # Type: boolean Default: t Whether to add spago sources to the globs. Passed to the IDE server for source locations. lsp-purescript-formatter # Type: (choice (:tag none purty purs-tidy pose)) Default: purty Tool to use to for formatting. Must be installed and on PATH (or npm installed with addNpmPath set) lsp-purescript-server-args # Type: (repeat string) Default: (--stdio) Arguments to pass to the server. lsp-purescript-server-executable # Type: string Default: nil Path to server executable.","title":"PureScript"},{"location":"page/lsp-purescript/#purescript","text":"","title":"PureScript"},{"location":"page/lsp-purescript/#server","text":"For more information about the LSP server, check purescript-language-server .","title":"Server"},{"location":"page/lsp-purescript/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET pursls RET . npm i -g purescript-language-server For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-purescript/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-purescript/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-purescript/#lsp-purescript-add-npm-path","text":"Type: boolean Default: nil Whether to add the local npm bin directory to the PATH.","title":"lsp-purescript-add-npm-path"},{"location":"page/lsp-purescript/#lsp-purescript-add-spago-sources","text":"Type: boolean Default: t Whether to add spago sources to the globs. Passed to the IDE server for source locations.","title":"lsp-purescript-add-spago-sources"},{"location":"page/lsp-purescript/#lsp-purescript-formatter","text":"Type: (choice (:tag none purty purs-tidy pose)) Default: purty Tool to use to for formatting. Must be installed and on PATH (or npm installed with addNpmPath set)","title":"lsp-purescript-formatter"},{"location":"page/lsp-purescript/#lsp-purescript-server-args","text":"Type: (repeat string) Default: (--stdio) Arguments to pass to the server.","title":"lsp-purescript-server-args"},{"location":"page/lsp-purescript/#lsp-purescript-server-executable","text":"Type: string Default: nil Path to server executable.","title":"lsp-purescript-server-executable"},{"location":"page/lsp-pwsh/","text":"Powershell # Server # For more information about the LSP server, check PowerShellEditorServices . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET pwsh-ls RET . Automatic Debugger: Yes # Available configurations # lsp-pwsh-code-folding-enable # Type: boolean Default: t Enables syntax based code folding. When disabled, the default indentation based code folding is used. lsp-pwsh-code-folding-show-last-line # Type: boolean Default: t Shows the last line of a folded section. Similar to the default VSCode folding style. When disabled, the entire folded region is hidden. lsp-pwsh-code-formatting-align-property-value-pairs # Type: boolean Default: t Align assignment statements in a hashtable or a DSC Configuration. lsp-pwsh-code-formatting-ignore-one-line-block # Type: boolean Default: t Does not reformat one-line code blocks, such as \"if (...) {...} else {...}\". lsp-pwsh-code-formatting-new-line-after-close-brace # Type: boolean Default: t Adds a newline (line break) after a closing brace. lsp-pwsh-code-formatting-new-line-after-open-brace # Type: boolean Default: t Adds a newline (line break) after an open brace. lsp-pwsh-code-formatting-open-brace-on-same-line # Type: boolean Default: t Places open brace on the same line as its associated statement. lsp-pwsh-code-formatting-pipeline-indentation-style # Type: (choice (:tag IncreaseIndentationForFirstPipeline IncreaseIndentationAfterEveryPipeline NoIndentation)) Default: NoIndentation Multi-line pipeline style settings. lsp-pwsh-code-formatting-preset # Type: (choice (:tag Custom Allman OTBS Stroustrup)) Default: Custom Sets the codeformatting options to follow the given indent style. Sets in a way that is compatible with PowerShell syntax. For more information about the brace styles please refer to https://github.com/PoshCode/PowerShellPracticeAndStyle/issues/81. lsp-pwsh-code-formatting-use-correct-casing # Type: boolean Default: nil Use correct casing for cmdlets. lsp-pwsh-code-formatting-whitespace-after-separator # Type: boolean Default: t Adds a space after a separator ( , and ; ). lsp-pwsh-code-formatting-whitespace-around-operator # Type: boolean Default: t Adds spaces before and after an operator ( = , + , - , etc.). lsp-pwsh-code-formatting-whitespace-around-pipe # Type: boolean Default: t Adds a space before and after the pipeline operator ( | ). lsp-pwsh-code-formatting-whitespace-before-open-brace # Type: boolean Default: t Adds a space between a keyword and its associated scriptblock expression. lsp-pwsh-code-formatting-whitespace-before-open-paren # Type: boolean Default: t Adds a space between a keyword (if, elseif, while, switch, etc) and its associated conditional expression. lsp-pwsh-code-formatting-whitespace-inside-brace # Type: boolean Default: t Adds a space after an opening brace ( { ) and before a closing brace ( } ). lsp-pwsh-developer-editor-services-log-level # Type: (choice (:tag Diagnostic Verbose Normal Warning Error)) Default: Normal Sets the log level for the PowerShell Editor Services host executable. Valid values are Diagnostic , Verbose , Normal , Warning , and Error lsp-pwsh-developer-editor-services-wait-for-debugger # Type: boolean Default: nil Launches the language service with the /waitForDebugger flag to force it to wait for a .NET debugger to attach before proceeding. lsp-pwsh-developer-feature-flags # Type: (repeat string) Default: nil An array of strings that enable experimental features in the PowerShell extension. lsp-pwsh-dir # Type: string Default: /home/runner/.emacs.d/.cache/lsp/pwsh Path to PowerShellEditorServices without last slash. lsp-pwsh-exe # Type: string Default: /usr/bin/pwsh PowerShell executable. lsp-pwsh-ext-path # Type: string Default: /home/runner/.emacs.d/.cache/lsp/pwsh The path to powershell vscode extension. lsp-pwsh-github-asset-url # Type: string Default: https://github.com/%s/%s/releases/latest/download/%s GitHub latest asset template url. lsp-pwsh-help-completion # Type: (choice (:tag Disabled BlockComment LineComment)) Default: BlockComment Controls the comment-based help completion behavior triggered by typing ## . Set the generated help style with BlockComment or LineComment . Disable the feature with Disabled . lsp-pwsh-script-analysis-enable # Type: boolean Default: t Enables real-time script analysis from PowerShell Script Analyzer. Uses the newest installed version of the PSScriptAnalyzer module or the version bundled with this extension, if it is newer. lsp-pwsh-script-analysis-settings-path # Type: string Default: `` Specifies the path to a PowerShell Script Analyzer settings file. To override the default settings for all projects, enter an absolute path, or enter a path relative to your workspace.","title":"Powershell"},{"location":"page/lsp-pwsh/#powershell","text":"","title":"Powershell"},{"location":"page/lsp-pwsh/#server","text":"For more information about the LSP server, check PowerShellEditorServices .","title":"Server"},{"location":"page/lsp-pwsh/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET pwsh-ls RET . Automatic","title":"Installation"},{"location":"page/lsp-pwsh/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-pwsh/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-folding-enable","text":"Type: boolean Default: t Enables syntax based code folding. When disabled, the default indentation based code folding is used.","title":"lsp-pwsh-code-folding-enable"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-folding-show-last-line","text":"Type: boolean Default: t Shows the last line of a folded section. Similar to the default VSCode folding style. When disabled, the entire folded region is hidden.","title":"lsp-pwsh-code-folding-show-last-line"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-align-property-value-pairs","text":"Type: boolean Default: t Align assignment statements in a hashtable or a DSC Configuration.","title":"lsp-pwsh-code-formatting-align-property-value-pairs"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-ignore-one-line-block","text":"Type: boolean Default: t Does not reformat one-line code blocks, such as \"if (...) {...} else {...}\".","title":"lsp-pwsh-code-formatting-ignore-one-line-block"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-new-line-after-close-brace","text":"Type: boolean Default: t Adds a newline (line break) after a closing brace.","title":"lsp-pwsh-code-formatting-new-line-after-close-brace"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-new-line-after-open-brace","text":"Type: boolean Default: t Adds a newline (line break) after an open brace.","title":"lsp-pwsh-code-formatting-new-line-after-open-brace"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-open-brace-on-same-line","text":"Type: boolean Default: t Places open brace on the same line as its associated statement.","title":"lsp-pwsh-code-formatting-open-brace-on-same-line"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-pipeline-indentation-style","text":"Type: (choice (:tag IncreaseIndentationForFirstPipeline IncreaseIndentationAfterEveryPipeline NoIndentation)) Default: NoIndentation Multi-line pipeline style settings.","title":"lsp-pwsh-code-formatting-pipeline-indentation-style"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-preset","text":"Type: (choice (:tag Custom Allman OTBS Stroustrup)) Default: Custom Sets the codeformatting options to follow the given indent style. Sets in a way that is compatible with PowerShell syntax. For more information about the brace styles please refer to https://github.com/PoshCode/PowerShellPracticeAndStyle/issues/81.","title":"lsp-pwsh-code-formatting-preset"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-use-correct-casing","text":"Type: boolean Default: nil Use correct casing for cmdlets.","title":"lsp-pwsh-code-formatting-use-correct-casing"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-whitespace-after-separator","text":"Type: boolean Default: t Adds a space after a separator ( , and ; ).","title":"lsp-pwsh-code-formatting-whitespace-after-separator"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-whitespace-around-operator","text":"Type: boolean Default: t Adds spaces before and after an operator ( = , + , - , etc.).","title":"lsp-pwsh-code-formatting-whitespace-around-operator"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-whitespace-around-pipe","text":"Type: boolean Default: t Adds a space before and after the pipeline operator ( | ).","title":"lsp-pwsh-code-formatting-whitespace-around-pipe"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-whitespace-before-open-brace","text":"Type: boolean Default: t Adds a space between a keyword and its associated scriptblock expression.","title":"lsp-pwsh-code-formatting-whitespace-before-open-brace"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-whitespace-before-open-paren","text":"Type: boolean Default: t Adds a space between a keyword (if, elseif, while, switch, etc) and its associated conditional expression.","title":"lsp-pwsh-code-formatting-whitespace-before-open-paren"},{"location":"page/lsp-pwsh/#lsp-pwsh-code-formatting-whitespace-inside-brace","text":"Type: boolean Default: t Adds a space after an opening brace ( { ) and before a closing brace ( } ).","title":"lsp-pwsh-code-formatting-whitespace-inside-brace"},{"location":"page/lsp-pwsh/#lsp-pwsh-developer-editor-services-log-level","text":"Type: (choice (:tag Diagnostic Verbose Normal Warning Error)) Default: Normal Sets the log level for the PowerShell Editor Services host executable. Valid values are Diagnostic , Verbose , Normal , Warning , and Error","title":"lsp-pwsh-developer-editor-services-log-level"},{"location":"page/lsp-pwsh/#lsp-pwsh-developer-editor-services-wait-for-debugger","text":"Type: boolean Default: nil Launches the language service with the /waitForDebugger flag to force it to wait for a .NET debugger to attach before proceeding.","title":"lsp-pwsh-developer-editor-services-wait-for-debugger"},{"location":"page/lsp-pwsh/#lsp-pwsh-developer-feature-flags","text":"Type: (repeat string) Default: nil An array of strings that enable experimental features in the PowerShell extension.","title":"lsp-pwsh-developer-feature-flags"},{"location":"page/lsp-pwsh/#lsp-pwsh-dir","text":"Type: string Default: /home/runner/.emacs.d/.cache/lsp/pwsh Path to PowerShellEditorServices without last slash.","title":"lsp-pwsh-dir"},{"location":"page/lsp-pwsh/#lsp-pwsh-exe","text":"Type: string Default: /usr/bin/pwsh PowerShell executable.","title":"lsp-pwsh-exe"},{"location":"page/lsp-pwsh/#lsp-pwsh-ext-path","text":"Type: string Default: /home/runner/.emacs.d/.cache/lsp/pwsh The path to powershell vscode extension.","title":"lsp-pwsh-ext-path"},{"location":"page/lsp-pwsh/#lsp-pwsh-github-asset-url","text":"Type: string Default: https://github.com/%s/%s/releases/latest/download/%s GitHub latest asset template url.","title":"lsp-pwsh-github-asset-url"},{"location":"page/lsp-pwsh/#lsp-pwsh-help-completion","text":"Type: (choice (:tag Disabled BlockComment LineComment)) Default: BlockComment Controls the comment-based help completion behavior triggered by typing ## . Set the generated help style with BlockComment or LineComment . Disable the feature with Disabled .","title":"lsp-pwsh-help-completion"},{"location":"page/lsp-pwsh/#lsp-pwsh-script-analysis-enable","text":"Type: boolean Default: t Enables real-time script analysis from PowerShell Script Analyzer. Uses the newest installed version of the PSScriptAnalyzer module or the version bundled with this extension, if it is newer.","title":"lsp-pwsh-script-analysis-enable"},{"location":"page/lsp-pwsh/#lsp-pwsh-script-analysis-settings-path","text":"Type: string Default: `` Specifies the path to a PowerShell Script Analyzer settings file. To override the default settings for all projects, enter an absolute path, or enter a path relative to your workspace.","title":"lsp-pwsh-script-analysis-settings-path"},{"location":"page/lsp-pyls/","text":"Python (deprecated Palantir version) # Server # For more information about the LSP server, check pyls . Installation # pip install 'python-language-server[all]' Debugger: Yes # Available configurations # lsp-clients-python-library-directories # Type: (repeat string) Default: (/usr/) List of directories which will be considered to be libraries. lsp-pyls-configuration-sources # Type: (repeat string) Default: [pycodestyle] List of configuration sources to use. lsp-pyls-disable-warning # Type: boolean Default: nil Disable Palantir python-language-server deprecation warning lsp-pyls-plugins-autopep8-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-flake8-config # Type: string Default: nil A path to a config file that will be the only config file read and used. This will cause Flake8 to ignore all other config files that exist. NOTE: other parameters as lsp-pyls-plugins-flake8-max-line-length take precedence over parameters referenced in config. lsp-pyls-plugins-flake8-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pyls-plugins-flake8-exclude # Type: (repeat string) Default: nil List of glob patterns to exclude from checks. lsp-pyls-plugins-flake8-filename # Type: (repeat string) Default: nil List of glob patterns to include for checks. lsp-pyls-plugins-flake8-hang-closing # Type: boolean Default: nil Toggle whether pycodestyle should enforce matching the indentation of the opening bracket`s line. When you specify this, it will prefer that you hang the closing bracket rather than match the indentation. lsp-pyls-plugins-flake8-ignore # Type: (repeat string) Default: nil A list of codes to ignore. lsp-pyls-plugins-flake8-max-line-length # Type: integer Default: nil Set the maximum length that any line (with some exceptions) may be. Exceptions include lines that are either strings or comments which are entirely URLs. lsp-pyls-plugins-flake8-select # Type: (repeat string) Default: nil Specify the list of error codes you wish Flake8 to report. Similarly to lsp-pyls-plugins-flake8-ignore . You can specify a portion of an error code to get all that start with that string. For example, you can use E, E4, E43, and E431 lsp-pyls-plugins-jedi-completion-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-jedi-completion-fuzzy # Type: boolean Default: nil If enabled, uses fuzzy completion in jedi. Requires pyls >= 0.32.0 Can hit performance, as well as lsp-mode implements its own fuzzy search on completion items. lsp-pyls-plugins-jedi-completion-include-class-objects # Type: boolean Default: t If enabled, adds class objects to completion in order to avoid snippet with init args. Has no effect if lsp-pyls-plugins-jedi-completion-include-params is disabled. Requires pyls >= 0.33.0 lsp-pyls-plugins-jedi-completion-include-params # Type: boolean Default: t Auto-completes methods and classes with tabstops for each parameter. lsp-pyls-plugins-jedi-definition-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-jedi-definition-follow-builtin-imports # Type: boolean Default: t If follow_imports is True will decide if it follow builtin imports. lsp-pyls-plugins-jedi-definition-follow-imports # Type: boolean Default: t The goto call will follow imports. lsp-pyls-plugins-jedi-environment # Type: string Default: nil Specify the environment that jedi runs on where /bin/python should be the python executable. This option will be prioritized over lsp-pyls-plugins-jedi-use-pyenv-environment . lsp-pyls-plugins-jedi-hover-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-jedi-references-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-jedi-signature-help-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-jedi-symbols-all-scopes # Type: boolean Default: t If True lists the names of all scopes instead of only the module namespace. lsp-pyls-plugins-jedi-symbols-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-jedi-use-pyenv-environment # Type: boolean Default: nil If enabled, pass the environment got by pyenv to jedi lsp-pyls-plugins-mccabe-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-mccabe-threshold # Type: number Default: 15 The minimum threshold that triggers warnings about cyclomatic complexity. lsp-pyls-plugins-preload-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-preload-modules # Type: (repeat string) Default: nil List of modules to import on startup lsp-pyls-plugins-pycodestyle-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-pycodestyle-exclude # Type: (repeat string) Default: nil Exclude files or directories which match these patterns. lsp-pyls-plugins-pycodestyle-filename # Type: (repeat string) Default: nil When parsing directories, only check filenames matching these patterns. lsp-pyls-plugins-pycodestyle-hang-closing # Type: boolean Default: nil Hang closing bracket instead of matching indentation of opening bracket`s line. lsp-pyls-plugins-pycodestyle-ignore # Type: (repeat string) Default: nil Ignore errors and warnings lsp-pyls-plugins-pycodestyle-max-line-length # Type: number Default: nil Set maximum allowed line length. lsp-pyls-plugins-pycodestyle-select # Type: (repeat string) Default: nil Select errors and warnings lsp-pyls-plugins-pydocstyle-add-ignore # Type: (repeat string) Default: nil Ignore errors and warnings in addition to the specified convention. lsp-pyls-plugins-pydocstyle-add-select # Type: (repeat string) Default: nil Select errors and warnings in addition to the specified convention. lsp-pyls-plugins-pydocstyle-convention # Type: (choice (:tag pep257 numpy)) Default: nil Choose the basic list of checked errors by specifying an existing convention. lsp-pyls-plugins-pydocstyle-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pyls-plugins-pydocstyle-ignore # Type: (repeat string) Default: nil Ignore errors and warnings lsp-pyls-plugins-pydocstyle-match # Type: string Default: (?!test_).*\\.py Check only files that exactly match the given regular expression; default is to match files that don t start with test_ but end with .py`. lsp-pyls-plugins-pydocstyle-match-dir # Type: string Default: [^\\.].* Search only dirs that exactly match the given regular expression; default is to match dirs which do not begin with a dot. lsp-pyls-plugins-pydocstyle-select # Type: (repeat string) Default: nil Select errors and warnings lsp-pyls-plugins-pyflakes-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pyls-plugins-pylint-args # Type: lsp-string-vector Default: [] Arguments, passed to pylint lsp-pyls-plugins-pylint-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pyls-plugins-rope-completion-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pyls-plugins-yapf-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pyls-rename-backend # Type: (choice (const :tag jedi jedi) (const :tag rope rope)) Default: jedi Choose renaming backend. Jedi is preferred but only works for python >= 3.6 and pyls >= 0.32.0 Beware that Jedi is lazy and doesn`t scan the whole project. So it will rename only references it can find. lsp-pyls-rope-extension-modules # Type: string Default: nil Builtin and c-extension modules that are allowed to be imported and inspected by rope. lsp-pyls-rope-rope-folder # Type: (repeat string) Default: nil The name of the folder in which rope stores project configurations and data. Pass nil for not using such a folder at all. lsp-pyls-server-command # Type: (repeat string) Default: (pyls) Command to start pyls.","title":"Python (Palantir deprecated)"},{"location":"page/lsp-pyls/#python-deprecated-palantir-version","text":"","title":"Python (deprecated Palantir version)"},{"location":"page/lsp-pyls/#server","text":"For more information about the LSP server, check pyls .","title":"Server"},{"location":"page/lsp-pyls/#installation","text":"pip install 'python-language-server[all]'","title":"Installation"},{"location":"page/lsp-pyls/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-pyls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-pyls/#lsp-clients-python-library-directories","text":"Type: (repeat string) Default: (/usr/) List of directories which will be considered to be libraries.","title":"lsp-clients-python-library-directories"},{"location":"page/lsp-pyls/#lsp-pyls-configuration-sources","text":"Type: (repeat string) Default: [pycodestyle] List of configuration sources to use.","title":"lsp-pyls-configuration-sources"},{"location":"page/lsp-pyls/#lsp-pyls-disable-warning","text":"Type: boolean Default: nil Disable Palantir python-language-server deprecation warning","title":"lsp-pyls-disable-warning"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-autopep8-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-autopep8-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-config","text":"Type: string Default: nil A path to a config file that will be the only config file read and used. This will cause Flake8 to ignore all other config files that exist. NOTE: other parameters as lsp-pyls-plugins-flake8-max-line-length take precedence over parameters referenced in config.","title":"lsp-pyls-plugins-flake8-config"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pyls-plugins-flake8-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-exclude","text":"Type: (repeat string) Default: nil List of glob patterns to exclude from checks.","title":"lsp-pyls-plugins-flake8-exclude"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-filename","text":"Type: (repeat string) Default: nil List of glob patterns to include for checks.","title":"lsp-pyls-plugins-flake8-filename"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-hang-closing","text":"Type: boolean Default: nil Toggle whether pycodestyle should enforce matching the indentation of the opening bracket`s line. When you specify this, it will prefer that you hang the closing bracket rather than match the indentation.","title":"lsp-pyls-plugins-flake8-hang-closing"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-ignore","text":"Type: (repeat string) Default: nil A list of codes to ignore.","title":"lsp-pyls-plugins-flake8-ignore"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-max-line-length","text":"Type: integer Default: nil Set the maximum length that any line (with some exceptions) may be. Exceptions include lines that are either strings or comments which are entirely URLs.","title":"lsp-pyls-plugins-flake8-max-line-length"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-flake8-select","text":"Type: (repeat string) Default: nil Specify the list of error codes you wish Flake8 to report. Similarly to lsp-pyls-plugins-flake8-ignore . You can specify a portion of an error code to get all that start with that string. For example, you can use E, E4, E43, and E431","title":"lsp-pyls-plugins-flake8-select"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-completion-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-jedi-completion-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-completion-fuzzy","text":"Type: boolean Default: nil If enabled, uses fuzzy completion in jedi. Requires pyls >= 0.32.0 Can hit performance, as well as lsp-mode implements its own fuzzy search on completion items.","title":"lsp-pyls-plugins-jedi-completion-fuzzy"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-completion-include-class-objects","text":"Type: boolean Default: t If enabled, adds class objects to completion in order to avoid snippet with init args. Has no effect if lsp-pyls-plugins-jedi-completion-include-params is disabled. Requires pyls >= 0.33.0","title":"lsp-pyls-plugins-jedi-completion-include-class-objects"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-completion-include-params","text":"Type: boolean Default: t Auto-completes methods and classes with tabstops for each parameter.","title":"lsp-pyls-plugins-jedi-completion-include-params"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-definition-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-jedi-definition-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-definition-follow-builtin-imports","text":"Type: boolean Default: t If follow_imports is True will decide if it follow builtin imports.","title":"lsp-pyls-plugins-jedi-definition-follow-builtin-imports"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-definition-follow-imports","text":"Type: boolean Default: t The goto call will follow imports.","title":"lsp-pyls-plugins-jedi-definition-follow-imports"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-environment","text":"Type: string Default: nil Specify the environment that jedi runs on where /bin/python should be the python executable. This option will be prioritized over lsp-pyls-plugins-jedi-use-pyenv-environment .","title":"lsp-pyls-plugins-jedi-environment"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-hover-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-jedi-hover-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-references-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-jedi-references-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-signature-help-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-jedi-signature-help-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-symbols-all-scopes","text":"Type: boolean Default: t If True lists the names of all scopes instead of only the module namespace.","title":"lsp-pyls-plugins-jedi-symbols-all-scopes"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-symbols-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-jedi-symbols-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-jedi-use-pyenv-environment","text":"Type: boolean Default: nil If enabled, pass the environment got by pyenv to jedi","title":"lsp-pyls-plugins-jedi-use-pyenv-environment"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-mccabe-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-mccabe-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-mccabe-threshold","text":"Type: number Default: 15 The minimum threshold that triggers warnings about cyclomatic complexity.","title":"lsp-pyls-plugins-mccabe-threshold"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-preload-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-preload-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-preload-modules","text":"Type: (repeat string) Default: nil List of modules to import on startup","title":"lsp-pyls-plugins-preload-modules"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-pycodestyle-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-exclude","text":"Type: (repeat string) Default: nil Exclude files or directories which match these patterns.","title":"lsp-pyls-plugins-pycodestyle-exclude"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-filename","text":"Type: (repeat string) Default: nil When parsing directories, only check filenames matching these patterns.","title":"lsp-pyls-plugins-pycodestyle-filename"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-hang-closing","text":"Type: boolean Default: nil Hang closing bracket instead of matching indentation of opening bracket`s line.","title":"lsp-pyls-plugins-pycodestyle-hang-closing"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-ignore","text":"Type: (repeat string) Default: nil Ignore errors and warnings","title":"lsp-pyls-plugins-pycodestyle-ignore"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-max-line-length","text":"Type: number Default: nil Set maximum allowed line length.","title":"lsp-pyls-plugins-pycodestyle-max-line-length"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pycodestyle-select","text":"Type: (repeat string) Default: nil Select errors and warnings","title":"lsp-pyls-plugins-pycodestyle-select"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-add-ignore","text":"Type: (repeat string) Default: nil Ignore errors and warnings in addition to the specified convention.","title":"lsp-pyls-plugins-pydocstyle-add-ignore"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-add-select","text":"Type: (repeat string) Default: nil Select errors and warnings in addition to the specified convention.","title":"lsp-pyls-plugins-pydocstyle-add-select"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-convention","text":"Type: (choice (:tag pep257 numpy)) Default: nil Choose the basic list of checked errors by specifying an existing convention.","title":"lsp-pyls-plugins-pydocstyle-convention"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pyls-plugins-pydocstyle-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-ignore","text":"Type: (repeat string) Default: nil Ignore errors and warnings","title":"lsp-pyls-plugins-pydocstyle-ignore"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-match","text":"Type: string Default: (?!test_).*\\.py Check only files that exactly match the given regular expression; default is to match files that don t start with test_ but end with .py`.","title":"lsp-pyls-plugins-pydocstyle-match"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-match-dir","text":"Type: string Default: [^\\.].* Search only dirs that exactly match the given regular expression; default is to match dirs which do not begin with a dot.","title":"lsp-pyls-plugins-pydocstyle-match-dir"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pydocstyle-select","text":"Type: (repeat string) Default: nil Select errors and warnings","title":"lsp-pyls-plugins-pydocstyle-select"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pyflakes-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pyls-plugins-pyflakes-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pylint-args","text":"Type: lsp-string-vector Default: [] Arguments, passed to pylint","title":"lsp-pyls-plugins-pylint-args"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-pylint-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pyls-plugins-pylint-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-rope-completion-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pyls-plugins-rope-completion-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-plugins-yapf-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pyls-plugins-yapf-enabled"},{"location":"page/lsp-pyls/#lsp-pyls-rename-backend","text":"Type: (choice (const :tag jedi jedi) (const :tag rope rope)) Default: jedi Choose renaming backend. Jedi is preferred but only works for python >= 3.6 and pyls >= 0.32.0 Beware that Jedi is lazy and doesn`t scan the whole project. So it will rename only references it can find.","title":"lsp-pyls-rename-backend"},{"location":"page/lsp-pyls/#lsp-pyls-rope-extension-modules","text":"Type: string Default: nil Builtin and c-extension modules that are allowed to be imported and inspected by rope.","title":"lsp-pyls-rope-extension-modules"},{"location":"page/lsp-pyls/#lsp-pyls-rope-rope-folder","text":"Type: (repeat string) Default: nil The name of the folder in which rope stores project configurations and data. Pass nil for not using such a folder at all.","title":"lsp-pyls-rope-rope-folder"},{"location":"page/lsp-pyls/#lsp-pyls-server-command","text":"Type: (repeat string) Default: (pyls) Command to start pyls.","title":"lsp-pyls-server-command"},{"location":"page/lsp-pylsp/","text":"Python # Server # For more information about the LSP server, check pylsp . Installation # pip install 'python-lsp-server[all]' Debugger: Yes # Available configurations # lsp-clients-pylsp-library-directories # Type: (repeat string) Default: (/usr/) List of directories which will be considered to be libraries. lsp-pylsp-configuration-sources # Type: lsp-string-vector Default: [flake8] List of configuration sources to use. lsp-pylsp-plugins-autopep8-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-black-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-flake8-config # Type: string Default: nil A path to a config file that will be the only config file read and used. This will cause Flake8 to ignore all other config files that exist. NOTE: other parameters as lsp-pylsp-plugins-flake8-max-line-length take precedence over parameters referenced in config. lsp-pylsp-plugins-flake8-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-flake8-exclude # Type: lsp-string-vector Default: nil List of glob patterns to exclude from checks. lsp-pylsp-plugins-flake8-filename # Type: lsp-string-vector Default: nil List of glob patterns to include for checks. lsp-pylsp-plugins-flake8-hang-closing # Type: boolean Default: nil Toggle whether pycodestyle should enforce matching the indentation of the opening bracket`s line. When you specify this, it will prefer that you hang the closing bracket rather than match the indentation. lsp-pylsp-plugins-flake8-ignore # Type: lsp-string-vector Default: nil A list of codes to ignore. lsp-pylsp-plugins-flake8-max-line-length # Type: integer Default: nil Set the maximum length that any line (with some exceptions) may be. Exceptions include lines that are either strings or comments which are entirely URLs. lsp-pylsp-plugins-flake8-select # Type: lsp-string-vector Default: nil Specify the list of error codes you wish Flake8 to report. Similarly to lsp-pylsp-plugins-flake8-ignore . You can specify a portion of an error code to get all that start with that string. For example, you can use E, E4, E43, and E431 lsp-pylsp-plugins-isort-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-jedi-completion-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-jedi-completion-fuzzy # Type: boolean Default: nil If enabled, uses fuzzy completion in jedi. Requires pylsp >= 0.32.0 Can hit performance, as well as lsp-mode implements its own fuzzy search on completion items. lsp-pylsp-plugins-jedi-completion-include-class-objects # Type: boolean Default: t If enabled, adds class objects to completion in order to avoid snippet with init args. Has no effect if lsp-pylsp-plugins-jedi-completion-include-params is disabled. Requires pylsp >= 0.33.0 lsp-pylsp-plugins-jedi-completion-include-params # Type: boolean Default: t Auto-completes methods and classes with tabstops for each parameter. lsp-pylsp-plugins-jedi-definition-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-jedi-definition-follow-builtin-imports # Type: boolean Default: t If follow_imports is True will decide if it follow builtin imports. lsp-pylsp-plugins-jedi-definition-follow-imports # Type: boolean Default: t The goto call will follow imports. lsp-pylsp-plugins-jedi-environment # Type: string Default: nil Specify the environment that jedi runs on where /bin/python should be the python executable. This option will be prioritized over lsp-pylsp-plugins-jedi-use-pyenv-environment . lsp-pylsp-plugins-jedi-hover-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-jedi-references-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-jedi-signature-help-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-jedi-symbols-all-scopes # Type: boolean Default: t If True lists the names of all scopes instead of only the module namespace. lsp-pylsp-plugins-jedi-symbols-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-jedi-use-pyenv-environment # Type: boolean Default: nil If enabled, pass the environment got by pyenv to jedi lsp-pylsp-plugins-mccabe-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-mccabe-threshold # Type: number Default: 15 The minimum threshold that triggers warnings about cyclomatic complexity. lsp-pylsp-plugins-preload-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-preload-modules # Type: lsp-string-vector Default: nil List of modules to import on startup lsp-pylsp-plugins-pycodestyle-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-pycodestyle-exclude # Type: lsp-string-vector Default: nil Exclude files or directories which match these patterns. lsp-pylsp-plugins-pycodestyle-filename # Type: lsp-string-vector Default: nil When parsing directories, only check filenames matching these patterns. lsp-pylsp-plugins-pycodestyle-hang-closing # Type: boolean Default: nil Hang closing bracket instead of matching indentation of opening bracket`s line. lsp-pylsp-plugins-pycodestyle-ignore # Type: lsp-string-vector Default: nil Ignore errors and warnings lsp-pylsp-plugins-pycodestyle-max-line-length # Type: number Default: nil Set maximum allowed line length. lsp-pylsp-plugins-pycodestyle-select # Type: lsp-string-vector Default: nil Select errors and warnings lsp-pylsp-plugins-pydocstyle-add-ignore # Type: lsp-string-vector Default: nil Ignore errors and warnings in addition to the specified convention. lsp-pylsp-plugins-pydocstyle-add-select # Type: lsp-string-vector Default: nil Select errors and warnings in addition to the specified convention. lsp-pylsp-plugins-pydocstyle-convention # Type: (choice (:tag pep257 numpy)) Default: nil Choose the basic list of checked errors by specifying an existing convention. lsp-pylsp-plugins-pydocstyle-enabled # Type: boolean Default: t Enable or disable the plugin. lsp-pylsp-plugins-pydocstyle-ignore # Type: lsp-string-vector Default: nil Ignore errors and warnings lsp-pylsp-plugins-pydocstyle-match # Type: string Default: (?!test_).*\\.py Check only files that exactly match the given regular expression; default is to match files that don t start with test_ but end with .py`. lsp-pylsp-plugins-pydocstyle-match-dir # Type: string Default: [^\\.].* Search only dirs that exactly match the given regular expression; default is to match dirs which do not begin with a dot. lsp-pylsp-plugins-pydocstyle-select # Type: lsp-string-vector Default: nil Select errors and warnings lsp-pylsp-plugins-pyflakes-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-pylint-args # Type: lsp-string-vector Default: [] Arguments, passed to pylint lsp-pylsp-plugins-pylint-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-rope-autoimport-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-rope-autoimport-memory # Type: boolean Default: nil Make the autoimport database memory only. Drastically increases startup time. lsp-pylsp-plugins-rope-completion-eager # Type: boolean Default: nil Resolve documentation and detail eagerly. lsp-pylsp-plugins-rope-completion-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-plugins-yapf-enabled # Type: boolean Default: nil Enable or disable the plugin. lsp-pylsp-rename-backend # Type: (choice (const :tag jedi jedi) (const :tag rope rope)) Default: jedi Choose renaming backend. Jedi is preferred but only works for python >= 3.6 and pylsp >= 0.32.0 Beware that Jedi is lazy and doesn`t scan the whole project. So it will rename only references it can find. lsp-pylsp-rope-extension-modules # Type: string Default: nil Builtin and c-extension modules that are allowed to be imported and inspected by rope. lsp-pylsp-rope-rope-folder # Type: lsp-string-vector Default: nil The name of the folder in which rope stores project configurations and data. Pass nil for not using such a folder at all. lsp-pylsp-server-command # Type: (repeat string) Default: (pylsp) Command to start pylsp.","title":"Python (Pylsp)"},{"location":"page/lsp-pylsp/#python","text":"","title":"Python"},{"location":"page/lsp-pylsp/#server","text":"For more information about the LSP server, check pylsp .","title":"Server"},{"location":"page/lsp-pylsp/#installation","text":"pip install 'python-lsp-server[all]'","title":"Installation"},{"location":"page/lsp-pylsp/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-pylsp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-pylsp/#lsp-clients-pylsp-library-directories","text":"Type: (repeat string) Default: (/usr/) List of directories which will be considered to be libraries.","title":"lsp-clients-pylsp-library-directories"},{"location":"page/lsp-pylsp/#lsp-pylsp-configuration-sources","text":"Type: lsp-string-vector Default: [flake8] List of configuration sources to use.","title":"lsp-pylsp-configuration-sources"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-autopep8-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-autopep8-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-black-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-black-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-config","text":"Type: string Default: nil A path to a config file that will be the only config file read and used. This will cause Flake8 to ignore all other config files that exist. NOTE: other parameters as lsp-pylsp-plugins-flake8-max-line-length take precedence over parameters referenced in config.","title":"lsp-pylsp-plugins-flake8-config"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-flake8-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-exclude","text":"Type: lsp-string-vector Default: nil List of glob patterns to exclude from checks.","title":"lsp-pylsp-plugins-flake8-exclude"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-filename","text":"Type: lsp-string-vector Default: nil List of glob patterns to include for checks.","title":"lsp-pylsp-plugins-flake8-filename"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-hang-closing","text":"Type: boolean Default: nil Toggle whether pycodestyle should enforce matching the indentation of the opening bracket`s line. When you specify this, it will prefer that you hang the closing bracket rather than match the indentation.","title":"lsp-pylsp-plugins-flake8-hang-closing"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-ignore","text":"Type: lsp-string-vector Default: nil A list of codes to ignore.","title":"lsp-pylsp-plugins-flake8-ignore"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-max-line-length","text":"Type: integer Default: nil Set the maximum length that any line (with some exceptions) may be. Exceptions include lines that are either strings or comments which are entirely URLs.","title":"lsp-pylsp-plugins-flake8-max-line-length"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-flake8-select","text":"Type: lsp-string-vector Default: nil Specify the list of error codes you wish Flake8 to report. Similarly to lsp-pylsp-plugins-flake8-ignore . You can specify a portion of an error code to get all that start with that string. For example, you can use E, E4, E43, and E431","title":"lsp-pylsp-plugins-flake8-select"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-isort-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-isort-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-completion-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-jedi-completion-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-completion-fuzzy","text":"Type: boolean Default: nil If enabled, uses fuzzy completion in jedi. Requires pylsp >= 0.32.0 Can hit performance, as well as lsp-mode implements its own fuzzy search on completion items.","title":"lsp-pylsp-plugins-jedi-completion-fuzzy"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-completion-include-class-objects","text":"Type: boolean Default: t If enabled, adds class objects to completion in order to avoid snippet with init args. Has no effect if lsp-pylsp-plugins-jedi-completion-include-params is disabled. Requires pylsp >= 0.33.0","title":"lsp-pylsp-plugins-jedi-completion-include-class-objects"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-completion-include-params","text":"Type: boolean Default: t Auto-completes methods and classes with tabstops for each parameter.","title":"lsp-pylsp-plugins-jedi-completion-include-params"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-definition-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-jedi-definition-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-definition-follow-builtin-imports","text":"Type: boolean Default: t If follow_imports is True will decide if it follow builtin imports.","title":"lsp-pylsp-plugins-jedi-definition-follow-builtin-imports"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-definition-follow-imports","text":"Type: boolean Default: t The goto call will follow imports.","title":"lsp-pylsp-plugins-jedi-definition-follow-imports"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-environment","text":"Type: string Default: nil Specify the environment that jedi runs on where /bin/python should be the python executable. This option will be prioritized over lsp-pylsp-plugins-jedi-use-pyenv-environment .","title":"lsp-pylsp-plugins-jedi-environment"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-hover-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-jedi-hover-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-references-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-jedi-references-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-signature-help-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-jedi-signature-help-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-symbols-all-scopes","text":"Type: boolean Default: t If True lists the names of all scopes instead of only the module namespace.","title":"lsp-pylsp-plugins-jedi-symbols-all-scopes"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-symbols-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-jedi-symbols-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-jedi-use-pyenv-environment","text":"Type: boolean Default: nil If enabled, pass the environment got by pyenv to jedi","title":"lsp-pylsp-plugins-jedi-use-pyenv-environment"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-mccabe-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-mccabe-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-mccabe-threshold","text":"Type: number Default: 15 The minimum threshold that triggers warnings about cyclomatic complexity.","title":"lsp-pylsp-plugins-mccabe-threshold"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-preload-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-preload-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-preload-modules","text":"Type: lsp-string-vector Default: nil List of modules to import on startup","title":"lsp-pylsp-plugins-preload-modules"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-pycodestyle-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-exclude","text":"Type: lsp-string-vector Default: nil Exclude files or directories which match these patterns.","title":"lsp-pylsp-plugins-pycodestyle-exclude"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-filename","text":"Type: lsp-string-vector Default: nil When parsing directories, only check filenames matching these patterns.","title":"lsp-pylsp-plugins-pycodestyle-filename"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-hang-closing","text":"Type: boolean Default: nil Hang closing bracket instead of matching indentation of opening bracket`s line.","title":"lsp-pylsp-plugins-pycodestyle-hang-closing"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-ignore","text":"Type: lsp-string-vector Default: nil Ignore errors and warnings","title":"lsp-pylsp-plugins-pycodestyle-ignore"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-max-line-length","text":"Type: number Default: nil Set maximum allowed line length.","title":"lsp-pylsp-plugins-pycodestyle-max-line-length"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pycodestyle-select","text":"Type: lsp-string-vector Default: nil Select errors and warnings","title":"lsp-pylsp-plugins-pycodestyle-select"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-add-ignore","text":"Type: lsp-string-vector Default: nil Ignore errors and warnings in addition to the specified convention.","title":"lsp-pylsp-plugins-pydocstyle-add-ignore"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-add-select","text":"Type: lsp-string-vector Default: nil Select errors and warnings in addition to the specified convention.","title":"lsp-pylsp-plugins-pydocstyle-add-select"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-convention","text":"Type: (choice (:tag pep257 numpy)) Default: nil Choose the basic list of checked errors by specifying an existing convention.","title":"lsp-pylsp-plugins-pydocstyle-convention"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-enabled","text":"Type: boolean Default: t Enable or disable the plugin.","title":"lsp-pylsp-plugins-pydocstyle-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-ignore","text":"Type: lsp-string-vector Default: nil Ignore errors and warnings","title":"lsp-pylsp-plugins-pydocstyle-ignore"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-match","text":"Type: string Default: (?!test_).*\\.py Check only files that exactly match the given regular expression; default is to match files that don t start with test_ but end with .py`.","title":"lsp-pylsp-plugins-pydocstyle-match"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-match-dir","text":"Type: string Default: [^\\.].* Search only dirs that exactly match the given regular expression; default is to match dirs which do not begin with a dot.","title":"lsp-pylsp-plugins-pydocstyle-match-dir"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pydocstyle-select","text":"Type: lsp-string-vector Default: nil Select errors and warnings","title":"lsp-pylsp-plugins-pydocstyle-select"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pyflakes-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-pyflakes-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pylint-args","text":"Type: lsp-string-vector Default: [] Arguments, passed to pylint","title":"lsp-pylsp-plugins-pylint-args"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-pylint-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-pylint-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-rope-autoimport-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-rope-autoimport-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-rope-autoimport-memory","text":"Type: boolean Default: nil Make the autoimport database memory only. Drastically increases startup time.","title":"lsp-pylsp-plugins-rope-autoimport-memory"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-rope-completion-eager","text":"Type: boolean Default: nil Resolve documentation and detail eagerly.","title":"lsp-pylsp-plugins-rope-completion-eager"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-rope-completion-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-rope-completion-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-plugins-yapf-enabled","text":"Type: boolean Default: nil Enable or disable the plugin.","title":"lsp-pylsp-plugins-yapf-enabled"},{"location":"page/lsp-pylsp/#lsp-pylsp-rename-backend","text":"Type: (choice (const :tag jedi jedi) (const :tag rope rope)) Default: jedi Choose renaming backend. Jedi is preferred but only works for python >= 3.6 and pylsp >= 0.32.0 Beware that Jedi is lazy and doesn`t scan the whole project. So it will rename only references it can find.","title":"lsp-pylsp-rename-backend"},{"location":"page/lsp-pylsp/#lsp-pylsp-rope-extension-modules","text":"Type: string Default: nil Builtin and c-extension modules that are allowed to be imported and inspected by rope.","title":"lsp-pylsp-rope-extension-modules"},{"location":"page/lsp-pylsp/#lsp-pylsp-rope-rope-folder","text":"Type: lsp-string-vector Default: nil The name of the folder in which rope stores project configurations and data. Pass nil for not using such a folder at all.","title":"lsp-pylsp-rope-rope-folder"},{"location":"page/lsp-pylsp/#lsp-pylsp-server-command","text":"Type: (repeat string) Default: (pylsp) Command to start pylsp.","title":"lsp-pylsp-server-command"},{"location":"page/lsp-pyright/","text":"Python (Pyright) # Server # For more information about the LSP server, check pyright-langserver . Installation # For more instructions on how to install manually, check here . Debugger: Yes # Available configurations #","title":"Lsp pyright"},{"location":"page/lsp-pyright/#python-pyright","text":"","title":"Python (Pyright)"},{"location":"page/lsp-pyright/#server","text":"For more information about the LSP server, check pyright-langserver .","title":"Server"},{"location":"page/lsp-pyright/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-pyright/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-pyright/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-python-ms/","text":"Python (Microsoft) # Server # For more information about the LSP server, check Microsoft Python Language Server . Installation # For more instructions on how to install manually, check here . Debugger: Yes # Available configurations #","title":"Lsp python ms"},{"location":"page/lsp-python-ms/#python-microsoft","text":"","title":"Python (Microsoft)"},{"location":"page/lsp-python-ms/#server","text":"For more information about the LSP server, check Microsoft Python Language Server .","title":"Server"},{"location":"page/lsp-python-ms/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-python-ms/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-python-ms/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-r/","text":"R # Server # For more information about the LSP server, check languageserver . Installation # install.packages(\u201clanguageserver\u201d) For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-r-server-command # Type: (repeat string) Default: (R --slave -e languageserver::run()) Command to start the R language server.","title":"R"},{"location":"page/lsp-r/#r","text":"","title":"R"},{"location":"page/lsp-r/#server","text":"For more information about the LSP server, check languageserver .","title":"Server"},{"location":"page/lsp-r/#installation","text":"install.packages(\u201clanguageserver\u201d) For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-r/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-r/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-r/#lsp-clients-r-server-command","text":"Type: (repeat string) Default: (R --slave -e languageserver::run()) Command to start the R language server.","title":"lsp-clients-r-server-command"},{"location":"page/lsp-racket-langserver/","text":"Racket (jeapostrophe) # Server # For more information about the LSP server, check racket-langserver . Installation # raco pkg install racket-langserver Debugger: Not available # Available configurations # lsp-racket-langserver-command # Type: string Default: (racket --lib racket-langserver) Command to start the server.","title":"Racket (jeapostrophe)"},{"location":"page/lsp-racket-langserver/#racket-jeapostrophe","text":"","title":"Racket (jeapostrophe)"},{"location":"page/lsp-racket-langserver/#server","text":"For more information about the LSP server, check racket-langserver .","title":"Server"},{"location":"page/lsp-racket-langserver/#installation","text":"raco pkg install racket-langserver","title":"Installation"},{"location":"page/lsp-racket-langserver/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-racket-langserver/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-racket-langserver/#lsp-racket-langserver-command","text":"Type: string Default: (racket --lib racket-langserver) Command to start the server.","title":"lsp-racket-langserver-command"},{"location":"page/lsp-racket-language-server/","text":"Racket (Theia) # Server # For more information about the LSP server, check racket-language-server . Installation # raco pkg install racket-language-server Debugger: Not available # Available configurations # lsp-racket-language-server-path # Type: string Default: racket-language-server Executable path for the server.","title":"Racket (Theia)"},{"location":"page/lsp-racket-language-server/#racket-theia","text":"","title":"Racket (Theia)"},{"location":"page/lsp-racket-language-server/#server","text":"For more information about the LSP server, check racket-language-server .","title":"Server"},{"location":"page/lsp-racket-language-server/#installation","text":"raco pkg install racket-language-server","title":"Installation"},{"location":"page/lsp-racket-language-server/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-racket-language-server/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-racket-language-server/#lsp-racket-language-server-path","text":"Type: string Default: racket-language-server Executable path for the server.","title":"lsp-racket-language-server-path"},{"location":"page/lsp-remark/","text":"Remark # Server # For more information about the LSP server, check remark-language-server . Installation # npm i -g remark-language-server Debugger: Not available # Available configurations # lsp-remark-server-command # Type: string Default: remark-language-server The binary (or full path to binary) which executes the server. lsp-remark-server-command-args # Type: (repeat 'string) Default: (--stdio) Command-line arguments for the markdown lsp server.","title":"Lsp remark"},{"location":"page/lsp-remark/#remark","text":"","title":"Remark"},{"location":"page/lsp-remark/#server","text":"For more information about the LSP server, check remark-language-server .","title":"Server"},{"location":"page/lsp-remark/#installation","text":"npm i -g remark-language-server","title":"Installation"},{"location":"page/lsp-remark/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-remark/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-remark/#lsp-remark-server-command","text":"Type: string Default: remark-language-server The binary (or full path to binary) which executes the server.","title":"lsp-remark-server-command"},{"location":"page/lsp-remark/#lsp-remark-server-command-args","text":"Type: (repeat 'string) Default: (--stdio) Command-line arguments for the markdown lsp server.","title":"lsp-remark-server-command-args"},{"location":"page/lsp-robot/","text":"robot framework # Server # For more information about the LSP server, check rf-intellisense . Installation # pip install robotframework --user For more instructions on how to install manually, check here . Debugger: Yes # Available configurations #","title":"Lsp robot"},{"location":"page/lsp-robot/#robot-framework","text":"","title":"robot framework"},{"location":"page/lsp-robot/#server","text":"For more information about the LSP server, check rf-intellisense .","title":"Server"},{"location":"page/lsp-robot/#installation","text":"pip install robotframework --user For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-robot/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-robot/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-rubocop/","text":"Ruby (RuboCop) # Server # For more information about the LSP server, check rubocop . Installation # gem install rubocop For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-rubocop-server-path # Type: file Default: nil Path of the RuboCop built-in language server executable. If specified, lsp-rubocop-use-bundler is ignored. lsp-rubocop-use-bundler # Type: boolean Default: nil Run RuboCop using Bundler.","title":"Ruby (RuboCop)"},{"location":"page/lsp-rubocop/#ruby-rubocop","text":"","title":"Ruby (RuboCop)"},{"location":"page/lsp-rubocop/#server","text":"For more information about the LSP server, check rubocop .","title":"Server"},{"location":"page/lsp-rubocop/#installation","text":"gem install rubocop For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-rubocop/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-rubocop/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-rubocop/#lsp-rubocop-server-path","text":"Type: file Default: nil Path of the RuboCop built-in language server executable. If specified, lsp-rubocop-use-bundler is ignored.","title":"lsp-rubocop-server-path"},{"location":"page/lsp-rubocop/#lsp-rubocop-use-bundler","text":"Type: boolean Default: nil Run RuboCop using Bundler.","title":"lsp-rubocop-use-bundler"},{"location":"page/lsp-ruby-lsp/","text":"Ruby (ruby-lsp) # Server # For more information about the LSP server, check ruby-lsp . Installation # gem install ruby-lsp Debugger: Not available # Available configurations # lsp-ruby-lsp-use-bundler # Type: boolean Default: nil Run ruby-lsp using bundler.","title":"Ruby (ruby-lsp)"},{"location":"page/lsp-ruby-lsp/#ruby-ruby-lsp","text":"","title":"Ruby (ruby-lsp)"},{"location":"page/lsp-ruby-lsp/#server","text":"For more information about the LSP server, check ruby-lsp .","title":"Server"},{"location":"page/lsp-ruby-lsp/#installation","text":"gem install ruby-lsp","title":"Installation"},{"location":"page/lsp-ruby-lsp/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ruby-lsp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ruby-lsp/#lsp-ruby-lsp-use-bundler","text":"Type: boolean Default: nil Run ruby-lsp using bundler.","title":"lsp-ruby-lsp-use-bundler"},{"location":"page/lsp-ruff-lsp/","text":"Python # Server # For more information about the LSP server, check ruff-lsp . Installation # pip install ruff-lsp Debugger: Not available # Available configurations # lsp-ruff-lsp-advertize-fix-all # Type: boolean Default: t Whether to report ability to handle source.fixAll actions. lsp-ruff-lsp-advertize-organize-imports # Type: boolean Default: t Whether to report ability to handle source.organizeImports actions. lsp-ruff-lsp-import-strategy # Type: (choice (const fromEnvironment) (const useBundled)) Default: fromEnvironment Where ruff is imported from if lsp-ruff-lsp-ruff-path is not set. lsp-ruff-lsp-log-level # Type: (choice (const debug) (const error) (const info) (const off) (const warn)) Default: error Tracing level. lsp-ruff-lsp-python-path # Type: string Default: python3 Path to the Python interpreter. lsp-ruff-lsp-ruff-args # Type: lsp-string-vector Default: [] Arguments, passed to ruff. lsp-ruff-lsp-ruff-path # Type: lsp-string-vector Default: [ruff] Paths to ruff to try, in order. lsp-ruff-lsp-server-command # Type: (repeat string) Default: (ruff-lsp) Command to start ruff-lsp. lsp-ruff-lsp-show-notifications # Type: (choice (const off) (const onError) (const onWarning) (const always)) Default: off When notifications are shown.","title":"Python (Ruff)"},{"location":"page/lsp-ruff-lsp/#python","text":"","title":"Python"},{"location":"page/lsp-ruff-lsp/#server","text":"For more information about the LSP server, check ruff-lsp .","title":"Server"},{"location":"page/lsp-ruff-lsp/#installation","text":"pip install ruff-lsp","title":"Installation"},{"location":"page/lsp-ruff-lsp/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ruff-lsp/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-advertize-fix-all","text":"Type: boolean Default: t Whether to report ability to handle source.fixAll actions.","title":"lsp-ruff-lsp-advertize-fix-all"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-advertize-organize-imports","text":"Type: boolean Default: t Whether to report ability to handle source.organizeImports actions.","title":"lsp-ruff-lsp-advertize-organize-imports"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-import-strategy","text":"Type: (choice (const fromEnvironment) (const useBundled)) Default: fromEnvironment Where ruff is imported from if lsp-ruff-lsp-ruff-path is not set.","title":"lsp-ruff-lsp-import-strategy"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-log-level","text":"Type: (choice (const debug) (const error) (const info) (const off) (const warn)) Default: error Tracing level.","title":"lsp-ruff-lsp-log-level"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-python-path","text":"Type: string Default: python3 Path to the Python interpreter.","title":"lsp-ruff-lsp-python-path"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-ruff-args","text":"Type: lsp-string-vector Default: [] Arguments, passed to ruff.","title":"lsp-ruff-lsp-ruff-args"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-ruff-path","text":"Type: lsp-string-vector Default: [ruff] Paths to ruff to try, in order.","title":"lsp-ruff-lsp-ruff-path"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-server-command","text":"Type: (repeat string) Default: (ruff-lsp) Command to start ruff-lsp.","title":"lsp-ruff-lsp-server-command"},{"location":"page/lsp-ruff-lsp/#lsp-ruff-lsp-show-notifications","text":"Type: (choice (const off) (const onError) (const onWarning) (const always)) Default: off When notifications are shown.","title":"lsp-ruff-lsp-show-notifications"},{"location":"page/lsp-rust-analyzer/","text":"Rust # Server # For more information about the LSP server, check rust-analyzer . Installation # For more instructions on how to install manually, check here . Debugger: Not available # author: yyoncho template: comment.html root_file: docs/manual-language-docs/lsp-rust-analyzer.md Server note # NOTE: If you are using rustic-mode , you have to change rustic-lsp-server instead of lsp-rust-server , since it also supports eglot as a lightweight alternative to lsp-mode. lsp-rust-server Choose LSP server (default is rust-analyzer) lsp-rust-switch-server Switch priorities of lsp servers rust-analyzer # Commands # lsp-rust-analyzer-syntax-tree # Display syntax tree for current buffer lsp-rust-analyzer-status # Display status information for rust-analyzer lsp-rust-analyzer-join-lines # Join selected lines into one, smartly fixing up whitespace and trailing commas before: after: inlay-hints # lsp-inlay-hints-mode enables displaying of inlay hints Additionally, lsp-inlay-hint-enable must be set to t in order for inlay hints to render. NOTE: the inlay hints interact badly with the lsp-ui sideline, because it doesn't seem to consider the overlays in its width calculation, which often leads to lines wrapping around. Macro expansion # lsp-rust-analyzer-expand-macro expand macro call at point recursively Use your own function for displaying macro expansion by customizing lsp-rust-analyzer-macro-expansion-method Formatted and highlighted result with the default function of rustic. auto-import # Get a list of possible auto import candidates with lsp-execute-code-action Snippet insertion/refactor # To support refactorings that require snippet insertion(eg. generating derive clause etc), make sure that you have enabled yasnippet and yas-minor-mode . If you are using use-package , you can do something like this: ( use-package yasnippet :ensure t :hook (( lsp-mode . yas-minor-mode ))) Open Cargo.toml # lsp-rust-analyzer-open-cargo-toml opens the Cargo.toml closest to the current file. Calling it with a universal argument will open the Cargo.toml in another window. Corresponds to the rust-analyzer LSP extension Open external documentation # lsp-rust-analyzer-open-external-docs opens external documentation related to the current position in a browser. Corresponds to the rust-analyzer LSP extension Find and execute tests related to current position # lsp-rust-analyzer-related-tests find all tests related to the current position, asks for user completion and executes the selected test in a compilation buffer. Corresponds to the rust-analyzer LSP extension In the example below, first you see that: + On the left, the function check_infer is defined, on the right another file is opened with many test functions, some of which call check_infer . With the cursor on check_infer , call lsp-rust-analyzer-related-tests and select infer_pattern_match_slice with fuzzy matching. The test is executed on the right with compilation major mode Move the cursor to fn ellipsize and attempt to find related tests to no avail. Confirm that the function is indeed untested by using swiper and finding one place in the file, where the function is called Caveats # Rust Analyzer does not support disabling snippets - https://github.com/rust-analyzer/rust-analyzer/issues/2518 extract signature # This unmerged PR contains an example method that allows modifying the signature that is displayed by eldoc. TRAMP Example # The following is an example configuration for using lsp-mode with a remote rust-analyzer server: (with-eval-after-load \"lsp-rust\" (lsp-register-client (make-lsp-client :new-connection (lsp-tramp-connection \"rust-analyzer\") :remote? t :major-modes '(rust-mode rustic-mode) :initialization-options 'lsp-rust-analyzer--make-init-options :notification-handlers (ht<-alist lsp-rust-notification-handlers) :action-handlers (ht (\"rust-analyzer.runSingle\" #'lsp-rust--analyzer-run-single)) :library-folders-fn (lambda (_workspace) lsp-rust-analyzer-library-directories) :ignore-messages nil :server-id 'rust-analyzer-remote))) Available configurations # lsp-rust-server # Type: (choice (const :tag rls rls) (const :tag rust-analyzer rust-analyzer)) Default: rust-analyzer Choose LSP server. lsp-rust-analyzer-binding-mode-hints # Type: boolean Default: nil Whether to show inlay type hints for binding modes. lsp-rust-analyzer-call-info-full # Type: boolean Default: t Whether to show function name and docs in parameter hints. lsp-rust-analyzer-cargo-auto-reload # Type: boolean Default: t Automatically refresh project info via cargo metadata on Cargo.toml changes. lsp-rust-analyzer-cargo-override-command # Type: lsp-string-vector Default: [] Advanced option, fully override the command rust-analyzer uses for checking. The command should include --message=format=json or similar option. lsp-rust-analyzer-cargo-run-build-scripts # Type: boolean Default: t Whether to run build scripts ( build.rs ) for more precise code analysis. lsp-rust-analyzer-cargo-target # Type: (choice (string :tag Target) (const :tag None nil)) Default: nil Compilation target (target triple). lsp-rust-analyzer-cargo-unset-test # Type: lsp-string-vector Default: [] force rust-analyzer to unset #[cfg(test)] for the specified crates. lsp-rust-analyzer-cargo-watch-args # Type: lsp-string-vector Default: [] Extra arguments for cargo check . lsp-rust-analyzer-cargo-watch-command # Type: string Default: check Cargo watch command. lsp-rust-analyzer-cargo-watch-enable # Type: boolean Default: t Enable Cargo watch. lsp-rust-analyzer-check-all-targets # Type: boolean Default: t Enables --all-targets for cargo check . lsp-rust-analyzer-closing-brace-hints # Type: boolean Default: t Whether to show inlay hints after a closing } to indicate what item it belongs to. lsp-rust-analyzer-closing-brace-hints-min-lines # Type: integer Default: 25 Minimum number of lines required before the } until the hint is shown (set to 0 or 1 to always show them). lsp-rust-analyzer-completion-add-call-argument-snippets # Type: boolean Default: t Whether to add argument snippets when completing functions. lsp-rust-analyzer-completion-add-call-parenthesis # Type: boolean Default: t Whether to add parenthesis when completing functions. lsp-rust-analyzer-completion-auto-import-enable # Type: boolean Default: t Toggles the additional completions that automatically add imports when completed. lsp-completion-enable-additional-text-edit must be non-nil for this feature to be fully enabled. lsp-rust-analyzer-completion-auto-self-enable # Type: boolean Default: t Toggles the additional completions that automatically show method calls and field accesses with self prefixed to them when inside a method. lsp-rust-analyzer-completion-postfix-enable # Type: boolean Default: t Whether to show postfix snippets like dbg , if , not , etc. lsp-rust-analyzer-debug-lens-extra-dap-args # Type: plist Default: (:MIMode gdb :miDebuggerPath gdb :stopAtEntry t :externalConsole :json-false) Extra arguments to pass to DAP template when debugging a test from code lens. As a rule of the thumb, do not add extra keys to this plist unless you exactly what you are doing, it might break the \"Debug test\" lens otherwise. See dap-mode documentation and cpptools documentation for the extra variables meaning. lsp-rust-analyzer-diagnostics-disabled # Type: lsp-string-vector Default: [] List of native rust-analyzer diagnostics to disable. lsp-rust-analyzer-diagnostics-enable # Type: boolean Default: t Whether to show native rust-analyzer diagnostics. lsp-rust-analyzer-diagnostics-enable-experimental # Type: boolean Default: nil Whether to show native rust-analyzer diagnostics that are still experimental (might have more false positives than usual). lsp-rust-analyzer-diagnostics-warnings-as-hint # Type: lsp-string-vector Default: [] List of warnings that should be displayed with hint severity. lsp-rust-analyzer-diagnostics-warnings-as-info # Type: lsp-string-vector Default: [] List of warnings that should be displayed with info severity. lsp-rust-analyzer-display-chaining-hints # Type: boolean Default: nil Whether to show inlay type hints for method chains. These hints will be formatted with the type hint formatting options, if the mode is not configured to ask the server to format them. lsp-rust-analyzer-display-closure-return-type-hints # Type: boolean Default: nil Whether to show closure return type inlay hints for closures with block bodies. lsp-rust-analyzer-display-lifetime-elision-hints-enable # Type: (choice (const never) (const always) (const skip_trivial)) Default: never Whether to show elided lifetime inlay hints. lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names # Type: boolean Default: nil When showing elided lifetime inlay hints, whether to use parameter names or numeric placeholder names for the lifetimes. lsp-rust-analyzer-display-parameter-hints # Type: boolean Default: nil Whether to show function parameter name inlay hints at the call site. lsp-rust-analyzer-display-reborrow-hints # Type: (choice (const always) (const never) (const mutable)) Default: never Whether to show inlay type hints for compiler inserted reborrows. lsp-rust-analyzer-download-url # Type: string Default: https://github.com/rust-analyzer/rust-analyzer/releases/latest/download/rust-analyzer-x86_64-unknown-linux-gnu.gz Automatic download url for Rust Analyzer lsp-rust-analyzer-exclude-dirs # Type: lsp-string-vector Default: [] These directories will be ignored by rust-analyzer. lsp-rust-analyzer-exclude-globs # Type: lsp-string-vector Default: [] Exclude globs lsp-rust-analyzer-experimental-proc-attr-macros # Type: boolean Default: t Whether to enable experimental support for expanding proc macro attributes. lsp-rust-analyzer-hide-closure-initialization # Type: boolean Default: nil Whether to hide inlay type hints for let statements that initialize to a closure. Only applies to closures with blocks, same as #rust-analyzer.inlayHints.closureReturnTypeHints.enable# . lsp-rust-analyzer-hide-named-constructor # Type: boolean Default: nil Whether to hide inlay type hints for constructors. lsp-rust-analyzer-highlighting-strings # Type: boolean Default: t Use semantic tokens for strings. lsp-rust-analyzer-import-enforce-granularity # Type: boolean Default: nil Whether to enforce the import granularity setting for all files. If set to nil rust-analyzer will try to keep import styles consistent per file. lsp-rust-analyzer-import-granularity # Type: (choice (const crate :doc Merge imports from the same crate into a single use statement. This kind of nesting is only supported in Rust versions later than 1.24.) (const module :doc Merge imports from the same module into a single use statement.) (const item :doc Don\u2019t merge imports at all, creating one import per item.) (const preserve :doc Do not change the granularity of any imports. For auto-import this has the same effect as \"item\"'))` Default: crate How imports should be grouped into use statements. lsp-rust-analyzer-import-group # Type: boolean Default: t Group inserted imports by the following order: https://rust-analyzer.github.io/manual.html#auto-import. Groups are separated by newlines. lsp-rust-analyzer-import-prefix # Type: (choice (const plain) (const by_self) (const by_crate)) Default: plain The path structure for newly inserted paths to use. Valid values are: - \"plain\": Insert import paths relative to the current module, using up to one super prefix if the parent module contains the requested item. - \"by_self\": Prefix all import paths with self if they don t begin with self , super , crate or a crate name. - \"by_crate\": Force import paths to be absolute by always starting them with crate` or the crate name they refer to. lsp-rust-analyzer-imports-merge-glob # Type: boolean Default: t Whether to allow import insertion to merge new imports into single path glob imports like use std::fmt::*; . lsp-rust-analyzer-library-directories # Type: (repeat string) Default: (~/.cargo/registry/src ~/.rustup/toolchains) List of directories which will be considered to be libraries. lsp-rust-analyzer-linked-projects # Type: lsp-string-vector Default: [] Disable project auto-discovery in favor of explicitly specified set of projects. Elements must be paths pointing to Cargo.toml , rust-project.json , or JSON objects in rust-project.json format. lsp-rust-analyzer-lru-capacity # Type: integer Default: nil Number of syntax trees rust-analyzer keeps in memory. lsp-rust-analyzer-macro-expansion-method # Type: function Default: lsp-rust-analyzer-macro-expansion-default Use a different function if you want formatted macro expansion results and syntax highlighting. lsp-rust-analyzer-max-inlay-hint-length # Type: integer Default: nil Max inlay hint length. lsp-rust-analyzer-proc-macro-enable # Type: boolean Default: t Enable Proc macro support. Implies lsp-rust-analyzer-cargo-run-build-scripts lsp-rust-analyzer-rustc-source # Type: (choice (file :tag Path) (const :tag None nil)) Default: nil Path to the Cargo.toml of the rust compiler workspace. lsp-rust-analyzer-rustfmt-extra-args # Type: lsp-string-vector Default: [] Additional arguments to rustfmt. lsp-rust-analyzer-rustfmt-override-command # Type: lsp-string-vector Default: [] Advanced option, fully override the command rust-analyzer uses for formatting. lsp-rust-analyzer-rustfmt-rangeformatting-enable # Type: boolean Default: nil Enables the use of rustfmt s unstable range formatting command for the textDocument/rangeFormatting` request. The rustfmt option is unstable and only available on a nightly build. lsp-rust-analyzer-server-command # Type: (repeat string) Default: (rust-analyzer) Command to start rust-analyzer. lsp-rust-analyzer-server-format-inlay-hints # Type: boolean Default: t Whether to ask rust-analyzer to format inlay hints itself. If active, the various inlay format settings are not used. lsp-rust-analyzer-store-path # Type: file Default: ~/.emacs.d/.cache/lsp/rust/rust-analyzer The path to the file in which rust-analyzer will be stored. lsp-rust-analyzer-use-client-watching # Type: boolean Default: t Use client watching lsp-rust-analyzer-use-rustc-wrapper-for-build-scripts # Type: boolean Default: t Use RUSTC_WRAPPER=rust-analyzer when running build scripts to avoid compiling unnecessary things.","title":"Rust (rust-analyzer)"},{"location":"page/lsp-rust-analyzer/#rust","text":"","title":"Rust"},{"location":"page/lsp-rust-analyzer/#server","text":"For more information about the LSP server, check rust-analyzer .","title":"Server"},{"location":"page/lsp-rust-analyzer/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-rust-analyzer/#debugger-not-available","text":"author: yyoncho template: comment.html root_file: docs/manual-language-docs/lsp-rust-analyzer.md","title":"Debugger: Not available"},{"location":"page/lsp-rust-analyzer/#server-note","text":"NOTE: If you are using rustic-mode , you have to change rustic-lsp-server instead of lsp-rust-server , since it also supports eglot as a lightweight alternative to lsp-mode. lsp-rust-server Choose LSP server (default is rust-analyzer) lsp-rust-switch-server Switch priorities of lsp servers","title":"Server note"},{"location":"page/lsp-rust-analyzer/#rust-analyzer","text":"","title":"rust-analyzer"},{"location":"page/lsp-rust-analyzer/#commands","text":"","title":"Commands"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-syntax-tree","text":"Display syntax tree for current buffer","title":"lsp-rust-analyzer-syntax-tree"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-status","text":"Display status information for rust-analyzer","title":"lsp-rust-analyzer-status"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-join-lines","text":"Join selected lines into one, smartly fixing up whitespace and trailing commas before: after:","title":"lsp-rust-analyzer-join-lines"},{"location":"page/lsp-rust-analyzer/#inlay-hints","text":"lsp-inlay-hints-mode enables displaying of inlay hints Additionally, lsp-inlay-hint-enable must be set to t in order for inlay hints to render. NOTE: the inlay hints interact badly with the lsp-ui sideline, because it doesn't seem to consider the overlays in its width calculation, which often leads to lines wrapping around.","title":"inlay-hints"},{"location":"page/lsp-rust-analyzer/#macro-expansion","text":"lsp-rust-analyzer-expand-macro expand macro call at point recursively Use your own function for displaying macro expansion by customizing lsp-rust-analyzer-macro-expansion-method Formatted and highlighted result with the default function of rustic.","title":"Macro expansion"},{"location":"page/lsp-rust-analyzer/#auto-import","text":"Get a list of possible auto import candidates with lsp-execute-code-action","title":"auto-import"},{"location":"page/lsp-rust-analyzer/#snippet-insertionrefactor","text":"To support refactorings that require snippet insertion(eg. generating derive clause etc), make sure that you have enabled yasnippet and yas-minor-mode . If you are using use-package , you can do something like this: ( use-package yasnippet :ensure t :hook (( lsp-mode . yas-minor-mode )))","title":"Snippet insertion/refactor"},{"location":"page/lsp-rust-analyzer/#open-cargotoml","text":"lsp-rust-analyzer-open-cargo-toml opens the Cargo.toml closest to the current file. Calling it with a universal argument will open the Cargo.toml in another window. Corresponds to the rust-analyzer LSP extension","title":"Open Cargo.toml"},{"location":"page/lsp-rust-analyzer/#open-external-documentation","text":"lsp-rust-analyzer-open-external-docs opens external documentation related to the current position in a browser. Corresponds to the rust-analyzer LSP extension","title":"Open external documentation"},{"location":"page/lsp-rust-analyzer/#find-and-execute-tests-related-to-current-position","text":"lsp-rust-analyzer-related-tests find all tests related to the current position, asks for user completion and executes the selected test in a compilation buffer. Corresponds to the rust-analyzer LSP extension In the example below, first you see that: + On the left, the function check_infer is defined, on the right another file is opened with many test functions, some of which call check_infer . With the cursor on check_infer , call lsp-rust-analyzer-related-tests and select infer_pattern_match_slice with fuzzy matching. The test is executed on the right with compilation major mode Move the cursor to fn ellipsize and attempt to find related tests to no avail. Confirm that the function is indeed untested by using swiper and finding one place in the file, where the function is called","title":"Find and execute tests related to current position"},{"location":"page/lsp-rust-analyzer/#caveats","text":"Rust Analyzer does not support disabling snippets - https://github.com/rust-analyzer/rust-analyzer/issues/2518","title":"Caveats"},{"location":"page/lsp-rust-analyzer/#extract-signature","text":"This unmerged PR contains an example method that allows modifying the signature that is displayed by eldoc.","title":"extract signature"},{"location":"page/lsp-rust-analyzer/#tramp-example","text":"The following is an example configuration for using lsp-mode with a remote rust-analyzer server: (with-eval-after-load \"lsp-rust\" (lsp-register-client (make-lsp-client :new-connection (lsp-tramp-connection \"rust-analyzer\") :remote? t :major-modes '(rust-mode rustic-mode) :initialization-options 'lsp-rust-analyzer--make-init-options :notification-handlers (ht<-alist lsp-rust-notification-handlers) :action-handlers (ht (\"rust-analyzer.runSingle\" #'lsp-rust--analyzer-run-single)) :library-folders-fn (lambda (_workspace) lsp-rust-analyzer-library-directories) :ignore-messages nil :server-id 'rust-analyzer-remote)))","title":"TRAMP Example"},{"location":"page/lsp-rust-analyzer/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-rust-analyzer/#lsp-rust-server","text":"Type: (choice (const :tag rls rls) (const :tag rust-analyzer rust-analyzer)) Default: rust-analyzer Choose LSP server.","title":"lsp-rust-server"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-binding-mode-hints","text":"Type: boolean Default: nil Whether to show inlay type hints for binding modes.","title":"lsp-rust-analyzer-binding-mode-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-call-info-full","text":"Type: boolean Default: t Whether to show function name and docs in parameter hints.","title":"lsp-rust-analyzer-call-info-full"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-auto-reload","text":"Type: boolean Default: t Automatically refresh project info via cargo metadata on Cargo.toml changes.","title":"lsp-rust-analyzer-cargo-auto-reload"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-override-command","text":"Type: lsp-string-vector Default: [] Advanced option, fully override the command rust-analyzer uses for checking. The command should include --message=format=json or similar option.","title":"lsp-rust-analyzer-cargo-override-command"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-run-build-scripts","text":"Type: boolean Default: t Whether to run build scripts ( build.rs ) for more precise code analysis.","title":"lsp-rust-analyzer-cargo-run-build-scripts"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-target","text":"Type: (choice (string :tag Target) (const :tag None nil)) Default: nil Compilation target (target triple).","title":"lsp-rust-analyzer-cargo-target"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-unset-test","text":"Type: lsp-string-vector Default: [] force rust-analyzer to unset #[cfg(test)] for the specified crates.","title":"lsp-rust-analyzer-cargo-unset-test"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-watch-args","text":"Type: lsp-string-vector Default: [] Extra arguments for cargo check .","title":"lsp-rust-analyzer-cargo-watch-args"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-watch-command","text":"Type: string Default: check Cargo watch command.","title":"lsp-rust-analyzer-cargo-watch-command"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-cargo-watch-enable","text":"Type: boolean Default: t Enable Cargo watch.","title":"lsp-rust-analyzer-cargo-watch-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-check-all-targets","text":"Type: boolean Default: t Enables --all-targets for cargo check .","title":"lsp-rust-analyzer-check-all-targets"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-closing-brace-hints","text":"Type: boolean Default: t Whether to show inlay hints after a closing } to indicate what item it belongs to.","title":"lsp-rust-analyzer-closing-brace-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-closing-brace-hints-min-lines","text":"Type: integer Default: 25 Minimum number of lines required before the } until the hint is shown (set to 0 or 1 to always show them).","title":"lsp-rust-analyzer-closing-brace-hints-min-lines"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-completion-add-call-argument-snippets","text":"Type: boolean Default: t Whether to add argument snippets when completing functions.","title":"lsp-rust-analyzer-completion-add-call-argument-snippets"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-completion-add-call-parenthesis","text":"Type: boolean Default: t Whether to add parenthesis when completing functions.","title":"lsp-rust-analyzer-completion-add-call-parenthesis"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-completion-auto-import-enable","text":"Type: boolean Default: t Toggles the additional completions that automatically add imports when completed. lsp-completion-enable-additional-text-edit must be non-nil for this feature to be fully enabled.","title":"lsp-rust-analyzer-completion-auto-import-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-completion-auto-self-enable","text":"Type: boolean Default: t Toggles the additional completions that automatically show method calls and field accesses with self prefixed to them when inside a method.","title":"lsp-rust-analyzer-completion-auto-self-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-completion-postfix-enable","text":"Type: boolean Default: t Whether to show postfix snippets like dbg , if , not , etc.","title":"lsp-rust-analyzer-completion-postfix-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-debug-lens-extra-dap-args","text":"Type: plist Default: (:MIMode gdb :miDebuggerPath gdb :stopAtEntry t :externalConsole :json-false) Extra arguments to pass to DAP template when debugging a test from code lens. As a rule of the thumb, do not add extra keys to this plist unless you exactly what you are doing, it might break the \"Debug test\" lens otherwise. See dap-mode documentation and cpptools documentation for the extra variables meaning.","title":"lsp-rust-analyzer-debug-lens-extra-dap-args"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-diagnostics-disabled","text":"Type: lsp-string-vector Default: [] List of native rust-analyzer diagnostics to disable.","title":"lsp-rust-analyzer-diagnostics-disabled"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-diagnostics-enable","text":"Type: boolean Default: t Whether to show native rust-analyzer diagnostics.","title":"lsp-rust-analyzer-diagnostics-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-diagnostics-enable-experimental","text":"Type: boolean Default: nil Whether to show native rust-analyzer diagnostics that are still experimental (might have more false positives than usual).","title":"lsp-rust-analyzer-diagnostics-enable-experimental"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-diagnostics-warnings-as-hint","text":"Type: lsp-string-vector Default: [] List of warnings that should be displayed with hint severity.","title":"lsp-rust-analyzer-diagnostics-warnings-as-hint"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-diagnostics-warnings-as-info","text":"Type: lsp-string-vector Default: [] List of warnings that should be displayed with info severity.","title":"lsp-rust-analyzer-diagnostics-warnings-as-info"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-display-chaining-hints","text":"Type: boolean Default: nil Whether to show inlay type hints for method chains. These hints will be formatted with the type hint formatting options, if the mode is not configured to ask the server to format them.","title":"lsp-rust-analyzer-display-chaining-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-display-closure-return-type-hints","text":"Type: boolean Default: nil Whether to show closure return type inlay hints for closures with block bodies.","title":"lsp-rust-analyzer-display-closure-return-type-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-display-lifetime-elision-hints-enable","text":"Type: (choice (const never) (const always) (const skip_trivial)) Default: never Whether to show elided lifetime inlay hints.","title":"lsp-rust-analyzer-display-lifetime-elision-hints-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names","text":"Type: boolean Default: nil When showing elided lifetime inlay hints, whether to use parameter names or numeric placeholder names for the lifetimes.","title":"lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-display-parameter-hints","text":"Type: boolean Default: nil Whether to show function parameter name inlay hints at the call site.","title":"lsp-rust-analyzer-display-parameter-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-display-reborrow-hints","text":"Type: (choice (const always) (const never) (const mutable)) Default: never Whether to show inlay type hints for compiler inserted reborrows.","title":"lsp-rust-analyzer-display-reborrow-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-download-url","text":"Type: string Default: https://github.com/rust-analyzer/rust-analyzer/releases/latest/download/rust-analyzer-x86_64-unknown-linux-gnu.gz Automatic download url for Rust Analyzer","title":"lsp-rust-analyzer-download-url"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-exclude-dirs","text":"Type: lsp-string-vector Default: [] These directories will be ignored by rust-analyzer.","title":"lsp-rust-analyzer-exclude-dirs"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-exclude-globs","text":"Type: lsp-string-vector Default: [] Exclude globs","title":"lsp-rust-analyzer-exclude-globs"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-experimental-proc-attr-macros","text":"Type: boolean Default: t Whether to enable experimental support for expanding proc macro attributes.","title":"lsp-rust-analyzer-experimental-proc-attr-macros"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-hide-closure-initialization","text":"Type: boolean Default: nil Whether to hide inlay type hints for let statements that initialize to a closure. Only applies to closures with blocks, same as #rust-analyzer.inlayHints.closureReturnTypeHints.enable# .","title":"lsp-rust-analyzer-hide-closure-initialization"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-hide-named-constructor","text":"Type: boolean Default: nil Whether to hide inlay type hints for constructors.","title":"lsp-rust-analyzer-hide-named-constructor"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-highlighting-strings","text":"Type: boolean Default: t Use semantic tokens for strings.","title":"lsp-rust-analyzer-highlighting-strings"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-import-enforce-granularity","text":"Type: boolean Default: nil Whether to enforce the import granularity setting for all files. If set to nil rust-analyzer will try to keep import styles consistent per file.","title":"lsp-rust-analyzer-import-enforce-granularity"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-import-granularity","text":"Type: (choice (const crate :doc Merge imports from the same crate into a single use statement. This kind of nesting is only supported in Rust versions later than 1.24.) (const module :doc Merge imports from the same module into a single use statement.) (const item :doc Don\u2019t merge imports at all, creating one import per item.) (const preserve :doc Do not change the granularity of any imports. For auto-import this has the same effect as \"item\"'))` Default: crate How imports should be grouped into use statements.","title":"lsp-rust-analyzer-import-granularity"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-import-group","text":"Type: boolean Default: t Group inserted imports by the following order: https://rust-analyzer.github.io/manual.html#auto-import. Groups are separated by newlines.","title":"lsp-rust-analyzer-import-group"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-import-prefix","text":"Type: (choice (const plain) (const by_self) (const by_crate)) Default: plain The path structure for newly inserted paths to use. Valid values are: - \"plain\": Insert import paths relative to the current module, using up to one super prefix if the parent module contains the requested item. - \"by_self\": Prefix all import paths with self if they don t begin with self , super , crate or a crate name. - \"by_crate\": Force import paths to be absolute by always starting them with crate` or the crate name they refer to.","title":"lsp-rust-analyzer-import-prefix"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-imports-merge-glob","text":"Type: boolean Default: t Whether to allow import insertion to merge new imports into single path glob imports like use std::fmt::*; .","title":"lsp-rust-analyzer-imports-merge-glob"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-library-directories","text":"Type: (repeat string) Default: (~/.cargo/registry/src ~/.rustup/toolchains) List of directories which will be considered to be libraries.","title":"lsp-rust-analyzer-library-directories"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-linked-projects","text":"Type: lsp-string-vector Default: [] Disable project auto-discovery in favor of explicitly specified set of projects. Elements must be paths pointing to Cargo.toml , rust-project.json , or JSON objects in rust-project.json format.","title":"lsp-rust-analyzer-linked-projects"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-lru-capacity","text":"Type: integer Default: nil Number of syntax trees rust-analyzer keeps in memory.","title":"lsp-rust-analyzer-lru-capacity"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-macro-expansion-method","text":"Type: function Default: lsp-rust-analyzer-macro-expansion-default Use a different function if you want formatted macro expansion results and syntax highlighting.","title":"lsp-rust-analyzer-macro-expansion-method"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-max-inlay-hint-length","text":"Type: integer Default: nil Max inlay hint length.","title":"lsp-rust-analyzer-max-inlay-hint-length"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-proc-macro-enable","text":"Type: boolean Default: t Enable Proc macro support. Implies lsp-rust-analyzer-cargo-run-build-scripts","title":"lsp-rust-analyzer-proc-macro-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-rustc-source","text":"Type: (choice (file :tag Path) (const :tag None nil)) Default: nil Path to the Cargo.toml of the rust compiler workspace.","title":"lsp-rust-analyzer-rustc-source"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-rustfmt-extra-args","text":"Type: lsp-string-vector Default: [] Additional arguments to rustfmt.","title":"lsp-rust-analyzer-rustfmt-extra-args"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-rustfmt-override-command","text":"Type: lsp-string-vector Default: [] Advanced option, fully override the command rust-analyzer uses for formatting.","title":"lsp-rust-analyzer-rustfmt-override-command"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-rustfmt-rangeformatting-enable","text":"Type: boolean Default: nil Enables the use of rustfmt s unstable range formatting command for the textDocument/rangeFormatting` request. The rustfmt option is unstable and only available on a nightly build.","title":"lsp-rust-analyzer-rustfmt-rangeformatting-enable"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-server-command","text":"Type: (repeat string) Default: (rust-analyzer) Command to start rust-analyzer.","title":"lsp-rust-analyzer-server-command"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-server-format-inlay-hints","text":"Type: boolean Default: t Whether to ask rust-analyzer to format inlay hints itself. If active, the various inlay format settings are not used.","title":"lsp-rust-analyzer-server-format-inlay-hints"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-store-path","text":"Type: file Default: ~/.emacs.d/.cache/lsp/rust/rust-analyzer The path to the file in which rust-analyzer will be stored.","title":"lsp-rust-analyzer-store-path"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-use-client-watching","text":"Type: boolean Default: t Use client watching","title":"lsp-rust-analyzer-use-client-watching"},{"location":"page/lsp-rust-analyzer/#lsp-rust-analyzer-use-rustc-wrapper-for-build-scripts","text":"Type: boolean Default: t Use RUSTC_WRAPPER=rust-analyzer when running build scripts to avoid compiling unnecessary things.","title":"lsp-rust-analyzer-use-rustc-wrapper-for-build-scripts"},{"location":"page/lsp-rust-rls/","text":"Rust # Server # For more information about the LSP server, check rls . Installation # For more instructions on how to install manually, check here . Debugger: Yes # root_file: docs/manual-language-docs/lsp-rust-rls.md # RLS # Customization # This is an incomplete list of the available options lsp-rust-rls-server-command change command to start RLS lsp-rust-show-hover-context turn off hover tooltips rustfmt # Code formatting with rustfmt can be configured with: lsp-rust-rustfmt-path change default path for rustfmt executable To enable automatic code format on save, add this to your init.el ( rust-mode is assumed to be installed): (add-hook 'before-save-hook (lambda () (when (eq 'rust-mode major-mode) (lsp-format-buffer)))) Available configurations # lsp-rust-server # Type: (choice (const :tag rls rls) (const :tag rust-analyzer rust-analyzer)) Default: rust-analyzer Choose LSP server. lsp-rust-all-features # Type: boolean Default: nil Enable all Cargo features. lsp-rust-all-targets # Type: boolean Default: t Checks the project as if you were running cargo check --all-targets. I.e., check all targets and integration tests too. lsp-rust-build-bin # Type: (choice (const :tag None nil) (string :tag Binary)) Default: nil If non-nil, checks the project as if you passed -- bin argument to cargo. Mutually exclusive with lsp-rust-build-lib . (Unstable) lsp-rust-build-command # Type: (choice (const :tag None nil) (string :tag Command)) Default: nil EXPERIMENTAL (requires rust.unstable_features ) If set, executes a given program responsible for rebuilding save-analysis to be loaded by the RLS. The program given should output a list of resulting .json files on stdout. Implies rust.build_on_save : true. lsp-rust-build-lib # Type: boolean Default: nil If non-nil, checks the project as if you passed the --lib argument to cargo. Mutually exclusive with, and preferred over, lsp-rust-build-bin . (Unstable) lsp-rust-build-on-save # Type: boolean Default: nil Only index the project when a file is saved and not on change. lsp-rust-cfg-test # Type: boolean Default: nil If non-nil, checks the project as if you were running cargo test rather than cargo build. I.e., compiles (but does not run) test code. lsp-rust-clear-env-rust-log # Type: boolean Default: t Clear the RUST_LOG environment variable before running rustc or cargo. lsp-rust-clippy-preference # Type: (choice (const on) (const opt-in) (const off)) Default: opt-in Controls eagerness of clippy diagnostics when available. Valid values are (case-insensitive): - \"off\": Disable clippy lints. - \"opt-in\": Clippy lints are shown when crates specify #![warn(clippy)] . - \"on\": Clippy lints enabled for all crates in workspace. You need to install clippy via rustup if you haven`t already. lsp-rust-crate-blacklist # Type: lsp-string-vector Default: [cocoa gleam glium idna libc openssl rustc_serialize serde serde_json typenum unicode_normalization unicode_segmentation winapi] A list of Cargo crates to blacklist. lsp-rust-features # Type: lsp-string-vector Default: [] List of features to activate. Set this to \"all\" to pass --all-features to cargo. lsp-rust-full-docs # Type: boolean Default: nil Instructs cargo to enable full documentation extraction during save-analysis while building the crate. lsp-rust-jobs # Type: (choice (const :tag Auto nil) (number :tag Jobs)) Default: nil Number of Cargo jobs to be run in parallel. lsp-rust-library-directories # Type: (repeat string) Default: (~/.cargo/registry/src ~/.rustup/toolchains) List of directories which will be considered to be libraries. lsp-rust-no-default-features # Type: boolean Default: nil Do not enable default Cargo features. lsp-rust-racer-completion # Type: boolean Default: t Enables code completion using racer. lsp-rust-rls-server-command # Type: (repeat string) Default: (rls) Command to start RLS. lsp-rust-rustflags # Type: (choice (const :tag None nil) (string :tag Flags)) Default: nil Flags added to RUSTFLAGS. lsp-rust-rustfmt-path # Type: (choice (const :tag Bundled nil) (string :tag Path)) Default: nil When specified, RLS will use the Rustfmt pointed at the path instead of the bundled one lsp-rust-show-hover-context # Type: boolean Default: t Show additional context in hover tooltips when available. This is often the type local variable declaration. lsp-rust-show-warnings # Type: boolean Default: t Show warnings. lsp-rust-sysroot # Type: (choice (const :tag None nil) (string :tag Sysroot)) Default: nil If non-nil, use the given path as the sysroot for all rustc invocations instead of trying to detect the sysroot automatically. lsp-rust-target # Type: (choice (const :tag None nil) (string :tag Target)) Default: nil If non-nil, use the given target triple for all rustc invocations. lsp-rust-target-dir # Type: (choice (const :tag Default nil) (string :tag Directory)) Default: nil When specified, it places the generated analysis files at the specified target directory. By default it is placed target/rls directory. lsp-rust-unstable-features # Type: boolean Default: nil Enable unstable features. lsp-rust-wait-to-build # Type: (choice (const :tag Auto nil) (number :tag Time)) Default: nil Time in milliseconds between receiving a change notification and starting build. If not specified, automatically inferred by the latest build duration.","title":"Rust (rls)"},{"location":"page/lsp-rust-rls/#rust","text":"","title":"Rust"},{"location":"page/lsp-rust-rls/#server","text":"For more information about the LSP server, check rls .","title":"Server"},{"location":"page/lsp-rust-rls/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-rust-rls/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-rust-rls/#root_file-docsmanual-language-docslsp-rust-rlsmd","text":"","title":"root_file: docs/manual-language-docs/lsp-rust-rls.md"},{"location":"page/lsp-rust-rls/#rls","text":"","title":"RLS"},{"location":"page/lsp-rust-rls/#customization","text":"This is an incomplete list of the available options lsp-rust-rls-server-command change command to start RLS lsp-rust-show-hover-context turn off hover tooltips","title":"Customization"},{"location":"page/lsp-rust-rls/#rustfmt","text":"Code formatting with rustfmt can be configured with: lsp-rust-rustfmt-path change default path for rustfmt executable To enable automatic code format on save, add this to your init.el ( rust-mode is assumed to be installed): (add-hook 'before-save-hook (lambda () (when (eq 'rust-mode major-mode) (lsp-format-buffer))))","title":"rustfmt"},{"location":"page/lsp-rust-rls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-rust-rls/#lsp-rust-server","text":"Type: (choice (const :tag rls rls) (const :tag rust-analyzer rust-analyzer)) Default: rust-analyzer Choose LSP server.","title":"lsp-rust-server"},{"location":"page/lsp-rust-rls/#lsp-rust-all-features","text":"Type: boolean Default: nil Enable all Cargo features.","title":"lsp-rust-all-features"},{"location":"page/lsp-rust-rls/#lsp-rust-all-targets","text":"Type: boolean Default: t Checks the project as if you were running cargo check --all-targets. I.e., check all targets and integration tests too.","title":"lsp-rust-all-targets"},{"location":"page/lsp-rust-rls/#lsp-rust-build-bin","text":"Type: (choice (const :tag None nil) (string :tag Binary)) Default: nil If non-nil, checks the project as if you passed -- bin argument to cargo. Mutually exclusive with lsp-rust-build-lib . (Unstable)","title":"lsp-rust-build-bin"},{"location":"page/lsp-rust-rls/#lsp-rust-build-command","text":"Type: (choice (const :tag None nil) (string :tag Command)) Default: nil EXPERIMENTAL (requires rust.unstable_features ) If set, executes a given program responsible for rebuilding save-analysis to be loaded by the RLS. The program given should output a list of resulting .json files on stdout. Implies rust.build_on_save : true.","title":"lsp-rust-build-command"},{"location":"page/lsp-rust-rls/#lsp-rust-build-lib","text":"Type: boolean Default: nil If non-nil, checks the project as if you passed the --lib argument to cargo. Mutually exclusive with, and preferred over, lsp-rust-build-bin . (Unstable)","title":"lsp-rust-build-lib"},{"location":"page/lsp-rust-rls/#lsp-rust-build-on-save","text":"Type: boolean Default: nil Only index the project when a file is saved and not on change.","title":"lsp-rust-build-on-save"},{"location":"page/lsp-rust-rls/#lsp-rust-cfg-test","text":"Type: boolean Default: nil If non-nil, checks the project as if you were running cargo test rather than cargo build. I.e., compiles (but does not run) test code.","title":"lsp-rust-cfg-test"},{"location":"page/lsp-rust-rls/#lsp-rust-clear-env-rust-log","text":"Type: boolean Default: t Clear the RUST_LOG environment variable before running rustc or cargo.","title":"lsp-rust-clear-env-rust-log"},{"location":"page/lsp-rust-rls/#lsp-rust-clippy-preference","text":"Type: (choice (const on) (const opt-in) (const off)) Default: opt-in Controls eagerness of clippy diagnostics when available. Valid values are (case-insensitive): - \"off\": Disable clippy lints. - \"opt-in\": Clippy lints are shown when crates specify #![warn(clippy)] . - \"on\": Clippy lints enabled for all crates in workspace. You need to install clippy via rustup if you haven`t already.","title":"lsp-rust-clippy-preference"},{"location":"page/lsp-rust-rls/#lsp-rust-crate-blacklist","text":"Type: lsp-string-vector Default: [cocoa gleam glium idna libc openssl rustc_serialize serde serde_json typenum unicode_normalization unicode_segmentation winapi] A list of Cargo crates to blacklist.","title":"lsp-rust-crate-blacklist"},{"location":"page/lsp-rust-rls/#lsp-rust-features","text":"Type: lsp-string-vector Default: [] List of features to activate. Set this to \"all\" to pass --all-features to cargo.","title":"lsp-rust-features"},{"location":"page/lsp-rust-rls/#lsp-rust-full-docs","text":"Type: boolean Default: nil Instructs cargo to enable full documentation extraction during save-analysis while building the crate.","title":"lsp-rust-full-docs"},{"location":"page/lsp-rust-rls/#lsp-rust-jobs","text":"Type: (choice (const :tag Auto nil) (number :tag Jobs)) Default: nil Number of Cargo jobs to be run in parallel.","title":"lsp-rust-jobs"},{"location":"page/lsp-rust-rls/#lsp-rust-library-directories","text":"Type: (repeat string) Default: (~/.cargo/registry/src ~/.rustup/toolchains) List of directories which will be considered to be libraries.","title":"lsp-rust-library-directories"},{"location":"page/lsp-rust-rls/#lsp-rust-no-default-features","text":"Type: boolean Default: nil Do not enable default Cargo features.","title":"lsp-rust-no-default-features"},{"location":"page/lsp-rust-rls/#lsp-rust-racer-completion","text":"Type: boolean Default: t Enables code completion using racer.","title":"lsp-rust-racer-completion"},{"location":"page/lsp-rust-rls/#lsp-rust-rls-server-command","text":"Type: (repeat string) Default: (rls) Command to start RLS.","title":"lsp-rust-rls-server-command"},{"location":"page/lsp-rust-rls/#lsp-rust-rustflags","text":"Type: (choice (const :tag None nil) (string :tag Flags)) Default: nil Flags added to RUSTFLAGS.","title":"lsp-rust-rustflags"},{"location":"page/lsp-rust-rls/#lsp-rust-rustfmt-path","text":"Type: (choice (const :tag Bundled nil) (string :tag Path)) Default: nil When specified, RLS will use the Rustfmt pointed at the path instead of the bundled one","title":"lsp-rust-rustfmt-path"},{"location":"page/lsp-rust-rls/#lsp-rust-show-hover-context","text":"Type: boolean Default: t Show additional context in hover tooltips when available. This is often the type local variable declaration.","title":"lsp-rust-show-hover-context"},{"location":"page/lsp-rust-rls/#lsp-rust-show-warnings","text":"Type: boolean Default: t Show warnings.","title":"lsp-rust-show-warnings"},{"location":"page/lsp-rust-rls/#lsp-rust-sysroot","text":"Type: (choice (const :tag None nil) (string :tag Sysroot)) Default: nil If non-nil, use the given path as the sysroot for all rustc invocations instead of trying to detect the sysroot automatically.","title":"lsp-rust-sysroot"},{"location":"page/lsp-rust-rls/#lsp-rust-target","text":"Type: (choice (const :tag None nil) (string :tag Target)) Default: nil If non-nil, use the given target triple for all rustc invocations.","title":"lsp-rust-target"},{"location":"page/lsp-rust-rls/#lsp-rust-target-dir","text":"Type: (choice (const :tag Default nil) (string :tag Directory)) Default: nil When specified, it places the generated analysis files at the specified target directory. By default it is placed target/rls directory.","title":"lsp-rust-target-dir"},{"location":"page/lsp-rust-rls/#lsp-rust-unstable-features","text":"Type: boolean Default: nil Enable unstable features.","title":"lsp-rust-unstable-features"},{"location":"page/lsp-rust-rls/#lsp-rust-wait-to-build","text":"Type: (choice (const :tag Auto nil) (number :tag Time)) Default: nil Time in milliseconds between receiving a change notification and starting build. If not specified, automatically inferred by the latest build duration.","title":"lsp-rust-wait-to-build"},{"location":"page/lsp-semgrep/","text":"Semgrep # Server # For more information about the LSP server, check semgrep-ls . Installation # pip install semgrep --user Debugger: Not available # Available configurations # lsp-semgrep-languages # Type: (repeat string) Default: (apex bash sh c cairo clojure cpp c++ csharp c# dart dockerfile docker ex elixir go golang hack html java js javascript json jsonnet julia kt kotlin lisp lua ocaml php python2 python3 py python r regex none ruby rust scala scheme solidity sol swift tf hcl terraform ts typescript vue xml yaml) List of languages to enable Semgrep LS for. lsp-semgrep-server-command # Type: (repeat string) Default: (semgrep lsp) Semgrep LS server command. lsp-semgrep-trace-server # Type: (choice (const off) (const messages) (const verbose)) Default: off Trace Semgrep LS server","title":"Semgrep"},{"location":"page/lsp-semgrep/#semgrep","text":"","title":"Semgrep"},{"location":"page/lsp-semgrep/#server","text":"For more information about the LSP server, check semgrep-ls .","title":"Server"},{"location":"page/lsp-semgrep/#installation","text":"pip install semgrep --user","title":"Installation"},{"location":"page/lsp-semgrep/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-semgrep/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-semgrep/#lsp-semgrep-languages","text":"Type: (repeat string) Default: (apex bash sh c cairo clojure cpp c++ csharp c# dart dockerfile docker ex elixir go golang hack html java js javascript json jsonnet julia kt kotlin lisp lua ocaml php python2 python3 py python r regex none ruby rust scala scheme solidity sol swift tf hcl terraform ts typescript vue xml yaml) List of languages to enable Semgrep LS for.","title":"lsp-semgrep-languages"},{"location":"page/lsp-semgrep/#lsp-semgrep-server-command","text":"Type: (repeat string) Default: (semgrep lsp) Semgrep LS server command.","title":"lsp-semgrep-server-command"},{"location":"page/lsp-semgrep/#lsp-semgrep-trace-server","text":"Type: (choice (const off) (const messages) (const verbose)) Default: off Trace Semgrep LS server","title":"lsp-semgrep-trace-server"},{"location":"page/lsp-serenata/","text":"PHP (Serenata) # Server # For more information about the LSP server, check Serenata . Installation # For more instructions on how to install manually, check here . Debugger: Yes # Available configurations # lsp-clients-php-server-command # Type: (repeat string) Default: nil Install directory for php-language-server. lsp-php-composer-dir # Type: string Default: nil Home directory of composer. lsp-serenata-exclude-path-expressions # Type: lsp-string-vector Default: [/.+Test.php$/] One or more expressions of paths to ignore. This uses Symfony`s Finder in the background, so this means you can configure anything here that can also be passed to the name function, which includes plain strings, globs, as well as regular expressions. Note that for existing projects, modifying these will not not automatically prune them from the index if they are already present. lsp-serenata-file-extensions # Type: lsp-string-vector Default: [php] List of file extensions (without dot) to process. Files that do not match this whitelist will be ignored during indexing. Usually you`ll want to set this to at least include php, as it is the most common PHP extension. phpt is not included by default as it is often used to contain test code that is not directly part of the code. Note that for existing projects, removing extensions will not not automatically prune files having them from the index if they are already present. Adding new ones will cause the files having them to be picked up on the next project initialization. lsp-serenata-index-database-uri # Type: file Default: file:///home/runner/.emacs.d/index.sqlite The location to store the index database. Note that, as the index database uses SQLite and WAL mode, additional files (usually two) may be generated and used in the same folder. Note also that Serenata relies on the Doctrine DBAL library as well as the SQLite backends in PHP, which may not support non-file URI`s, which may prevent you from using these. lsp-serenata-php-version # Type: number Default: 7.3 Allows you to specify the PHP version your project is written in. At the moment this directive is still ignored, but it will influence functionality such as refactoring in the future, where older PHP versions may not support scalar type hints, which may then be omitted from places such as getters and setters. lsp-serenata-server-path # Type: file Default: serenata.phar Path to the Serenata Language Server phar file. It can be downloaded from https://gitlab.com/Serenata/Serenata/-/releases. lsp-serenata-uris # Type: lsp-string-vector Default: [] A list of folders to index for your project. This does not have to include the root of the project itself, in case you have need of an exotic configuration where the root of the project is at some location but your actual PHP code is somewhere else. Note that if you are running Serenata in a container, you will have to ensure that these URI`s are mapped inside it. Avoid using file paths containing spaces. This is currently broken due to apparent PHP quirks. By default, the value is taken from the lsp workspace location.","title":"PHP (Serenata)"},{"location":"page/lsp-serenata/#php-serenata","text":"","title":"PHP (Serenata)"},{"location":"page/lsp-serenata/#server","text":"For more information about the LSP server, check Serenata .","title":"Server"},{"location":"page/lsp-serenata/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-serenata/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-serenata/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-serenata/#lsp-clients-php-server-command","text":"Type: (repeat string) Default: nil Install directory for php-language-server.","title":"lsp-clients-php-server-command"},{"location":"page/lsp-serenata/#lsp-php-composer-dir","text":"Type: string Default: nil Home directory of composer.","title":"lsp-php-composer-dir"},{"location":"page/lsp-serenata/#lsp-serenata-exclude-path-expressions","text":"Type: lsp-string-vector Default: [/.+Test.php$/] One or more expressions of paths to ignore. This uses Symfony`s Finder in the background, so this means you can configure anything here that can also be passed to the name function, which includes plain strings, globs, as well as regular expressions. Note that for existing projects, modifying these will not not automatically prune them from the index if they are already present.","title":"lsp-serenata-exclude-path-expressions"},{"location":"page/lsp-serenata/#lsp-serenata-file-extensions","text":"Type: lsp-string-vector Default: [php] List of file extensions (without dot) to process. Files that do not match this whitelist will be ignored during indexing. Usually you`ll want to set this to at least include php, as it is the most common PHP extension. phpt is not included by default as it is often used to contain test code that is not directly part of the code. Note that for existing projects, removing extensions will not not automatically prune files having them from the index if they are already present. Adding new ones will cause the files having them to be picked up on the next project initialization.","title":"lsp-serenata-file-extensions"},{"location":"page/lsp-serenata/#lsp-serenata-index-database-uri","text":"Type: file Default: file:///home/runner/.emacs.d/index.sqlite The location to store the index database. Note that, as the index database uses SQLite and WAL mode, additional files (usually two) may be generated and used in the same folder. Note also that Serenata relies on the Doctrine DBAL library as well as the SQLite backends in PHP, which may not support non-file URI`s, which may prevent you from using these.","title":"lsp-serenata-index-database-uri"},{"location":"page/lsp-serenata/#lsp-serenata-php-version","text":"Type: number Default: 7.3 Allows you to specify the PHP version your project is written in. At the moment this directive is still ignored, but it will influence functionality such as refactoring in the future, where older PHP versions may not support scalar type hints, which may then be omitted from places such as getters and setters.","title":"lsp-serenata-php-version"},{"location":"page/lsp-serenata/#lsp-serenata-server-path","text":"Type: file Default: serenata.phar Path to the Serenata Language Server phar file. It can be downloaded from https://gitlab.com/Serenata/Serenata/-/releases.","title":"lsp-serenata-server-path"},{"location":"page/lsp-serenata/#lsp-serenata-uris","text":"Type: lsp-string-vector Default: [] A list of folders to index for your project. This does not have to include the root of the project itself, in case you have need of an exotic configuration where the root of the project is at some location but your actual PHP code is somewhere else. Note that if you are running Serenata in a container, you will have to ensure that these URI`s are mapped inside it. Avoid using file paths containing spaces. This is currently broken due to apparent PHP quirks. By default, the value is taken from the lsp workspace location.","title":"lsp-serenata-uris"},{"location":"page/lsp-shader/","text":"ShaderLab # Server # For more information about the LSP server, check shader-ls . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"ShaderLab"},{"location":"page/lsp-shader/#shaderlab","text":"","title":"ShaderLab"},{"location":"page/lsp-shader/#server","text":"For more information about the LSP server, check shader-ls .","title":"Server"},{"location":"page/lsp-shader/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-shader/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-shader/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-solargraph/","text":"Ruby (Solargraph) # Server # For more information about the LSP server, check solargraph . Installation # gem install solargraph Debugger: Yes # Available configurations # lsp-solargraph-autoformat # Type: boolean Default: nil Enable automatic formatting while typing (WARNING: experimental) lsp-solargraph-completion # Type: boolean Default: t Enable completion lsp-solargraph-definitions # Type: boolean Default: t Enable definitions (go to, etc.) lsp-solargraph-diagnostics # Type: boolean Default: t Enable diagnostics lsp-solargraph-folding # Type: boolean Default: t Enable folding ranges lsp-solargraph-formatting # Type: boolean Default: t Enable document formatting lsp-solargraph-hover # Type: boolean Default: t Enable hover lsp-solargraph-library-directories # Type: (repeat string) Default: (~/.rbenv/ /usr/lib/ruby/ ~/.rvm/ ~/.gem/) List of directories which will be considered to be libraries. lsp-solargraph-log-level # Type: (choice (const :tag warn info debug)) Default: warn Level of debug info to log. warn is least and debug is most. lsp-solargraph-multi-root # Type: boolean Default: t If non nil, solargraph will be started in multi-root mode. lsp-solargraph-references # Type: boolean Default: t Enable finding references lsp-solargraph-rename # Type: boolean Default: t Enable symbol renaming lsp-solargraph-server-command # Type: (repeat string) Default: (solargraph stdio) Command to start Solargraph Ruby language server. lsp-solargraph-symbols # Type: boolean Default: t Enable symbols lsp-solargraph-use-bundler # Type: boolean Default: nil Run solargraph under bundler","title":"Ruby (Solargraph)"},{"location":"page/lsp-solargraph/#ruby-solargraph","text":"","title":"Ruby (Solargraph)"},{"location":"page/lsp-solargraph/#server","text":"For more information about the LSP server, check solargraph .","title":"Server"},{"location":"page/lsp-solargraph/#installation","text":"gem install solargraph","title":"Installation"},{"location":"page/lsp-solargraph/#debugger-yes","text":"","title":"Debugger: Yes"},{"location":"page/lsp-solargraph/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-solargraph/#lsp-solargraph-autoformat","text":"Type: boolean Default: nil Enable automatic formatting while typing (WARNING: experimental)","title":"lsp-solargraph-autoformat"},{"location":"page/lsp-solargraph/#lsp-solargraph-completion","text":"Type: boolean Default: t Enable completion","title":"lsp-solargraph-completion"},{"location":"page/lsp-solargraph/#lsp-solargraph-definitions","text":"Type: boolean Default: t Enable definitions (go to, etc.)","title":"lsp-solargraph-definitions"},{"location":"page/lsp-solargraph/#lsp-solargraph-diagnostics","text":"Type: boolean Default: t Enable diagnostics","title":"lsp-solargraph-diagnostics"},{"location":"page/lsp-solargraph/#lsp-solargraph-folding","text":"Type: boolean Default: t Enable folding ranges","title":"lsp-solargraph-folding"},{"location":"page/lsp-solargraph/#lsp-solargraph-formatting","text":"Type: boolean Default: t Enable document formatting","title":"lsp-solargraph-formatting"},{"location":"page/lsp-solargraph/#lsp-solargraph-hover","text":"Type: boolean Default: t Enable hover","title":"lsp-solargraph-hover"},{"location":"page/lsp-solargraph/#lsp-solargraph-library-directories","text":"Type: (repeat string) Default: (~/.rbenv/ /usr/lib/ruby/ ~/.rvm/ ~/.gem/) List of directories which will be considered to be libraries.","title":"lsp-solargraph-library-directories"},{"location":"page/lsp-solargraph/#lsp-solargraph-log-level","text":"Type: (choice (const :tag warn info debug)) Default: warn Level of debug info to log. warn is least and debug is most.","title":"lsp-solargraph-log-level"},{"location":"page/lsp-solargraph/#lsp-solargraph-multi-root","text":"Type: boolean Default: t If non nil, solargraph will be started in multi-root mode.","title":"lsp-solargraph-multi-root"},{"location":"page/lsp-solargraph/#lsp-solargraph-references","text":"Type: boolean Default: t Enable finding references","title":"lsp-solargraph-references"},{"location":"page/lsp-solargraph/#lsp-solargraph-rename","text":"Type: boolean Default: t Enable symbol renaming","title":"lsp-solargraph-rename"},{"location":"page/lsp-solargraph/#lsp-solargraph-server-command","text":"Type: (repeat string) Default: (solargraph stdio) Command to start Solargraph Ruby language server.","title":"lsp-solargraph-server-command"},{"location":"page/lsp-solargraph/#lsp-solargraph-symbols","text":"Type: boolean Default: t Enable symbols","title":"lsp-solargraph-symbols"},{"location":"page/lsp-solargraph/#lsp-solargraph-use-bundler","text":"Type: boolean Default: nil Run solargraph under bundler","title":"lsp-solargraph-use-bundler"},{"location":"page/lsp-sorbet/","text":"Ruby (Sorbet) # Server # For more information about the LSP server, check sorbet . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-sorbet-as-add-on # Type: boolean Default: nil Run sorbet LSP server alongside other LSP server(s) lsp-sorbet-use-bundler # Type: boolean Default: nil Run sorbet under bundler","title":"Ruby (Sorbet)"},{"location":"page/lsp-sorbet/#ruby-sorbet","text":"","title":"Ruby (Sorbet)"},{"location":"page/lsp-sorbet/#server","text":"For more information about the LSP server, check sorbet .","title":"Server"},{"location":"page/lsp-sorbet/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-sorbet/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-sorbet/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-sorbet/#lsp-sorbet-as-add-on","text":"Type: boolean Default: nil Run sorbet LSP server alongside other LSP server(s)","title":"lsp-sorbet-as-add-on"},{"location":"page/lsp-sorbet/#lsp-sorbet-use-bundler","text":"Type: boolean Default: nil Run sorbet under bundler","title":"lsp-sorbet-use-bundler"},{"location":"page/lsp-sqls/","text":"SQL (sqls) # Server # For more information about the LSP server, check sqls . Installation # go install github.com/lighttiger2505/sqls@latest Debugger: Not available # root_file: docs/manual-language-docs/lsp-sqls.md # Sample configuration: # ( add-hook 'sql-mode-hook 'lsp ) ( setq lsp-sqls-workspace-config-path nil ) ( setq lsp-sqls-connections ' ((( driver . \"mysql\" ) ( dataSourceName . \"yyoncho:local@tcp(localhost:3306)/foo\" )) (( driver . \"mssql\" ) ( dataSourceName . \"Server=localhost;Database=sammy;User Id=yyoncho;Password=hunter2;\" )) (( driver . \"postgresql\" ) ( dataSourceName . \"host=127.0.0.1 port=5432 user=yyoncho password=local dbname=sammy sslmode=disable\" )))) Alternatively, you can leave lsp-sqls-workspace-config-path to the default \"workspace\" value, and put a json file in /.sqls/config.json containing { \"sqls\": { \"connections\": [ { \"driver\": \"mysql\", \"dataSourceName\": \"yyoncho:local@tcp(localhost:3306)/foo\" }, \u2026etc\u2026 ] } } Now lsp should start in sql-mode buffers, and you can pick a server connection with M-x lsp-execute-code-action and \"Switch Connections\" (or directly with M-x lsp-sql-switch-connection ). You can change database with M-x lsp-execute-code-action and \"Switch Database\" (or M-x lsp-sql-switch-database ). Available configurations # lsp-sqls-connections # Type: (repeat (alist :key-type (choice (const :tag Driver driver) (const :tag Connection String dataSourceName)) :value-type string)) Default: nil The connections to the SQL server(s). lsp-sqls-server # Type: file Default: sqls Path to the sqls binary. lsp-sqls-timeout # Type: number Default: 0.5 Timeout to use for sqls requests. lsp-sqls-workspace-config-path # Type: (choice (const workspace) (const root)) Default: workspace If non-nil then setup workspace configuration with json file path.","title":"SQL (sqls)"},{"location":"page/lsp-sqls/#sql-sqls","text":"","title":"SQL (sqls)"},{"location":"page/lsp-sqls/#server","text":"For more information about the LSP server, check sqls .","title":"Server"},{"location":"page/lsp-sqls/#installation","text":"go install github.com/lighttiger2505/sqls@latest","title":"Installation"},{"location":"page/lsp-sqls/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-sqls/#root_file-docsmanual-language-docslsp-sqlsmd","text":"","title":"root_file: docs/manual-language-docs/lsp-sqls.md"},{"location":"page/lsp-sqls/#sample-configuration","text":"( add-hook 'sql-mode-hook 'lsp ) ( setq lsp-sqls-workspace-config-path nil ) ( setq lsp-sqls-connections ' ((( driver . \"mysql\" ) ( dataSourceName . \"yyoncho:local@tcp(localhost:3306)/foo\" )) (( driver . \"mssql\" ) ( dataSourceName . \"Server=localhost;Database=sammy;User Id=yyoncho;Password=hunter2;\" )) (( driver . \"postgresql\" ) ( dataSourceName . \"host=127.0.0.1 port=5432 user=yyoncho password=local dbname=sammy sslmode=disable\" )))) Alternatively, you can leave lsp-sqls-workspace-config-path to the default \"workspace\" value, and put a json file in /.sqls/config.json containing { \"sqls\": { \"connections\": [ { \"driver\": \"mysql\", \"dataSourceName\": \"yyoncho:local@tcp(localhost:3306)/foo\" }, \u2026etc\u2026 ] } } Now lsp should start in sql-mode buffers, and you can pick a server connection with M-x lsp-execute-code-action and \"Switch Connections\" (or directly with M-x lsp-sql-switch-connection ). You can change database with M-x lsp-execute-code-action and \"Switch Database\" (or M-x lsp-sql-switch-database ).","title":"Sample configuration:"},{"location":"page/lsp-sqls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-sqls/#lsp-sqls-connections","text":"Type: (repeat (alist :key-type (choice (const :tag Driver driver) (const :tag Connection String dataSourceName)) :value-type string)) Default: nil The connections to the SQL server(s).","title":"lsp-sqls-connections"},{"location":"page/lsp-sqls/#lsp-sqls-server","text":"Type: file Default: sqls Path to the sqls binary.","title":"lsp-sqls-server"},{"location":"page/lsp-sqls/#lsp-sqls-timeout","text":"Type: number Default: 0.5 Timeout to use for sqls requests.","title":"lsp-sqls-timeout"},{"location":"page/lsp-sqls/#lsp-sqls-workspace-config-path","text":"Type: (choice (const workspace) (const root)) Default: workspace If non-nil then setup workspace configuration with json file path.","title":"lsp-sqls-workspace-config-path"},{"location":"page/lsp-steep/","text":"Ruby (Steep) # Server # For more information about the LSP server, check steep . Installation # gem install steep Debugger: Not available # Available configurations # lsp-steep-log-level # Type: (choice (const fatal) (const error) (const warn) (const info) (const debug)) Default: warn Log level of Steep. lsp-steep-server-path # Type: file Default: nil Path of the Steep language server executable. If specified, lsp-steep-use-bundler is ignored. lsp-steep-use-bundler # Type: boolean Default: nil Run Steep using Bunder.","title":"Ruby (Steep)"},{"location":"page/lsp-steep/#ruby-steep","text":"","title":"Ruby (Steep)"},{"location":"page/lsp-steep/#server","text":"For more information about the LSP server, check steep .","title":"Server"},{"location":"page/lsp-steep/#installation","text":"gem install steep","title":"Installation"},{"location":"page/lsp-steep/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-steep/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-steep/#lsp-steep-log-level","text":"Type: (choice (const fatal) (const error) (const warn) (const info) (const debug)) Default: warn Log level of Steep.","title":"lsp-steep-log-level"},{"location":"page/lsp-steep/#lsp-steep-server-path","text":"Type: file Default: nil Path of the Steep language server executable. If specified, lsp-steep-use-bundler is ignored.","title":"lsp-steep-server-path"},{"location":"page/lsp-steep/#lsp-steep-use-bundler","text":"Type: boolean Default: nil Run Steep using Bunder.","title":"lsp-steep-use-bundler"},{"location":"page/lsp-svelte/","text":"Svelte # Server # For more information about the LSP server, check svelteserver . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET svelte-ls RET . npm i -g svelte-language-server Debugger: Not available # Available configurations # lsp-svelte-plugin-css-color-presentations-enable # Type: boolean Default: t Enable color picker for CSS lsp-svelte-plugin-css-completions-emmet # Type: boolean Default: t Enable emmet auto completions for CSS lsp-svelte-plugin-css-completions-enable # Type: boolean Default: t Enable auto completions for CSS lsp-svelte-plugin-css-diagnostics-enable # Type: boolean Default: t Enable diagnostic messages for CSS lsp-svelte-plugin-css-document-colors-enable # Type: boolean Default: t Enable document colors for CSS lsp-svelte-plugin-css-document-symbols-enable # Type: boolean Default: t Enable document symbols for CSS lsp-svelte-plugin-css-enable # Type: boolean Default: t Enable the CSS plugin lsp-svelte-plugin-css-globals # Type: string Default: `` Which css files should be checked for global variables ( --global-var: value; ). These variables are added to the css completions. String of comma-separated file paths or globs relative to workspace root. lsp-svelte-plugin-css-hover-enable # Type: boolean Default: t Enable hover info for CSS lsp-svelte-plugin-css-selection-range-enable # Type: boolean Default: t Enable selection range for CSS lsp-svelte-plugin-html-completions-emmet # Type: boolean Default: t Enable emmet auto completions for HTML lsp-svelte-plugin-html-completions-enable # Type: boolean Default: t Enable auto completions for HTML lsp-svelte-plugin-html-document-symbols-enable # Type: boolean Default: t Enable document symbols for HTML lsp-svelte-plugin-html-enable # Type: boolean Default: t Enable the HTML plugin lsp-svelte-plugin-html-hover-enable # Type: boolean Default: t Enable hover info for HTML lsp-svelte-plugin-html-tag-complete-enable # Type: boolean Default: t Enable HTML tag auto closing lsp-svelte-plugin-svelte-code-actions-enable # Type: boolean Default: t Enable Code Actions for Svelte lsp-svelte-plugin-svelte-compiler-warnings # Type: (alist :key-type (symbol :tag Warning code) :value-type (choice (const :tag Ignore ignore) (const :tag Treat as error error))) Default: nil Svelte compiler warning codes to ignore or to treat as errors. Example: `((css-unused-selector . ignore) (unused-export-let . error)) lsp-svelte-plugin-svelte-completions-enable # Type: boolean Default: t Enable auto completions for Svelte lsp-svelte-plugin-svelte-diagnostics-enable # Type: boolean Default: t Enable diagnostic messages for Svelte lsp-svelte-plugin-svelte-enable # Type: boolean Default: t Enable the Svelte plugin lsp-svelte-plugin-svelte-format-enable # Type: boolean Default: t Enable formatting for Svelte (includes css & js) lsp-svelte-plugin-svelte-hover-enable # Type: boolean Default: t Enable hover information for Svelte lsp-svelte-plugin-svelte-rename-enable # Type: boolean Default: t Enable rename/move Svelte files functionality lsp-svelte-plugin-svelte-selection-range-enable # Type: boolean Default: t Enable selection range for Svelte lsp-svelte-plugin-typescript-code-actions-enable # Type: boolean Default: t Enable code actions for TypeScript lsp-svelte-plugin-typescript-completions-enable # Type: boolean Default: t Enable completions for TypeScript lsp-svelte-plugin-typescript-definitions-enable # Type: boolean Default: t Enable go to definition for TypeScript lsp-svelte-plugin-typescript-diagnostics-enable # Type: boolean Default: t Enable diagnostic messages for TypeScript lsp-svelte-plugin-typescript-document-symbols-enable # Type: boolean Default: t Enable document symbols for TypeScript lsp-svelte-plugin-typescript-enable # Type: boolean Default: t Enable the TypeScript plugin lsp-svelte-plugin-typescript-find-references-enable # Type: boolean Default: t Enable find-references for TypeScript lsp-svelte-plugin-typescript-hover-enable # Type: boolean Default: t Enable hover info for TypeScript lsp-svelte-plugin-typescript-rename-enable # Type: boolean Default: t Enable rename functionality for JS/TS variables inside Svelte files lsp-svelte-plugin-typescript-selection-range-enable # Type: boolean Default: t Enable selection range for TypeScript lsp-svelte-plugin-typescript-signature-help-enable # Type: boolean Default: t Enable signature help (parameter hints) for TypeScript","title":"Svelte"},{"location":"page/lsp-svelte/#svelte","text":"","title":"Svelte"},{"location":"page/lsp-svelte/#server","text":"For more information about the LSP server, check svelteserver .","title":"Server"},{"location":"page/lsp-svelte/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET svelte-ls RET . npm i -g svelte-language-server","title":"Installation"},{"location":"page/lsp-svelte/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-svelte/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-color-presentations-enable","text":"Type: boolean Default: t Enable color picker for CSS","title":"lsp-svelte-plugin-css-color-presentations-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-completions-emmet","text":"Type: boolean Default: t Enable emmet auto completions for CSS","title":"lsp-svelte-plugin-css-completions-emmet"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-completions-enable","text":"Type: boolean Default: t Enable auto completions for CSS","title":"lsp-svelte-plugin-css-completions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-diagnostics-enable","text":"Type: boolean Default: t Enable diagnostic messages for CSS","title":"lsp-svelte-plugin-css-diagnostics-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-document-colors-enable","text":"Type: boolean Default: t Enable document colors for CSS","title":"lsp-svelte-plugin-css-document-colors-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-document-symbols-enable","text":"Type: boolean Default: t Enable document symbols for CSS","title":"lsp-svelte-plugin-css-document-symbols-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-enable","text":"Type: boolean Default: t Enable the CSS plugin","title":"lsp-svelte-plugin-css-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-globals","text":"Type: string Default: `` Which css files should be checked for global variables ( --global-var: value; ). These variables are added to the css completions. String of comma-separated file paths or globs relative to workspace root.","title":"lsp-svelte-plugin-css-globals"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-hover-enable","text":"Type: boolean Default: t Enable hover info for CSS","title":"lsp-svelte-plugin-css-hover-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-css-selection-range-enable","text":"Type: boolean Default: t Enable selection range for CSS","title":"lsp-svelte-plugin-css-selection-range-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-html-completions-emmet","text":"Type: boolean Default: t Enable emmet auto completions for HTML","title":"lsp-svelte-plugin-html-completions-emmet"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-html-completions-enable","text":"Type: boolean Default: t Enable auto completions for HTML","title":"lsp-svelte-plugin-html-completions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-html-document-symbols-enable","text":"Type: boolean Default: t Enable document symbols for HTML","title":"lsp-svelte-plugin-html-document-symbols-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-html-enable","text":"Type: boolean Default: t Enable the HTML plugin","title":"lsp-svelte-plugin-html-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-html-hover-enable","text":"Type: boolean Default: t Enable hover info for HTML","title":"lsp-svelte-plugin-html-hover-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-html-tag-complete-enable","text":"Type: boolean Default: t Enable HTML tag auto closing","title":"lsp-svelte-plugin-html-tag-complete-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-code-actions-enable","text":"Type: boolean Default: t Enable Code Actions for Svelte","title":"lsp-svelte-plugin-svelte-code-actions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-compiler-warnings","text":"Type: (alist :key-type (symbol :tag Warning code) :value-type (choice (const :tag Ignore ignore) (const :tag Treat as error error))) Default: nil Svelte compiler warning codes to ignore or to treat as errors. Example: `((css-unused-selector . ignore) (unused-export-let . error))","title":"lsp-svelte-plugin-svelte-compiler-warnings"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-completions-enable","text":"Type: boolean Default: t Enable auto completions for Svelte","title":"lsp-svelte-plugin-svelte-completions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-diagnostics-enable","text":"Type: boolean Default: t Enable diagnostic messages for Svelte","title":"lsp-svelte-plugin-svelte-diagnostics-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-enable","text":"Type: boolean Default: t Enable the Svelte plugin","title":"lsp-svelte-plugin-svelte-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-format-enable","text":"Type: boolean Default: t Enable formatting for Svelte (includes css & js)","title":"lsp-svelte-plugin-svelte-format-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-hover-enable","text":"Type: boolean Default: t Enable hover information for Svelte","title":"lsp-svelte-plugin-svelte-hover-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-rename-enable","text":"Type: boolean Default: t Enable rename/move Svelte files functionality","title":"lsp-svelte-plugin-svelte-rename-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-svelte-selection-range-enable","text":"Type: boolean Default: t Enable selection range for Svelte","title":"lsp-svelte-plugin-svelte-selection-range-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-code-actions-enable","text":"Type: boolean Default: t Enable code actions for TypeScript","title":"lsp-svelte-plugin-typescript-code-actions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-completions-enable","text":"Type: boolean Default: t Enable completions for TypeScript","title":"lsp-svelte-plugin-typescript-completions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-definitions-enable","text":"Type: boolean Default: t Enable go to definition for TypeScript","title":"lsp-svelte-plugin-typescript-definitions-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-diagnostics-enable","text":"Type: boolean Default: t Enable diagnostic messages for TypeScript","title":"lsp-svelte-plugin-typescript-diagnostics-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-document-symbols-enable","text":"Type: boolean Default: t Enable document symbols for TypeScript","title":"lsp-svelte-plugin-typescript-document-symbols-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-enable","text":"Type: boolean Default: t Enable the TypeScript plugin","title":"lsp-svelte-plugin-typescript-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-find-references-enable","text":"Type: boolean Default: t Enable find-references for TypeScript","title":"lsp-svelte-plugin-typescript-find-references-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-hover-enable","text":"Type: boolean Default: t Enable hover info for TypeScript","title":"lsp-svelte-plugin-typescript-hover-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-rename-enable","text":"Type: boolean Default: t Enable rename functionality for JS/TS variables inside Svelte files","title":"lsp-svelte-plugin-typescript-rename-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-selection-range-enable","text":"Type: boolean Default: t Enable selection range for TypeScript","title":"lsp-svelte-plugin-typescript-selection-range-enable"},{"location":"page/lsp-svelte/#lsp-svelte-plugin-typescript-signature-help-enable","text":"Type: boolean Default: t Enable signature help (parameter hints) for TypeScript","title":"lsp-svelte-plugin-typescript-signature-help-enable"},{"location":"page/lsp-svlangserver/","text":"Verilog/SystemVerilog # Server # For more information about the LSP server, check svlangserver . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-clients-verilog-executable # Type: file Default: (hdl_checker --lsp) Command to start the hdl_checker language server. lsp-clients-svlangserver-bin-args # Type: (lsp-repeatable-vector string) Default: nil command line arguments for svlangserver binary lsp-clients-svlangserver-bin-path # Type: string Default: svlangserver svlangserver binary path lsp-clients-svlangserver-defines # Type: (lsp-repeatable-vector string) Default: nil Defines needed for linting lsp-clients-svlangserver-disableCompletionProvider # Type: boolean Default: nil Disable auto completion provided by the language server lsp-clients-svlangserver-disableHoverProvider # Type: boolean Default: nil Disable hover over help provided by the language server lsp-clients-svlangserver-disableLinting # Type: boolean Default: nil Disable verilator linting lsp-clients-svlangserver-disableSignatureHelpProvider # Type: boolean Default: nil Disable signature help provided by the language server lsp-clients-svlangserver-excludeIndexing # Type: (lsp-repeatable-vector string) Default: [test/**/*.{sv,svh}] Files excluded for indexing (glob pattern) lsp-clients-svlangserver-formatCommand # Type: string Default: verible-verilog-format Verible verilog format command lsp-clients-svlangserver-includeIndexing # Type: (lsp-repeatable-vector string) Default: [**/*.{sv,svh}] Files included for indexing (glob pattern) lsp-clients-svlangserver-launchConfiguration # Type: string Default: verilator -sv --lint-only -Wall Verilator command used for linting lsp-clients-svlangserver-lintOnUnsaved # Type: boolean Default: t Enable linting on unsaved files lsp-clients-svlangserver-module-path # Type: string Default: svlangserver.js svlangserver module path lsp-clients-svlangserver-node-command # Type: string Default: node node binary path lsp-clients-svlangserver-workspace-additional-dirs # Type: (lsp-repeatable-vector string) Default: nil Additional directories to be managed by this instance of svlangserver","title":"Verilog/SystemVerilog (svlangserver)"},{"location":"page/lsp-svlangserver/#verilogsystemverilog","text":"","title":"Verilog/SystemVerilog"},{"location":"page/lsp-svlangserver/#server","text":"For more information about the LSP server, check svlangserver .","title":"Server"},{"location":"page/lsp-svlangserver/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-svlangserver/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-svlangserver/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-svlangserver/#lsp-clients-verilog-executable","text":"Type: file Default: (hdl_checker --lsp) Command to start the hdl_checker language server.","title":"lsp-clients-verilog-executable"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-bin-args","text":"Type: (lsp-repeatable-vector string) Default: nil command line arguments for svlangserver binary","title":"lsp-clients-svlangserver-bin-args"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-bin-path","text":"Type: string Default: svlangserver svlangserver binary path","title":"lsp-clients-svlangserver-bin-path"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-defines","text":"Type: (lsp-repeatable-vector string) Default: nil Defines needed for linting","title":"lsp-clients-svlangserver-defines"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-disablecompletionprovider","text":"Type: boolean Default: nil Disable auto completion provided by the language server","title":"lsp-clients-svlangserver-disableCompletionProvider"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-disablehoverprovider","text":"Type: boolean Default: nil Disable hover over help provided by the language server","title":"lsp-clients-svlangserver-disableHoverProvider"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-disablelinting","text":"Type: boolean Default: nil Disable verilator linting","title":"lsp-clients-svlangserver-disableLinting"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-disablesignaturehelpprovider","text":"Type: boolean Default: nil Disable signature help provided by the language server","title":"lsp-clients-svlangserver-disableSignatureHelpProvider"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-excludeindexing","text":"Type: (lsp-repeatable-vector string) Default: [test/**/*.{sv,svh}] Files excluded for indexing (glob pattern)","title":"lsp-clients-svlangserver-excludeIndexing"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-formatcommand","text":"Type: string Default: verible-verilog-format Verible verilog format command","title":"lsp-clients-svlangserver-formatCommand"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-includeindexing","text":"Type: (lsp-repeatable-vector string) Default: [**/*.{sv,svh}] Files included for indexing (glob pattern)","title":"lsp-clients-svlangserver-includeIndexing"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-launchconfiguration","text":"Type: string Default: verilator -sv --lint-only -Wall Verilator command used for linting","title":"lsp-clients-svlangserver-launchConfiguration"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-lintonunsaved","text":"Type: boolean Default: t Enable linting on unsaved files","title":"lsp-clients-svlangserver-lintOnUnsaved"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-module-path","text":"Type: string Default: svlangserver.js svlangserver module path","title":"lsp-clients-svlangserver-module-path"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-node-command","text":"Type: string Default: node node binary path","title":"lsp-clients-svlangserver-node-command"},{"location":"page/lsp-svlangserver/#lsp-clients-svlangserver-workspace-additional-dirs","text":"Type: (lsp-repeatable-vector string) Default: nil Additional directories to be managed by this instance of svlangserver","title":"lsp-clients-svlangserver-workspace-additional-dirs"},{"location":"page/lsp-syntax_tree/","text":"ruby-syntax-tree # Server # For more information about the LSP server, check stree . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Lsp syntax tree"},{"location":"page/lsp-syntax_tree/#ruby-syntax-tree","text":"","title":"ruby-syntax-tree"},{"location":"page/lsp-syntax_tree/#server","text":"For more information about the LSP server, check stree .","title":"Server"},{"location":"page/lsp-syntax_tree/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-syntax_tree/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-syntax_tree/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-terraform-ls/","text":"Terraform LSP # Server # For more information about the LSP server, check terraform-ls . Installation # For more instructions on how to install manually, check here . Debugger: Not available # author: psibi template: comment.html root_file: docs/manual-language-docs/lsp-terraform-ls.md Server note # This page documents the official language server for Terraform by Hashicorp. Note that currently lsp-mode supports two terraform language servers. This FAQ entry shows how to choose a specific one. If you would want to go with the official Hashicorp's language server, set this: ( setq lsp-disabled-clients ' ( tfls )) terraform-ls # Commands # lsp-terraform-ls-validate # Runs terraform validate on project root. All the violations are published back in the buffer. lsp-terraform-ls-init # Runs terraform init using terraform available from $PATH . You have to make sure that that proper credentials are there. Note that this is a synchronous action and will timeout after a certain amount of time. lsp-terraform-ls-version # This feature is only available on terraform-ls version >= 0.29.0. Provides information about the terraform binary version for the current workspace. This is how it will look like in the minibuffer: Required: 1.1.9, Current: 1.0.5 Note that if you have changed the version in your $PATH meanwhile, you would have to restart the lsp session using lsp-workspace-restart for it to pick up the newer version. Code Lens # This is an experimental feature which can be enabled via the option lsp-terraform-ls-enable-show-reference : ( setq lsp-terraform-ls-enable-show-reference t ) This gif demonstrates how this feature is used: Semantic token support # Make sure to enable these two variables to ensure that you have semantic token support for terraform mode: ( setq lsp-semantic-tokens-enable t ) ( setq lsp-semantic-tokens-honor-refresh-requests t ) This is how the code looks without semantic tokens support: And with semantic token support you get more contextual information via different faces: Link to Documentation # Link to documentation from module sources for registry modules is available. Make sure you have this enabled: ( setq lsp-enable-links t ) Note that the default value of lsp-enable-links is t . So enabling it isn't strictly required, but you would require this feature for it to properly work. This gif demonstrates on how to use it: There are two ways to open the link: Key binding: Alt + Enter Clicking the middle button of your mouse Prefill required fields # This is an experimental feature which can be enabled via the option lsp-terraform-ls-prefill-required-fields : ( setq lsp-terraform-ls-prefill-required-fields t ) This gif demonstrates how this feature is used: Treeview controls # For this feature to work, make sure that you have lsp-treemacs installed. Providers widget # This widget can be invoked by lsp-terraform-ls-providers . Module calls widget # This widget can be invoked by lsp-terraform-ls-module-calls . If the modules data is empty, you might need to do terraform init for the project. The widget has a minor mode named lsp-terraform-modules-mode . Following keybinding are available within the mode: g : Refresh modules view Available configurations # lsp-terraform-ls-enable-show-reference # Type: boolean Default: nil Enable reference counts. Display reference counts above top level blocks and attributes. This is an experimental feature provided by the language server. lsp-terraform-ls-module-calls-position-params # Type: list Default: nil The optional module calls tree position params. Defaults to side following treemacs default. lsp-terraform-ls-prefill-required-fields # Type: boolean Default: nil Enable completion of required fields. Enable autocompletion for required fields when completing Terraform blocks. This is an experimental feature provided by the language server. lsp-terraform-ls-providers-position-params # Type: list Default: nil The optional providers tree position params. Defaults to side following treemacs default. lsp-terraform-ls-server # Type: (choice (file :tag File) (repeat string)) Default: terraform-ls Path to the terraform-ls binary. lsp-terraform-ls-validate-on-save # Type: boolean Default: nil Enable validating the current open file on save. This is an experimental feature provided by the language server.","title":"Terraform (terraform-ls)"},{"location":"page/lsp-terraform-ls/#terraform-lsp","text":"","title":"Terraform LSP"},{"location":"page/lsp-terraform-ls/#server","text":"For more information about the LSP server, check terraform-ls .","title":"Server"},{"location":"page/lsp-terraform-ls/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-terraform-ls/#debugger-not-available","text":"author: psibi template: comment.html root_file: docs/manual-language-docs/lsp-terraform-ls.md","title":"Debugger: Not available"},{"location":"page/lsp-terraform-ls/#server-note","text":"This page documents the official language server for Terraform by Hashicorp. Note that currently lsp-mode supports two terraform language servers. This FAQ entry shows how to choose a specific one. If you would want to go with the official Hashicorp's language server, set this: ( setq lsp-disabled-clients ' ( tfls ))","title":"Server note"},{"location":"page/lsp-terraform-ls/#terraform-ls","text":"","title":"terraform-ls"},{"location":"page/lsp-terraform-ls/#commands","text":"","title":"Commands"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-validate","text":"Runs terraform validate on project root. All the violations are published back in the buffer.","title":"lsp-terraform-ls-validate"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-init","text":"Runs terraform init using terraform available from $PATH . You have to make sure that that proper credentials are there. Note that this is a synchronous action and will timeout after a certain amount of time.","title":"lsp-terraform-ls-init"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-version","text":"This feature is only available on terraform-ls version >= 0.29.0. Provides information about the terraform binary version for the current workspace. This is how it will look like in the minibuffer: Required: 1.1.9, Current: 1.0.5 Note that if you have changed the version in your $PATH meanwhile, you would have to restart the lsp session using lsp-workspace-restart for it to pick up the newer version.","title":"lsp-terraform-ls-version"},{"location":"page/lsp-terraform-ls/#code-lens","text":"This is an experimental feature which can be enabled via the option lsp-terraform-ls-enable-show-reference : ( setq lsp-terraform-ls-enable-show-reference t ) This gif demonstrates how this feature is used:","title":"Code Lens"},{"location":"page/lsp-terraform-ls/#semantic-token-support","text":"Make sure to enable these two variables to ensure that you have semantic token support for terraform mode: ( setq lsp-semantic-tokens-enable t ) ( setq lsp-semantic-tokens-honor-refresh-requests t ) This is how the code looks without semantic tokens support: And with semantic token support you get more contextual information via different faces:","title":"Semantic token support"},{"location":"page/lsp-terraform-ls/#link-to-documentation","text":"Link to documentation from module sources for registry modules is available. Make sure you have this enabled: ( setq lsp-enable-links t ) Note that the default value of lsp-enable-links is t . So enabling it isn't strictly required, but you would require this feature for it to properly work. This gif demonstrates on how to use it: There are two ways to open the link: Key binding: Alt + Enter Clicking the middle button of your mouse","title":"Link to Documentation"},{"location":"page/lsp-terraform-ls/#prefill-required-fields","text":"This is an experimental feature which can be enabled via the option lsp-terraform-ls-prefill-required-fields : ( setq lsp-terraform-ls-prefill-required-fields t ) This gif demonstrates how this feature is used:","title":"Prefill required fields"},{"location":"page/lsp-terraform-ls/#treeview-controls","text":"For this feature to work, make sure that you have lsp-treemacs installed.","title":"Treeview controls"},{"location":"page/lsp-terraform-ls/#providers-widget","text":"This widget can be invoked by lsp-terraform-ls-providers .","title":"Providers widget"},{"location":"page/lsp-terraform-ls/#module-calls-widget","text":"This widget can be invoked by lsp-terraform-ls-module-calls . If the modules data is empty, you might need to do terraform init for the project. The widget has a minor mode named lsp-terraform-modules-mode . Following keybinding are available within the mode: g : Refresh modules view","title":"Module calls widget"},{"location":"page/lsp-terraform-ls/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-enable-show-reference","text":"Type: boolean Default: nil Enable reference counts. Display reference counts above top level blocks and attributes. This is an experimental feature provided by the language server.","title":"lsp-terraform-ls-enable-show-reference"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-module-calls-position-params","text":"Type: list Default: nil The optional module calls tree position params. Defaults to side following treemacs default.","title":"lsp-terraform-ls-module-calls-position-params"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-prefill-required-fields","text":"Type: boolean Default: nil Enable completion of required fields. Enable autocompletion for required fields when completing Terraform blocks. This is an experimental feature provided by the language server.","title":"lsp-terraform-ls-prefill-required-fields"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-providers-position-params","text":"Type: list Default: nil The optional providers tree position params. Defaults to side following treemacs default.","title":"lsp-terraform-ls-providers-position-params"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-server","text":"Type: (choice (file :tag File) (repeat string)) Default: terraform-ls Path to the terraform-ls binary.","title":"lsp-terraform-ls-server"},{"location":"page/lsp-terraform-ls/#lsp-terraform-ls-validate-on-save","text":"Type: boolean Default: nil Enable validating the current open file on save. This is an experimental feature provided by the language server.","title":"lsp-terraform-ls-validate-on-save"},{"location":"page/lsp-terraform/","text":"Terraform # Server # For more information about the LSP server, check terraform-lsp . Installation # Git clone outside of $GOPATH; go install Debugger: Not available # Available configurations # lsp-terraform-enable-logging # Type: boolean Default: nil If non-nil, enable `terraform-ls``s native logging. lsp-terraform-semantic-token-faces # Type: (alist :key-type string :value-type face) Default: ((namespace . lsp-face-semhl-namespace) (type . lsp-face-semhl-type) (class . lsp-face-semhl-class) (enum . lsp-face-semhl-enum) (interface . lsp-face-semhl-interface) (struct . lsp-face-semhl-struct) (typeParameter . lsp-face-semhl-type-parameter) (parameter . lsp-face-semhl-parameter) (variable . lsp-face-semhl-variable) (property . lsp-face-semhl-property) (enumMember . lsp-face-semhl-constant) (event . lsp-face-semhl-event) (function . lsp-face-semhl-function) (method . lsp-face-semhl-method) (macro . lsp-face-semhl-macro) (keyword . lsp-face-semhl-keyword) (modifier . lsp-face-semhl-member) (comment . lsp-face-semhl-comment) (string . lsp-face-semhl-string) (number . lsp-face-semhl-number) (regexp . lsp-face-semhl-regexp) (operator . lsp-face-semhl-operator) (hcl-attrName . lsp-face-semhl-member) (hcl-blockType . lsp-face-semhl-struct) (hcl-blockLabel . lsp-face-semhl-member) (hcl-bool . lsp-face-semhl-constant) (hcl-string . lsp-face-semhl-string) (hcl-number . lsp-face-semhl-number) (hcl-objectKey . lsp-face-semhl-member) (hcl-mapKey . lsp-face-semhl-member) (hcl-keyword . lsp-face-semhl-keyword) (hcl-traversalStep . lsp-face-semhl-member) (hcl-typeCapsule . lsp-face-semhl-type) (hcl-typePrimitive . lsp-face-semhl-type)) Mapping between terrafom-ls tokens and fonts to apply. lsp-terraform-semantic-token-modifier-faces # Type: (alist :key-type string :value-type face) Default: ((declaration . lsp-face-semhl-class) (definition . lsp-face-semhl-definition) (readonly . lsp-face-semhl-constant) (static . lsp-face-semhl-static) (deprecated . lsp-face-semhl-deprecated) (abstract . lsp-face-semhl-keyword) (async . lsp-face-semhl-macro) (modification . lsp-face-semhl-operator) (documentation . lsp-face-semhl-comment) (defaultLibrary . lsp-face-semhl-default-library) (hcl-dependent . lsp-face-semhl-constant) (terraform-data . lsp-face-semhl-constant) (terraform-locals . lsp-face-semhl-variable) (terraform-module . lsp-face-semhl-namespace) (terraform-output . lsp-face-semhl-constant) (terraform-provider . lsp-face-semhl-class) (terraform-resource . lsp-face-semhl-interface) (terraform-provisioner . lsp-face-semhl-default-library) (terraform-connection . lsp-face-semhl-constant) (terraform-variable . lsp-face-semhl-variable) (terraform-terraform . lsp-face-semhl-constant) (terraform-backend . lsp-face-semhl-definition) (terraform-name . lsp-face-semhl-interface) (terraform-type . lsp-face-semhl-type) (terraform-requiredProviders . lsp-face-semhl-default-library)) Mapping between terraform-ls modifiers and fonts to apply. lsp-terraform-server # Type: (choice (file :tag File) (repeat string)) Default: terraform-lsp Path to the terraform-lsp binary.","title":"Terraform (terraform-lsp)"},{"location":"page/lsp-terraform/#terraform","text":"","title":"Terraform"},{"location":"page/lsp-terraform/#server","text":"For more information about the LSP server, check terraform-lsp .","title":"Server"},{"location":"page/lsp-terraform/#installation","text":"Git clone outside of $GOPATH; go install","title":"Installation"},{"location":"page/lsp-terraform/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-terraform/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-terraform/#lsp-terraform-enable-logging","text":"Type: boolean Default: nil If non-nil, enable `terraform-ls``s native logging.","title":"lsp-terraform-enable-logging"},{"location":"page/lsp-terraform/#lsp-terraform-semantic-token-faces","text":"Type: (alist :key-type string :value-type face) Default: ((namespace . lsp-face-semhl-namespace) (type . lsp-face-semhl-type) (class . lsp-face-semhl-class) (enum . lsp-face-semhl-enum) (interface . lsp-face-semhl-interface) (struct . lsp-face-semhl-struct) (typeParameter . lsp-face-semhl-type-parameter) (parameter . lsp-face-semhl-parameter) (variable . lsp-face-semhl-variable) (property . lsp-face-semhl-property) (enumMember . lsp-face-semhl-constant) (event . lsp-face-semhl-event) (function . lsp-face-semhl-function) (method . lsp-face-semhl-method) (macro . lsp-face-semhl-macro) (keyword . lsp-face-semhl-keyword) (modifier . lsp-face-semhl-member) (comment . lsp-face-semhl-comment) (string . lsp-face-semhl-string) (number . lsp-face-semhl-number) (regexp . lsp-face-semhl-regexp) (operator . lsp-face-semhl-operator) (hcl-attrName . lsp-face-semhl-member) (hcl-blockType . lsp-face-semhl-struct) (hcl-blockLabel . lsp-face-semhl-member) (hcl-bool . lsp-face-semhl-constant) (hcl-string . lsp-face-semhl-string) (hcl-number . lsp-face-semhl-number) (hcl-objectKey . lsp-face-semhl-member) (hcl-mapKey . lsp-face-semhl-member) (hcl-keyword . lsp-face-semhl-keyword) (hcl-traversalStep . lsp-face-semhl-member) (hcl-typeCapsule . lsp-face-semhl-type) (hcl-typePrimitive . lsp-face-semhl-type)) Mapping between terrafom-ls tokens and fonts to apply.","title":"lsp-terraform-semantic-token-faces"},{"location":"page/lsp-terraform/#lsp-terraform-semantic-token-modifier-faces","text":"Type: (alist :key-type string :value-type face) Default: ((declaration . lsp-face-semhl-class) (definition . lsp-face-semhl-definition) (readonly . lsp-face-semhl-constant) (static . lsp-face-semhl-static) (deprecated . lsp-face-semhl-deprecated) (abstract . lsp-face-semhl-keyword) (async . lsp-face-semhl-macro) (modification . lsp-face-semhl-operator) (documentation . lsp-face-semhl-comment) (defaultLibrary . lsp-face-semhl-default-library) (hcl-dependent . lsp-face-semhl-constant) (terraform-data . lsp-face-semhl-constant) (terraform-locals . lsp-face-semhl-variable) (terraform-module . lsp-face-semhl-namespace) (terraform-output . lsp-face-semhl-constant) (terraform-provider . lsp-face-semhl-class) (terraform-resource . lsp-face-semhl-interface) (terraform-provisioner . lsp-face-semhl-default-library) (terraform-connection . lsp-face-semhl-constant) (terraform-variable . lsp-face-semhl-variable) (terraform-terraform . lsp-face-semhl-constant) (terraform-backend . lsp-face-semhl-definition) (terraform-name . lsp-face-semhl-interface) (terraform-type . lsp-face-semhl-type) (terraform-requiredProviders . lsp-face-semhl-default-library)) Mapping between terraform-ls modifiers and fonts to apply.","title":"lsp-terraform-semantic-token-modifier-faces"},{"location":"page/lsp-terraform/#lsp-terraform-server","text":"Type: (choice (file :tag File) (repeat string)) Default: terraform-lsp Path to the terraform-lsp binary.","title":"lsp-terraform-server"},{"location":"page/lsp-tex/","text":"TeX, LaTeX, etc. # Server # For more information about the LSP server, check Digestif . Installation # luarocks --server http://luarocks.org/dev install digestif Debugger: Not available # Available configurations # lsp-clients-digestif-executable # Type: file Default: digestif Command to start the Digestif language server. lsp-clients-texlab-executable # Type: file Default: texlab Command to start the texlab language server. lsp-tex-server # Type: (choice (const :tag texlab texlab) (const :tag digestif digestif)) Default: texlab Choose LSP tex server.","title":"TeX, LaTeX, etc (digestif)"},{"location":"page/lsp-tex/#tex-latex-etc","text":"","title":"TeX, LaTeX, etc."},{"location":"page/lsp-tex/#server","text":"For more information about the LSP server, check Digestif .","title":"Server"},{"location":"page/lsp-tex/#installation","text":"luarocks --server http://luarocks.org/dev install digestif","title":"Installation"},{"location":"page/lsp-tex/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-tex/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-tex/#lsp-clients-digestif-executable","text":"Type: file Default: digestif Command to start the Digestif language server.","title":"lsp-clients-digestif-executable"},{"location":"page/lsp-tex/#lsp-clients-texlab-executable","text":"Type: file Default: texlab Command to start the texlab language server.","title":"lsp-clients-texlab-executable"},{"location":"page/lsp-tex/#lsp-tex-server","text":"Type: (choice (const :tag texlab texlab) (const :tag digestif digestif)) Default: texlab Choose LSP tex server.","title":"lsp-tex-server"},{"location":"page/lsp-texlab/","text":"TeX, LaTeX, etc. # Server # For more information about the LSP server, check texlab . Installation # cargo install --locked --git https://github.com/latex-lsp/texlab.git Debugger: Not available # Available configurations #","title":"TeX, LaTeX, etc (texlab)"},{"location":"page/lsp-texlab/#tex-latex-etc","text":"","title":"TeX, LaTeX, etc."},{"location":"page/lsp-texlab/#server","text":"For more information about the LSP server, check texlab .","title":"Server"},{"location":"page/lsp-texlab/#installation","text":"cargo install --locked --git https://github.com/latex-lsp/texlab.git","title":"Installation"},{"location":"page/lsp-texlab/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-texlab/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-tilt/","text":"Tilt LSP # Server # For more information about the LSP server, check tilt . Installation # To be used with tilt-mode available in https://github.com/Konubinix/tilt-mode For more instructions on how to install manually, check here . Debugger: Not available # Available configurations #","title":"Tilt"},{"location":"page/lsp-tilt/#tilt-lsp","text":"","title":"Tilt LSP"},{"location":"page/lsp-tilt/#server","text":"For more information about the LSP server, check tilt .","title":"Server"},{"location":"page/lsp-tilt/#installation","text":"To be used with tilt-mode available in https://github.com/Konubinix/tilt-mode For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-tilt/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-tilt/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-toml/","text":"TOML # Server # For more information about the LSP server, check taplo . Installation # cargo install taplo-cli --features lsp Debugger: Not available # Available configurations # lsp-toml-cache-path # Type: string Default: /home/runner/.emacs.d/.cache/lsp-toml Path to cache. lsp-toml-command # Type: string Default: taplo Path to taplo command. lsp-toml-completion-max-keys # Type: number Default: 5 The maximum amount of keys in a dotted key to display during completion, 0 effectively disables key completions. lsp-toml-schema-associations # Type: (alist :key-type symbol :value-type string) Default: nil Additional document and schema associations. The key must be a regular expression, this pattern is used to associate schemas with absolute document URIs. The value must be an absolute URI to the JSON schema lsp-toml-schema-cache-disk-expiration # Type: number Default: 600 The amount of seconds after which cached catalogs and schemas expire and will be attempted to be fetched again. lsp-toml-schema-cache-memory-expiration # Type: number Default: 60 The amount of seconds after which schemas will be invalidated from memory. lsp-toml-schema-catalogs # Type: lsp-string-vector Default: [https://www.schemastore.org/api/json/catalog.json] A list of URLs to schema catalogs where schemas and associations can be fetched from lsp-toml-schema-enabled # Type: boolean Default: t Enable completion and validation based on JSON schemas. lsp-toml-schema-links # Type: boolean Default: nil Whether to show clickable links for keys in the editor. lsp-toml-semantic-tokens # Type: boolean Default: nil Enable semantic tokens for inline table and array keys. lsp-toml-syntax-semantic-tokens # Type: boolean Default: t Whether to enable semantic tokens for tables and arrays. lsp-toml-taplo-config-file-enabled # Type: boolean Default: t Whether to enable the usage of a Taplo configuration file. lsp-toml-taplo-config-file-path # Type: string Default: nil An absolute, or workspace relative path to the Taplo configuration file.","title":"TOML"},{"location":"page/lsp-toml/#toml","text":"","title":"TOML"},{"location":"page/lsp-toml/#server","text":"For more information about the LSP server, check taplo .","title":"Server"},{"location":"page/lsp-toml/#installation","text":"cargo install taplo-cli --features lsp","title":"Installation"},{"location":"page/lsp-toml/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-toml/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-toml/#lsp-toml-cache-path","text":"Type: string Default: /home/runner/.emacs.d/.cache/lsp-toml Path to cache.","title":"lsp-toml-cache-path"},{"location":"page/lsp-toml/#lsp-toml-command","text":"Type: string Default: taplo Path to taplo command.","title":"lsp-toml-command"},{"location":"page/lsp-toml/#lsp-toml-completion-max-keys","text":"Type: number Default: 5 The maximum amount of keys in a dotted key to display during completion, 0 effectively disables key completions.","title":"lsp-toml-completion-max-keys"},{"location":"page/lsp-toml/#lsp-toml-schema-associations","text":"Type: (alist :key-type symbol :value-type string) Default: nil Additional document and schema associations. The key must be a regular expression, this pattern is used to associate schemas with absolute document URIs. The value must be an absolute URI to the JSON schema","title":"lsp-toml-schema-associations"},{"location":"page/lsp-toml/#lsp-toml-schema-cache-disk-expiration","text":"Type: number Default: 600 The amount of seconds after which cached catalogs and schemas expire and will be attempted to be fetched again.","title":"lsp-toml-schema-cache-disk-expiration"},{"location":"page/lsp-toml/#lsp-toml-schema-cache-memory-expiration","text":"Type: number Default: 60 The amount of seconds after which schemas will be invalidated from memory.","title":"lsp-toml-schema-cache-memory-expiration"},{"location":"page/lsp-toml/#lsp-toml-schema-catalogs","text":"Type: lsp-string-vector Default: [https://www.schemastore.org/api/json/catalog.json] A list of URLs to schema catalogs where schemas and associations can be fetched from","title":"lsp-toml-schema-catalogs"},{"location":"page/lsp-toml/#lsp-toml-schema-enabled","text":"Type: boolean Default: t Enable completion and validation based on JSON schemas.","title":"lsp-toml-schema-enabled"},{"location":"page/lsp-toml/#lsp-toml-schema-links","text":"Type: boolean Default: nil Whether to show clickable links for keys in the editor.","title":"lsp-toml-schema-links"},{"location":"page/lsp-toml/#lsp-toml-semantic-tokens","text":"Type: boolean Default: nil Enable semantic tokens for inline table and array keys.","title":"lsp-toml-semantic-tokens"},{"location":"page/lsp-toml/#lsp-toml-syntax-semantic-tokens","text":"Type: boolean Default: t Whether to enable semantic tokens for tables and arrays.","title":"lsp-toml-syntax-semantic-tokens"},{"location":"page/lsp-toml/#lsp-toml-taplo-config-file-enabled","text":"Type: boolean Default: t Whether to enable the usage of a Taplo configuration file.","title":"lsp-toml-taplo-config-file-enabled"},{"location":"page/lsp-toml/#lsp-toml-taplo-config-file-path","text":"Type: string Default: nil An absolute, or workspace relative path to the Taplo configuration file.","title":"lsp-toml-taplo-config-file-path"},{"location":"page/lsp-ttcn3/","text":"TTCN3 # Server # For more information about the LSP server, check ntt . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-ttcn3-lsp-server-command # Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: (ntt langserver) Command to start ttcn3-language-server.","title":"TTCN3"},{"location":"page/lsp-ttcn3/#ttcn3","text":"","title":"TTCN3"},{"location":"page/lsp-ttcn3/#server","text":"For more information about the LSP server, check ntt .","title":"Server"},{"location":"page/lsp-ttcn3/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-ttcn3/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-ttcn3/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-ttcn3/#lsp-ttcn3-lsp-server-command","text":"Type: (choice (string :tag Single string value) (repeat :tag List of string values string)) Default: (ntt langserver) Command to start ttcn3-language-server.","title":"lsp-ttcn3-lsp-server-command"},{"location":"page/lsp-typeprof/","text":"Ruby (TypeProf) # Server # For more information about the LSP server, check typeprof . Installation # It is included in Ruby >= 3.1 Debugger: Not available # Available configurations # lsp-typeprof-use-bundler # Type: boolean Default: nil Run typeprof under bundler.","title":"Ruby (TypeProf)"},{"location":"page/lsp-typeprof/#ruby-typeprof","text":"","title":"Ruby (TypeProf)"},{"location":"page/lsp-typeprof/#server","text":"For more information about the LSP server, check typeprof .","title":"Server"},{"location":"page/lsp-typeprof/#installation","text":"It is included in Ruby >= 3.1","title":"Installation"},{"location":"page/lsp-typeprof/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-typeprof/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-typeprof/#lsp-typeprof-use-bundler","text":"Type: boolean Default: nil Run typeprof under bundler.","title":"lsp-typeprof-use-bundler"},{"location":"page/lsp-typescript-javascript/","text":"JavaScript/TypeScript (sourcegraph - UNMAINTAINED) # Server # For more information about the LSP server, check javascript-typescript-stdio . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET jsts-ls RET . npm i -g javascript-typescript-langserver Debugger: Yes (Firefox/Chrome) # Available configurations # lsp-clients-typescript-javascript-server-args # Type: (repeat string) Default: nil Extra arguments for the typescript-language-server language server.","title":"JavaScript/TypeScript (sourcegraph)"},{"location":"page/lsp-typescript-javascript/#javascripttypescript-sourcegraph-unmaintained","text":"","title":"JavaScript/TypeScript (sourcegraph - UNMAINTAINED)"},{"location":"page/lsp-typescript-javascript/#server","text":"For more information about the LSP server, check javascript-typescript-stdio .","title":"Server"},{"location":"page/lsp-typescript-javascript/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET jsts-ls RET . npm i -g javascript-typescript-langserver","title":"Installation"},{"location":"page/lsp-typescript-javascript/#debugger-yes-firefoxchrome","text":"","title":"Debugger: Yes (Firefox/Chrome)"},{"location":"page/lsp-typescript-javascript/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-typescript-javascript/#lsp-clients-typescript-javascript-server-args","text":"Type: (repeat string) Default: nil Extra arguments for the typescript-language-server language server.","title":"lsp-clients-typescript-javascript-server-args"},{"location":"page/lsp-typescript/","text":"JavaScript/TypeScript (RECOMMENDED) # Server # For more information about the LSP server, check typescript-language-server (formerly theia-ide / TypeFox) . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET ts-ls RET . npm i -g typescript-language-server; npm i -g typescript Debugger: Yes (Firefox/Chrome) # Available configurations # lsp-clients-typescript-disable-automatic-typing-acquisition # Type: boolean Default: nil Disable tsserver from automatically fetching missing type definitions. (@types packages) for external modules. lsp-clients-typescript-log-verbosity # Type: (choice (const off) (const terse) (const normal) (const requesttime) (const verbose)) Default: info The verbosity level of the information printed in the log by tsserver. lsp-clients-typescript-max-ts-server-memory # Type: integer Default: nil The maximum size of the V8`s old memory section in megabytes. (for example 4096 means 4GB). The default value is dynamically configured by Node so can differ per system. Increase for very big projects that exceed allowed memory usage. lsp-clients-typescript-npm-location # Type: string Default: nil Specifies the path to the NPM exec used for Automatic Type Acquisition. lsp-clients-typescript-plugins # Type: (restricted-sexp :tag Vector :match-alternatives (lambda (xs) (and (vectorp xs) (seq-every-p (-lambda ((&plist :name :location)) (and name location)) xs)))) Default: [] The list of plugins to load. It should be a vector of plist with keys :location and :name where :name is the name of the package and :location is the directory containing the package. Example: (vector (list :name \"@vsintellicode/typescript-intellicode-plugin\" :location \" .vscode/extensions/visualstudioexptteam. vscodeintellicode-1.1.9/\")) lsp-clients-typescript-prefer-use-project-ts-server # Type: boolean Default: nil When set, prefers using the tsserver.js from your project. This can allow loading plugins configured in your tsconfig.json. lsp-clients-typescript-preferences # Type: plist Default: nil Preferences passed to the Typescript (tsserver) process. See https://github.com/typescript-language-server/typescript-language-server#initializationoptions for the list of preferences available in the latest version of TypeScript. lsp-clients-typescript-server-args # Type: (repeat string) Default: (--stdio) Extra arguments for the typescript-language-server language server. lsp-clients-typescript-tls-path # Type: string Default: typescript-language-server Path to the typescript-language-server binary. lsp-clients-typescript-tsserver # Type: plist Default: nil Options related to the tsserver process. See below for more info. See https://github.com/typescript-language-server/typescript-language-server#initializationoptions for the list of tsserver available in the latest version of TypeScript. lsp-javascript-auto-closing-tags # Type: boolean Default: t Enable/disable automatic closing of JSX tags. Requires using TypeScript 3.0 or newer in the workspace. lsp-javascript-completions-complete-function-calls # Type: boolean Default: t Complete function calls. lsp-javascript-display-enum-member-value-hints # Type: boolean Default: nil Show inlay hints for enum member values. lsp-javascript-display-parameter-name-hints # Type: (choice (const :tag none none) (const :tag literals literals) (const :tag all all)) Default: none Level of hinting for parameter types. lsp-javascript-display-parameter-name-hints-when-argument-matches-name # Type: boolean Default: nil Show inlay hints for function parameters even when argument matches name (e.g. data variable passed as data parameter). lsp-javascript-display-parameter-type-hints # Type: boolean Default: nil Show inlay hints for function parameters. lsp-javascript-display-property-declaration-type-hints # Type: boolean Default: nil Show inlay hints for property declaration types. lsp-javascript-display-return-type-hints # Type: boolean Default: nil Show inlay hints for function return types. lsp-javascript-display-variable-type-hints # Type: boolean Default: nil Show inlay hints for variable types. lsp-javascript-format-enable # Type: boolean Default: t Enable/disable default JavaScript formatter. lsp-javascript-format-insert-space-after-comma-delimiter # Type: boolean Default: t Defines space handling after a comma delimiter. lsp-javascript-format-insert-space-after-constructor # Type: boolean Default: nil Defines space handling after the constructor keyword. Requires using TypeScript 2.3.0 or newer in the workspace. lsp-javascript-format-insert-space-after-function-keyword-for-anonymous-functions # Type: boolean Default: t Defines space handling after function keyword for anonymous functions. lsp-javascript-format-insert-space-after-keywords-in-control-flow-statements # Type: boolean Default: t Defines space handling after keywords in a control flow statement. lsp-javascript-format-insert-space-after-opening-and-before-closing-empty-braces # Type: boolean Default: nil Defines space handling after opening/before closing empty braces. lsp-javascript-format-insert-space-after-opening-and-before-closing-jsx-expression-braces # Type: boolean Default: nil Defines space handling after opening/before closing JSX expression braces. lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-braces # Type: boolean Default: t Defines space handling after opening and before closing non-empty braces. Requires using TypeScript 2.3.0 or newer in the workspace. lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-brackets # Type: boolean Default: nil Defines space handling after opening and before closing non-empty brackets. lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-parenthesis # Type: boolean Default: nil Defines space handling after opening and before closing non-empty parenthesis. lsp-javascript-format-insert-space-after-opening-and-before-closing-template-string-braces # Type: boolean Default: nil Defines space handling after opening/before closing template string braces. lsp-javascript-format-insert-space-after-semicolon-in-for-statements # Type: boolean Default: t Defines space handling after a semicolon in a for statement. lsp-javascript-format-insert-space-before-and-after-binary-operators # Type: boolean Default: t Defines space handling after a binary operator. lsp-javascript-format-insert-space-before-function-parenthesis # Type: boolean Default: nil Defines space handling before function argument parentheses. lsp-javascript-format-place-open-brace-on-new-line-for-control-blocks # Type: boolean Default: nil Defines whether an open brace is put onto a new line for control blocks or not. lsp-javascript-format-place-open-brace-on-new-line-for-functions # Type: boolean Default: nil Defines whether an open brace is put onto a new line for functions or not. lsp-javascript-implicit-project-config-check-js # Type: boolean Default: nil Enable/disable semantic checking of JavaScript files. Existing jsconfig.json or tsconfig.json files override this setting. Requires using TypeScript 2.3.1 or newer in the workspace. lsp-javascript-implicit-project-config-experimental-decorators # Type: boolean Default: nil lsp-javascript-preferences-import-module-specifier # Type: (choice (const auto) (const relative) (const non-relative)) Default: auto Preferred path style for auto imports. lsp-javascript-preferences-quote-style # Type: (choice (const auto) (const single) (const double)) Default: auto lsp-javascript-preferences-rename-shorthand-properties # Type: boolean Default: t Enable/disable introducing aliases for object shorthand properties during renames. Requires using TypeScript 3.4 or newer in the workspace. lsp-javascript-suggest-auto-imports # Type: boolean Default: t Enable/disable auto import suggestions. Requires using TypeScript 2.6.1 or newer in the workspace. lsp-javascript-suggest-complete-function-calls # Type: boolean Default: nil Complete functions with their parameter signature. lsp-javascript-suggest-complete-js-docs # Type: boolean Default: t Enable/disable suggestion to complete JSDoc comments. lsp-javascript-suggest-enabled # Type: boolean Default: t Enabled/disable autocomplete suggestions. lsp-javascript-suggest-names # Type: boolean Default: t Enable/disable including unique names from the file in JavaScript suggestions. lsp-javascript-suggest-paths # Type: boolean Default: t Enable/disable suggestions for paths in import statements and require calls. lsp-javascript-suggestion-actions-enabled # Type: boolean Default: t Enable/disable suggestion diagnostics for JavaScript files in the editor. Requires using TypeScript 2.8 or newer in the workspace. lsp-javascript-update-imports-on-file-move-enabled # Type: (choice (const prompt) (const always) (const never)) Default: prompt Prompt on each rename. lsp-javascript-validate-enable # Type: boolean Default: t Enable/disable JavaScript validation. lsp-typescript-auto-closing-tags # Type: boolean Default: t Enable/disable automatic closing of JSX tags. Requires using TypeScript 3.0 or newer in the workspace. lsp-typescript-format-enable # Type: boolean Default: t Enable/disable default TypeScript formatter. lsp-typescript-format-insert-space-after-comma-delimiter # Type: boolean Default: t Defines space handling after a comma delimiter. lsp-typescript-format-insert-space-after-constructor # Type: boolean Default: nil Defines space handling after the constructor keyword. Requires using TypeScript 2.3.0 or newer in the workspace. lsp-typescript-format-insert-space-after-function-keyword-for-anonymous-functions # Type: boolean Default: t Defines space handling after function keyword for anonymous functions. lsp-typescript-format-insert-space-after-keywords-in-control-flow-statements # Type: boolean Default: t Defines space handling after keywords in a control flow statement. lsp-typescript-format-insert-space-after-opening-and-before-closing-empty-braces # Type: boolean Default: nil Defines space handling after opening/before closing empty braces. lsp-typescript-format-insert-space-after-opening-and-before-closing-jsx-expression-braces # Type: boolean Default: nil Defines space handling after opening/before closing JSX expression braces. lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-braces # Type: boolean Default: t Defines space handling after opening and before closing non-empty braces. Requires using TypeScript 2.3.0 or newer in the workspace. lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-brackets # Type: boolean Default: nil Defines space handling after opening and before closing non-empty brackets. lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-parenthesis # Type: boolean Default: nil Defines space handling after opening/before closing non-empty parenthesis. lsp-typescript-format-insert-space-after-opening-and-before-closing-template-string-braces # Type: boolean Default: nil Defines space handling after opening/before closing template string braces. lsp-typescript-format-insert-space-after-semicolon-in-for-statements # Type: boolean Default: t Defines space handling after a semicolon in a for statement. lsp-typescript-format-insert-space-after-type-assertion # Type: boolean Default: nil Defines space handling after type assertions in TypeScript. Requires using TypeScript 2.4 or newer in the workspace. lsp-typescript-format-insert-space-before-and-after-binary-operators # Type: boolean Default: t Defines space handling after a binary operator. lsp-typescript-format-insert-space-before-function-parenthesis # Type: boolean Default: nil Defines space handling before function argument parentheses. lsp-typescript-format-place-open-brace-on-new-line-for-control-blocks # Type: boolean Default: nil Defines whether an open brace is put onto a newline for control blocks. lsp-typescript-format-place-open-brace-on-new-line-for-functions # Type: boolean Default: nil Defines whether an open brace is put onto a new line for functions or not. lsp-typescript-locale # Type: (choice (const de) (const es) (const en) (const fr) (const it) (const ja) (const ko) (const ru) (const zh-CN) (const zh-TW) nil) Default: nil lsp-typescript-preferences-import-module-specifier # Type: (choice (const auto) (const relative) (const non-relative)) Default: auto Infer the shortest path type. lsp-typescript-preferences-quote-style # Type: (choice (const auto) (const single) (const double)) Default: auto lsp-typescript-preferences-rename-shorthand-properties # Type: boolean Default: t Enable/disable introducing aliases for object shorthand properties during renames. Requires using TypeScript 3.4 or newer in the workspace. lsp-typescript-report-style-checks-as-warnings # Type: boolean Default: t Report style checks as warnings. lsp-typescript-suggest-auto-imports # Type: boolean Default: t Enable/disable auto import suggestions. Requires using TypeScript 2.6.1 or newer in the workspace. lsp-typescript-suggest-complete-function-calls # Type: boolean Default: nil Complete functions with their parameter signature. lsp-typescript-suggest-complete-js-docs # Type: boolean Default: t Enable/disable suggestion to complete JSDoc comments. lsp-typescript-suggest-enabled # Type: boolean Default: t Enabled/disable autocomplete suggestions. lsp-typescript-suggest-paths # Type: boolean Default: t Enable/disable suggestions for paths in import statements and require calls. lsp-typescript-suggestion-actions-enabled # Type: boolean Default: t Enable/disable suggestion diagnostics for TypeScript files in the editor. Requires using TypeScript 2.8 or newer in the workspace. lsp-typescript-surveys-enabled # Type: boolean Default: t Enabled/disable occasional surveys that help us improve VS Code`s JavaScript and TypeScript support. lsp-typescript-tsc-auto-detect # Type: (choice (const on) (const off) (const build) (const watch)) Default: on Controls auto detection of tsc tasks. lsp-typescript-tsserver-plugin-paths # Type: (repeat string) Default: nil Additional paths to discover Typescript Language Service plugins. Requires using TypeScript 2.3.0 or newer in the workspace. lsp-typescript-tsserver-trace # Type: (choice (const off) (const messages) (const verbose)) Default: off Enables tracing of messages sent to the TS server. This trace can be used to diagnose TS Server issues. The trace may contain file paths, source code, and other potentially sensitive information from your project. lsp-typescript-update-imports-on-file-move-enabled # Type: (choice (const prompt) (const always) (const never)) Default: prompt Enable/disable automatic updating of import paths when you rename or move a file in VS Code. Requires using TypeScript 2.9 or newer in the workspace. lsp-typescript-validate-enable # Type: boolean Default: t Enable/disable TypeScript validation.","title":"JavaScript/TypeScript (theia-ide)"},{"location":"page/lsp-typescript/#javascripttypescript-recommended","text":"","title":"JavaScript/TypeScript (RECOMMENDED)"},{"location":"page/lsp-typescript/#server","text":"For more information about the LSP server, check typescript-language-server (formerly theia-ide / TypeFox) .","title":"Server"},{"location":"page/lsp-typescript/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET ts-ls RET . npm i -g typescript-language-server; npm i -g typescript","title":"Installation"},{"location":"page/lsp-typescript/#debugger-yes-firefoxchrome","text":"","title":"Debugger: Yes (Firefox/Chrome)"},{"location":"page/lsp-typescript/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-typescript/#lsp-clients-typescript-disable-automatic-typing-acquisition","text":"Type: boolean Default: nil Disable tsserver from automatically fetching missing type definitions. (@types packages) for external modules.","title":"lsp-clients-typescript-disable-automatic-typing-acquisition"},{"location":"page/lsp-typescript/#lsp-clients-typescript-log-verbosity","text":"Type: (choice (const off) (const terse) (const normal) (const requesttime) (const verbose)) Default: info The verbosity level of the information printed in the log by tsserver.","title":"lsp-clients-typescript-log-verbosity"},{"location":"page/lsp-typescript/#lsp-clients-typescript-max-ts-server-memory","text":"Type: integer Default: nil The maximum size of the V8`s old memory section in megabytes. (for example 4096 means 4GB). The default value is dynamically configured by Node so can differ per system. Increase for very big projects that exceed allowed memory usage.","title":"lsp-clients-typescript-max-ts-server-memory"},{"location":"page/lsp-typescript/#lsp-clients-typescript-npm-location","text":"Type: string Default: nil Specifies the path to the NPM exec used for Automatic Type Acquisition.","title":"lsp-clients-typescript-npm-location"},{"location":"page/lsp-typescript/#lsp-clients-typescript-plugins","text":"Type: (restricted-sexp :tag Vector :match-alternatives (lambda (xs) (and (vectorp xs) (seq-every-p (-lambda ((&plist :name :location)) (and name location)) xs)))) Default: [] The list of plugins to load. It should be a vector of plist with keys :location and :name where :name is the name of the package and :location is the directory containing the package. Example: (vector (list :name \"@vsintellicode/typescript-intellicode-plugin\" :location \" .vscode/extensions/visualstudioexptteam. vscodeintellicode-1.1.9/\"))","title":"lsp-clients-typescript-plugins"},{"location":"page/lsp-typescript/#lsp-clients-typescript-prefer-use-project-ts-server","text":"Type: boolean Default: nil When set, prefers using the tsserver.js from your project. This can allow loading plugins configured in your tsconfig.json.","title":"lsp-clients-typescript-prefer-use-project-ts-server"},{"location":"page/lsp-typescript/#lsp-clients-typescript-preferences","text":"Type: plist Default: nil Preferences passed to the Typescript (tsserver) process. See https://github.com/typescript-language-server/typescript-language-server#initializationoptions for the list of preferences available in the latest version of TypeScript.","title":"lsp-clients-typescript-preferences"},{"location":"page/lsp-typescript/#lsp-clients-typescript-server-args","text":"Type: (repeat string) Default: (--stdio) Extra arguments for the typescript-language-server language server.","title":"lsp-clients-typescript-server-args"},{"location":"page/lsp-typescript/#lsp-clients-typescript-tls-path","text":"Type: string Default: typescript-language-server Path to the typescript-language-server binary.","title":"lsp-clients-typescript-tls-path"},{"location":"page/lsp-typescript/#lsp-clients-typescript-tsserver","text":"Type: plist Default: nil Options related to the tsserver process. See below for more info. See https://github.com/typescript-language-server/typescript-language-server#initializationoptions for the list of tsserver available in the latest version of TypeScript.","title":"lsp-clients-typescript-tsserver"},{"location":"page/lsp-typescript/#lsp-javascript-auto-closing-tags","text":"Type: boolean Default: t Enable/disable automatic closing of JSX tags. Requires using TypeScript 3.0 or newer in the workspace.","title":"lsp-javascript-auto-closing-tags"},{"location":"page/lsp-typescript/#lsp-javascript-completions-complete-function-calls","text":"Type: boolean Default: t Complete function calls.","title":"lsp-javascript-completions-complete-function-calls"},{"location":"page/lsp-typescript/#lsp-javascript-display-enum-member-value-hints","text":"Type: boolean Default: nil Show inlay hints for enum member values.","title":"lsp-javascript-display-enum-member-value-hints"},{"location":"page/lsp-typescript/#lsp-javascript-display-parameter-name-hints","text":"Type: (choice (const :tag none none) (const :tag literals literals) (const :tag all all)) Default: none Level of hinting for parameter types.","title":"lsp-javascript-display-parameter-name-hints"},{"location":"page/lsp-typescript/#lsp-javascript-display-parameter-name-hints-when-argument-matches-name","text":"Type: boolean Default: nil Show inlay hints for function parameters even when argument matches name (e.g. data variable passed as data parameter).","title":"lsp-javascript-display-parameter-name-hints-when-argument-matches-name"},{"location":"page/lsp-typescript/#lsp-javascript-display-parameter-type-hints","text":"Type: boolean Default: nil Show inlay hints for function parameters.","title":"lsp-javascript-display-parameter-type-hints"},{"location":"page/lsp-typescript/#lsp-javascript-display-property-declaration-type-hints","text":"Type: boolean Default: nil Show inlay hints for property declaration types.","title":"lsp-javascript-display-property-declaration-type-hints"},{"location":"page/lsp-typescript/#lsp-javascript-display-return-type-hints","text":"Type: boolean Default: nil Show inlay hints for function return types.","title":"lsp-javascript-display-return-type-hints"},{"location":"page/lsp-typescript/#lsp-javascript-display-variable-type-hints","text":"Type: boolean Default: nil Show inlay hints for variable types.","title":"lsp-javascript-display-variable-type-hints"},{"location":"page/lsp-typescript/#lsp-javascript-format-enable","text":"Type: boolean Default: t Enable/disable default JavaScript formatter.","title":"lsp-javascript-format-enable"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-comma-delimiter","text":"Type: boolean Default: t Defines space handling after a comma delimiter.","title":"lsp-javascript-format-insert-space-after-comma-delimiter"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-constructor","text":"Type: boolean Default: nil Defines space handling after the constructor keyword. Requires using TypeScript 2.3.0 or newer in the workspace.","title":"lsp-javascript-format-insert-space-after-constructor"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-function-keyword-for-anonymous-functions","text":"Type: boolean Default: t Defines space handling after function keyword for anonymous functions.","title":"lsp-javascript-format-insert-space-after-function-keyword-for-anonymous-functions"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-keywords-in-control-flow-statements","text":"Type: boolean Default: t Defines space handling after keywords in a control flow statement.","title":"lsp-javascript-format-insert-space-after-keywords-in-control-flow-statements"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-opening-and-before-closing-empty-braces","text":"Type: boolean Default: nil Defines space handling after opening/before closing empty braces.","title":"lsp-javascript-format-insert-space-after-opening-and-before-closing-empty-braces"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-opening-and-before-closing-jsx-expression-braces","text":"Type: boolean Default: nil Defines space handling after opening/before closing JSX expression braces.","title":"lsp-javascript-format-insert-space-after-opening-and-before-closing-jsx-expression-braces"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-braces","text":"Type: boolean Default: t Defines space handling after opening and before closing non-empty braces. Requires using TypeScript 2.3.0 or newer in the workspace.","title":"lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-braces"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-brackets","text":"Type: boolean Default: nil Defines space handling after opening and before closing non-empty brackets.","title":"lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-brackets"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-parenthesis","text":"Type: boolean Default: nil Defines space handling after opening and before closing non-empty parenthesis.","title":"lsp-javascript-format-insert-space-after-opening-and-before-closing-nonempty-parenthesis"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-opening-and-before-closing-template-string-braces","text":"Type: boolean Default: nil Defines space handling after opening/before closing template string braces.","title":"lsp-javascript-format-insert-space-after-opening-and-before-closing-template-string-braces"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-after-semicolon-in-for-statements","text":"Type: boolean Default: t Defines space handling after a semicolon in a for statement.","title":"lsp-javascript-format-insert-space-after-semicolon-in-for-statements"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-before-and-after-binary-operators","text":"Type: boolean Default: t Defines space handling after a binary operator.","title":"lsp-javascript-format-insert-space-before-and-after-binary-operators"},{"location":"page/lsp-typescript/#lsp-javascript-format-insert-space-before-function-parenthesis","text":"Type: boolean Default: nil Defines space handling before function argument parentheses.","title":"lsp-javascript-format-insert-space-before-function-parenthesis"},{"location":"page/lsp-typescript/#lsp-javascript-format-place-open-brace-on-new-line-for-control-blocks","text":"Type: boolean Default: nil Defines whether an open brace is put onto a new line for control blocks or not.","title":"lsp-javascript-format-place-open-brace-on-new-line-for-control-blocks"},{"location":"page/lsp-typescript/#lsp-javascript-format-place-open-brace-on-new-line-for-functions","text":"Type: boolean Default: nil Defines whether an open brace is put onto a new line for functions or not.","title":"lsp-javascript-format-place-open-brace-on-new-line-for-functions"},{"location":"page/lsp-typescript/#lsp-javascript-implicit-project-config-check-js","text":"Type: boolean Default: nil Enable/disable semantic checking of JavaScript files. Existing jsconfig.json or tsconfig.json files override this setting. Requires using TypeScript 2.3.1 or newer in the workspace.","title":"lsp-javascript-implicit-project-config-check-js"},{"location":"page/lsp-typescript/#lsp-javascript-implicit-project-config-experimental-decorators","text":"Type: boolean Default: nil","title":"lsp-javascript-implicit-project-config-experimental-decorators"},{"location":"page/lsp-typescript/#lsp-javascript-preferences-import-module-specifier","text":"Type: (choice (const auto) (const relative) (const non-relative)) Default: auto Preferred path style for auto imports.","title":"lsp-javascript-preferences-import-module-specifier"},{"location":"page/lsp-typescript/#lsp-javascript-preferences-quote-style","text":"Type: (choice (const auto) (const single) (const double)) Default: auto","title":"lsp-javascript-preferences-quote-style"},{"location":"page/lsp-typescript/#lsp-javascript-preferences-rename-shorthand-properties","text":"Type: boolean Default: t Enable/disable introducing aliases for object shorthand properties during renames. Requires using TypeScript 3.4 or newer in the workspace.","title":"lsp-javascript-preferences-rename-shorthand-properties"},{"location":"page/lsp-typescript/#lsp-javascript-suggest-auto-imports","text":"Type: boolean Default: t Enable/disable auto import suggestions. Requires using TypeScript 2.6.1 or newer in the workspace.","title":"lsp-javascript-suggest-auto-imports"},{"location":"page/lsp-typescript/#lsp-javascript-suggest-complete-function-calls","text":"Type: boolean Default: nil Complete functions with their parameter signature.","title":"lsp-javascript-suggest-complete-function-calls"},{"location":"page/lsp-typescript/#lsp-javascript-suggest-complete-js-docs","text":"Type: boolean Default: t Enable/disable suggestion to complete JSDoc comments.","title":"lsp-javascript-suggest-complete-js-docs"},{"location":"page/lsp-typescript/#lsp-javascript-suggest-enabled","text":"Type: boolean Default: t Enabled/disable autocomplete suggestions.","title":"lsp-javascript-suggest-enabled"},{"location":"page/lsp-typescript/#lsp-javascript-suggest-names","text":"Type: boolean Default: t Enable/disable including unique names from the file in JavaScript suggestions.","title":"lsp-javascript-suggest-names"},{"location":"page/lsp-typescript/#lsp-javascript-suggest-paths","text":"Type: boolean Default: t Enable/disable suggestions for paths in import statements and require calls.","title":"lsp-javascript-suggest-paths"},{"location":"page/lsp-typescript/#lsp-javascript-suggestion-actions-enabled","text":"Type: boolean Default: t Enable/disable suggestion diagnostics for JavaScript files in the editor. Requires using TypeScript 2.8 or newer in the workspace.","title":"lsp-javascript-suggestion-actions-enabled"},{"location":"page/lsp-typescript/#lsp-javascript-update-imports-on-file-move-enabled","text":"Type: (choice (const prompt) (const always) (const never)) Default: prompt Prompt on each rename.","title":"lsp-javascript-update-imports-on-file-move-enabled"},{"location":"page/lsp-typescript/#lsp-javascript-validate-enable","text":"Type: boolean Default: t Enable/disable JavaScript validation.","title":"lsp-javascript-validate-enable"},{"location":"page/lsp-typescript/#lsp-typescript-auto-closing-tags","text":"Type: boolean Default: t Enable/disable automatic closing of JSX tags. Requires using TypeScript 3.0 or newer in the workspace.","title":"lsp-typescript-auto-closing-tags"},{"location":"page/lsp-typescript/#lsp-typescript-format-enable","text":"Type: boolean Default: t Enable/disable default TypeScript formatter.","title":"lsp-typescript-format-enable"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-comma-delimiter","text":"Type: boolean Default: t Defines space handling after a comma delimiter.","title":"lsp-typescript-format-insert-space-after-comma-delimiter"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-constructor","text":"Type: boolean Default: nil Defines space handling after the constructor keyword. Requires using TypeScript 2.3.0 or newer in the workspace.","title":"lsp-typescript-format-insert-space-after-constructor"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-function-keyword-for-anonymous-functions","text":"Type: boolean Default: t Defines space handling after function keyword for anonymous functions.","title":"lsp-typescript-format-insert-space-after-function-keyword-for-anonymous-functions"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-keywords-in-control-flow-statements","text":"Type: boolean Default: t Defines space handling after keywords in a control flow statement.","title":"lsp-typescript-format-insert-space-after-keywords-in-control-flow-statements"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-opening-and-before-closing-empty-braces","text":"Type: boolean Default: nil Defines space handling after opening/before closing empty braces.","title":"lsp-typescript-format-insert-space-after-opening-and-before-closing-empty-braces"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-opening-and-before-closing-jsx-expression-braces","text":"Type: boolean Default: nil Defines space handling after opening/before closing JSX expression braces.","title":"lsp-typescript-format-insert-space-after-opening-and-before-closing-jsx-expression-braces"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-braces","text":"Type: boolean Default: t Defines space handling after opening and before closing non-empty braces. Requires using TypeScript 2.3.0 or newer in the workspace.","title":"lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-braces"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-brackets","text":"Type: boolean Default: nil Defines space handling after opening and before closing non-empty brackets.","title":"lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-brackets"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-parenthesis","text":"Type: boolean Default: nil Defines space handling after opening/before closing non-empty parenthesis.","title":"lsp-typescript-format-insert-space-after-opening-and-before-closing-nonempty-parenthesis"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-opening-and-before-closing-template-string-braces","text":"Type: boolean Default: nil Defines space handling after opening/before closing template string braces.","title":"lsp-typescript-format-insert-space-after-opening-and-before-closing-template-string-braces"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-semicolon-in-for-statements","text":"Type: boolean Default: t Defines space handling after a semicolon in a for statement.","title":"lsp-typescript-format-insert-space-after-semicolon-in-for-statements"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-after-type-assertion","text":"Type: boolean Default: nil Defines space handling after type assertions in TypeScript. Requires using TypeScript 2.4 or newer in the workspace.","title":"lsp-typescript-format-insert-space-after-type-assertion"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-before-and-after-binary-operators","text":"Type: boolean Default: t Defines space handling after a binary operator.","title":"lsp-typescript-format-insert-space-before-and-after-binary-operators"},{"location":"page/lsp-typescript/#lsp-typescript-format-insert-space-before-function-parenthesis","text":"Type: boolean Default: nil Defines space handling before function argument parentheses.","title":"lsp-typescript-format-insert-space-before-function-parenthesis"},{"location":"page/lsp-typescript/#lsp-typescript-format-place-open-brace-on-new-line-for-control-blocks","text":"Type: boolean Default: nil Defines whether an open brace is put onto a newline for control blocks.","title":"lsp-typescript-format-place-open-brace-on-new-line-for-control-blocks"},{"location":"page/lsp-typescript/#lsp-typescript-format-place-open-brace-on-new-line-for-functions","text":"Type: boolean Default: nil Defines whether an open brace is put onto a new line for functions or not.","title":"lsp-typescript-format-place-open-brace-on-new-line-for-functions"},{"location":"page/lsp-typescript/#lsp-typescript-locale","text":"Type: (choice (const de) (const es) (const en) (const fr) (const it) (const ja) (const ko) (const ru) (const zh-CN) (const zh-TW) nil) Default: nil","title":"lsp-typescript-locale"},{"location":"page/lsp-typescript/#lsp-typescript-preferences-import-module-specifier","text":"Type: (choice (const auto) (const relative) (const non-relative)) Default: auto Infer the shortest path type.","title":"lsp-typescript-preferences-import-module-specifier"},{"location":"page/lsp-typescript/#lsp-typescript-preferences-quote-style","text":"Type: (choice (const auto) (const single) (const double)) Default: auto","title":"lsp-typescript-preferences-quote-style"},{"location":"page/lsp-typescript/#lsp-typescript-preferences-rename-shorthand-properties","text":"Type: boolean Default: t Enable/disable introducing aliases for object shorthand properties during renames. Requires using TypeScript 3.4 or newer in the workspace.","title":"lsp-typescript-preferences-rename-shorthand-properties"},{"location":"page/lsp-typescript/#lsp-typescript-report-style-checks-as-warnings","text":"Type: boolean Default: t Report style checks as warnings.","title":"lsp-typescript-report-style-checks-as-warnings"},{"location":"page/lsp-typescript/#lsp-typescript-suggest-auto-imports","text":"Type: boolean Default: t Enable/disable auto import suggestions. Requires using TypeScript 2.6.1 or newer in the workspace.","title":"lsp-typescript-suggest-auto-imports"},{"location":"page/lsp-typescript/#lsp-typescript-suggest-complete-function-calls","text":"Type: boolean Default: nil Complete functions with their parameter signature.","title":"lsp-typescript-suggest-complete-function-calls"},{"location":"page/lsp-typescript/#lsp-typescript-suggest-complete-js-docs","text":"Type: boolean Default: t Enable/disable suggestion to complete JSDoc comments.","title":"lsp-typescript-suggest-complete-js-docs"},{"location":"page/lsp-typescript/#lsp-typescript-suggest-enabled","text":"Type: boolean Default: t Enabled/disable autocomplete suggestions.","title":"lsp-typescript-suggest-enabled"},{"location":"page/lsp-typescript/#lsp-typescript-suggest-paths","text":"Type: boolean Default: t Enable/disable suggestions for paths in import statements and require calls.","title":"lsp-typescript-suggest-paths"},{"location":"page/lsp-typescript/#lsp-typescript-suggestion-actions-enabled","text":"Type: boolean Default: t Enable/disable suggestion diagnostics for TypeScript files in the editor. Requires using TypeScript 2.8 or newer in the workspace.","title":"lsp-typescript-suggestion-actions-enabled"},{"location":"page/lsp-typescript/#lsp-typescript-surveys-enabled","text":"Type: boolean Default: t Enabled/disable occasional surveys that help us improve VS Code`s JavaScript and TypeScript support.","title":"lsp-typescript-surveys-enabled"},{"location":"page/lsp-typescript/#lsp-typescript-tsc-auto-detect","text":"Type: (choice (const on) (const off) (const build) (const watch)) Default: on Controls auto detection of tsc tasks.","title":"lsp-typescript-tsc-auto-detect"},{"location":"page/lsp-typescript/#lsp-typescript-tsserver-plugin-paths","text":"Type: (repeat string) Default: nil Additional paths to discover Typescript Language Service plugins. Requires using TypeScript 2.3.0 or newer in the workspace.","title":"lsp-typescript-tsserver-plugin-paths"},{"location":"page/lsp-typescript/#lsp-typescript-tsserver-trace","text":"Type: (choice (const off) (const messages) (const verbose)) Default: off Enables tracing of messages sent to the TS server. This trace can be used to diagnose TS Server issues. The trace may contain file paths, source code, and other potentially sensitive information from your project.","title":"lsp-typescript-tsserver-trace"},{"location":"page/lsp-typescript/#lsp-typescript-update-imports-on-file-move-enabled","text":"Type: (choice (const prompt) (const always) (const never)) Default: prompt Enable/disable automatic updating of import paths when you rename or move a file in VS Code. Requires using TypeScript 2.9 or newer in the workspace.","title":"lsp-typescript-update-imports-on-file-move-enabled"},{"location":"page/lsp-typescript/#lsp-typescript-validate-enable","text":"Type: boolean Default: t Enable/disable TypeScript validation.","title":"lsp-typescript-validate-enable"},{"location":"page/lsp-v/","text":"V # Server # For more information about the LSP server, check vls . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-v-vls-executable # Type: string Default: vls The vls executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path .","title":"V"},{"location":"page/lsp-v/#v","text":"","title":"V"},{"location":"page/lsp-v/#server","text":"For more information about the LSP server, check vls .","title":"Server"},{"location":"page/lsp-v/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-v/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-v/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-v/#lsp-v-vls-executable","text":"Type: string Default: vls The vls executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path .","title":"lsp-v-vls-executable"},{"location":"page/lsp-vala/","text":"Vala # Server # For more information about the LSP server, check vala-language-server . Installation # meson build && ninja -C build install Debugger: Not available # Available configurations # lsp-clients-vala-ls-executable # Type: file Default: vala-language-server Path to the vala-language-server binary.","title":"Vala"},{"location":"page/lsp-vala/#vala","text":"","title":"Vala"},{"location":"page/lsp-vala/#server","text":"For more information about the LSP server, check vala-language-server .","title":"Server"},{"location":"page/lsp-vala/#installation","text":"meson build && ninja -C build install","title":"Installation"},{"location":"page/lsp-vala/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-vala/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-vala/#lsp-clients-vala-ls-executable","text":"Type: file Default: vala-language-server Path to the vala-language-server binary.","title":"lsp-clients-vala-ls-executable"},{"location":"page/lsp-verilog/","text":"Verilog/SystemVerilog # Server # For more information about the LSP server, check hdl_checker . Installation # pip install hdl-checker --upgrade Debugger: Not available # Available configurations # lsp-clients-verilog-executable # Type: file Default: (hdl_checker --lsp) Command to start the hdl_checker language server. lsp-clients-verilog-executable # Type: file Default: (hdl_checker --lsp) Command to start the hdl_checker language server.","title":"Verilog/SystemVerilog (hdl-checker)"},{"location":"page/lsp-verilog/#verilogsystemverilog","text":"","title":"Verilog/SystemVerilog"},{"location":"page/lsp-verilog/#server","text":"For more information about the LSP server, check hdl_checker .","title":"Server"},{"location":"page/lsp-verilog/#installation","text":"pip install hdl-checker --upgrade","title":"Installation"},{"location":"page/lsp-verilog/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-verilog/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-verilog/#lsp-clients-verilog-executable","text":"Type: file Default: (hdl_checker --lsp) Command to start the hdl_checker language server.","title":"lsp-clients-verilog-executable"},{"location":"page/lsp-verilog/#lsp-clients-verilog-executable_1","text":"Type: file Default: (hdl_checker --lsp) Command to start the hdl_checker language server.","title":"lsp-clients-verilog-executable"},{"location":"page/lsp-vetur/","text":"Vue 2 # Server # For more information about the LSP server, check vue-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET vls RET . npm install -g vls Debugger: Yes (Firefox/Chrome) # Available configurations # lsp-javascript-references-code-lens-enabled # Type: boolean Default: nil Enable/disable references CodeLens in JavaScript files. lsp-typescript-check-npm-is-installed # Type: boolean Default: t Check if NPM is installed for Automatic Type Acquisition. lsp-typescript-disable-automatic-type-acquisition # Type: boolean Default: nil Disables automatic type acquisition. Automatic type acquisition fetches @types packages from npm to improve IntelliSense for external libraries. lsp-typescript-implementations-code-lens-enabled # Type: boolean Default: nil Enable/disable implementations CodeLens. This CodeLens shows the implementers of an interface. lsp-typescript-npm # Type: (repeat string) Default: nil Specifies the path to the NPM exec used for Automatic Type Acquisition. Requires using TypeScript 2.3.4 or newer in the workspace. lsp-typescript-references-code-lens-enabled # Type: boolean Default: nil Enable/disable references CodeLens in TypeScript files. lsp-typescript-tsdk # Type: (repeat string) Default: nil Specifies the folder path containing tsserver and lib*.d.ts files to use. lsp-typescript-tsserver-log # Type: (choice (const off) (const terse) (const normal) (const verbose)) Default: off Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project. lsp-vetur-completion-auto-import # Type: boolean Default: t Include completion for module export and auto import them lsp-vetur-completion-scaffold-snippet-sources # Type: alist Default: ((workspace . (W)) (user . (U)) (vetur . (V))) Where Vetur source Scaffold Snippets from and how to indicate them. - workspace: /.vscode/vetur/snippets. - user: /User/snippets/vetur. - vetur: Bundled in Vetur. The source value can be a string \"(User)\" or an emoji \"\u270c\". Set a source to \"\" to disable it. lsp-vetur-completion-tag-casing # Type: (choice (const initial) (const kebab)) Default: kebab Casing conversion for tag completion lsp-vetur-dev-log-level # Type: (choice (const INFO) (const DEBUG)) Default: INFO The vls log level for development lsp-vetur-dev-vls-path # Type: string Default: `` The vls path for development lsp-vetur-dev-vls-port # Type: integer Default: -1 The vls port for development lsp-vetur-emmet # Type: (choice (const never) (const inMarkupAndStylesheetFilesOnly) (const always)) Default: never Controls the Emmet suggestions that show up in the suggestion/completion list. lsp-vetur-experimental-template-interpolation-service # Type: boolean Default: nil Whether to have template interpolation service lsp-vetur-format-default-formatter-css # Type: (choice (const none) (const prettier)) Default: prettier Default formatter for","title":"Vue 2"},{"location":"page/lsp-vetur/#vue-2","text":"","title":"Vue 2"},{"location":"page/lsp-vetur/#server","text":"For more information about the LSP server, check vue-language-server .","title":"Server"},{"location":"page/lsp-vetur/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET vls RET . npm install -g vls","title":"Installation"},{"location":"page/lsp-vetur/#debugger-yes-firefoxchrome","text":"","title":"Debugger: Yes (Firefox/Chrome)"},{"location":"page/lsp-vetur/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-vetur/#lsp-javascript-references-code-lens-enabled","text":"Type: boolean Default: nil Enable/disable references CodeLens in JavaScript files.","title":"lsp-javascript-references-code-lens-enabled"},{"location":"page/lsp-vetur/#lsp-typescript-check-npm-is-installed","text":"Type: boolean Default: t Check if NPM is installed for Automatic Type Acquisition.","title":"lsp-typescript-check-npm-is-installed"},{"location":"page/lsp-vetur/#lsp-typescript-disable-automatic-type-acquisition","text":"Type: boolean Default: nil Disables automatic type acquisition. Automatic type acquisition fetches @types packages from npm to improve IntelliSense for external libraries.","title":"lsp-typescript-disable-automatic-type-acquisition"},{"location":"page/lsp-vetur/#lsp-typescript-implementations-code-lens-enabled","text":"Type: boolean Default: nil Enable/disable implementations CodeLens. This CodeLens shows the implementers of an interface.","title":"lsp-typescript-implementations-code-lens-enabled"},{"location":"page/lsp-vetur/#lsp-typescript-npm","text":"Type: (repeat string) Default: nil Specifies the path to the NPM exec used for Automatic Type Acquisition. Requires using TypeScript 2.3.4 or newer in the workspace.","title":"lsp-typescript-npm"},{"location":"page/lsp-vetur/#lsp-typescript-references-code-lens-enabled","text":"Type: boolean Default: nil Enable/disable references CodeLens in TypeScript files.","title":"lsp-typescript-references-code-lens-enabled"},{"location":"page/lsp-vetur/#lsp-typescript-tsdk","text":"Type: (repeat string) Default: nil Specifies the folder path containing tsserver and lib*.d.ts files to use.","title":"lsp-typescript-tsdk"},{"location":"page/lsp-vetur/#lsp-typescript-tsserver-log","text":"Type: (choice (const off) (const terse) (const normal) (const verbose)) Default: off Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","title":"lsp-typescript-tsserver-log"},{"location":"page/lsp-vetur/#lsp-vetur-completion-auto-import","text":"Type: boolean Default: t Include completion for module export and auto import them","title":"lsp-vetur-completion-auto-import"},{"location":"page/lsp-vetur/#lsp-vetur-completion-scaffold-snippet-sources","text":"Type: alist Default: ((workspace . (W)) (user . (U)) (vetur . (V))) Where Vetur source Scaffold Snippets from and how to indicate them. - workspace: /.vscode/vetur/snippets. - user: /User/snippets/vetur. - vetur: Bundled in Vetur. The source value can be a string \"(User)\" or an emoji \"\u270c\". Set a source to \"\" to disable it.","title":"lsp-vetur-completion-scaffold-snippet-sources"},{"location":"page/lsp-vetur/#lsp-vetur-completion-tag-casing","text":"Type: (choice (const initial) (const kebab)) Default: kebab Casing conversion for tag completion","title":"lsp-vetur-completion-tag-casing"},{"location":"page/lsp-vetur/#lsp-vetur-dev-log-level","text":"Type: (choice (const INFO) (const DEBUG)) Default: INFO The vls log level for development","title":"lsp-vetur-dev-log-level"},{"location":"page/lsp-vetur/#lsp-vetur-dev-vls-path","text":"Type: string Default: `` The vls path for development","title":"lsp-vetur-dev-vls-path"},{"location":"page/lsp-vetur/#lsp-vetur-dev-vls-port","text":"Type: integer Default: -1 The vls port for development","title":"lsp-vetur-dev-vls-port"},{"location":"page/lsp-vetur/#lsp-vetur-emmet","text":"Type: (choice (const never) (const inMarkupAndStylesheetFilesOnly) (const always)) Default: never Controls the Emmet suggestions that show up in the suggestion/completion list.","title":"lsp-vetur-emmet"},{"location":"page/lsp-vetur/#lsp-vetur-experimental-template-interpolation-service","text":"Type: boolean Default: nil Whether to have template interpolation service","title":"lsp-vetur-experimental-template-interpolation-service"},{"location":"page/lsp-vetur/#lsp-vetur-format-default-formatter-css","text":"Type: (choice (const none) (const prettier)) Default: prettier Default formatter for","title":"lsp-vetur-format-default-formatter-css"},{"location":"page/lsp-vhdl/","text":"VHDL # Server # For more information about the LSP server, check VHDL Tool . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-vhdl-server # Type: (choice (const :tag VHDL-tool vhdl-tool) (const :tag HDL Checker hdl-checker) (const :tag VHDL LS vhdl-ls) (const :tag GHDL LS ghdl-ls)) Default: vhdl-tool Select which server to use: VHDL-tool: A syntax checking, type checking and linting tool (http://vhdltool.com). HDL Checker: A wrapper for third party tools such as GHDL, ModelSim, Vivado Simulator (https://github.com/suoto/hdl_checker). VHDL LS: A complete VHDL language server protocol implementation with diagnostics, navigate to symbol, find all references etc (https://github.com/VHDL-LS/rust_hdl). GHDL LS: A LSP server for VHDL based on GHDL (https://github.com/ghdl/ghdl-language-server). lsp-vhdl-server-path # Type: file Default: nil Path to binary server file.","title":"VHDL"},{"location":"page/lsp-vhdl/#vhdl","text":"","title":"VHDL"},{"location":"page/lsp-vhdl/#server","text":"For more information about the LSP server, check VHDL Tool .","title":"Server"},{"location":"page/lsp-vhdl/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-vhdl/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-vhdl/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-vhdl/#lsp-vhdl-server","text":"Type: (choice (const :tag VHDL-tool vhdl-tool) (const :tag HDL Checker hdl-checker) (const :tag VHDL LS vhdl-ls) (const :tag GHDL LS ghdl-ls)) Default: vhdl-tool Select which server to use: VHDL-tool: A syntax checking, type checking and linting tool (http://vhdltool.com). HDL Checker: A wrapper for third party tools such as GHDL, ModelSim, Vivado Simulator (https://github.com/suoto/hdl_checker). VHDL LS: A complete VHDL language server protocol implementation with diagnostics, navigate to symbol, find all references etc (https://github.com/VHDL-LS/rust_hdl). GHDL LS: A LSP server for VHDL based on GHDL (https://github.com/ghdl/ghdl-language-server).","title":"lsp-vhdl-server"},{"location":"page/lsp-vhdl/#lsp-vhdl-server-path","text":"Type: file Default: nil Path to binary server file.","title":"lsp-vhdl-server-path"},{"location":"page/lsp-vimscript/","text":"Vimscript # Server # For more information about the LSP server, check vim-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET vimls RET . npm install -g vim-language-server Debugger: n/a # Available configurations #","title":"Vimscript"},{"location":"page/lsp-vimscript/#vimscript","text":"","title":"Vimscript"},{"location":"page/lsp-vimscript/#server","text":"For more information about the LSP server, check vim-language-server .","title":"Server"},{"location":"page/lsp-vimscript/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET vimls RET . npm install -g vim-language-server","title":"Installation"},{"location":"page/lsp-vimscript/#debugger-na","text":"","title":"Debugger: n/a"},{"location":"page/lsp-vimscript/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-volar/","text":"Vue 3 # Server # For more information about the LSP server, check volar-language-server . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET vue-semantic-server RET . npm install -g @volar/vue-language-server Debugger: Not available # Available configurations # lsp-volar-activate-file # Type: string Default: .volarrc A file with a custom name placed in WORKSPACE-ROOT is used to force enable volar when there is no package.json in the WORKSPACE-ROOT. lsp-volar-take-over-mode # Type: boolean Default: t Enable Take Over Mode.","title":"Vue 3"},{"location":"page/lsp-volar/#vue-3","text":"","title":"Vue 3"},{"location":"page/lsp-volar/#server","text":"For more information about the LSP server, check volar-language-server .","title":"Server"},{"location":"page/lsp-volar/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET vue-semantic-server RET . npm install -g @volar/vue-language-server","title":"Installation"},{"location":"page/lsp-volar/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-volar/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-volar/#lsp-volar-activate-file","text":"Type: string Default: .volarrc A file with a custom name placed in WORKSPACE-ROOT is used to force enable volar when there is no package.json in the WORKSPACE-ROOT.","title":"lsp-volar-activate-file"},{"location":"page/lsp-volar/#lsp-volar-take-over-mode","text":"Type: boolean Default: t Enable Take Over Mode.","title":"lsp-volar-take-over-mode"},{"location":"page/lsp-xml/","text":"XML # Server # For more information about the LSP server, check lsp4xml . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET xmlls RET . Automatic by lsp-mode Debugger: Not available # Available configurations # lsp-xml-catalogs # Type: (repeat string) Default: nil Array of XML Catalogs lsp-xml-completion-auto-close-tags # Type: boolean Default: t Enable/disable autoclosing of XML tags. IMPORTANT: Turn off editor.autoClosingTags for this to work lsp-xml-file-associations # Type: (repeat string) Default: nil Allows XML schemas to be associated to file name patterns. Example: [{ \"systemId\":\"path/to/file.xsd\",\"pattern\": \"file1.xml\" },{ \"systemId\": \"http://www.w3.org/2001/XMLSchema.xsd\",\"pattern\": \"* / .xsd\" }] lsp-xml-format-closing-bracket-new-line # Type: boolean Default: nil Enable/disable moving the closing bracket. This only affects tags with two or more (split) attributes. lsp-xml-format-comments # Type: boolean Default: t Enable/disable comment formatting. lsp-xml-format-enabled # Type: boolean Default: t Enable/disable ability to format document lsp-xml-format-enforce-quote-style # Type: (choice (const ignore) (const preferred)) Default: ignore The way in which quote style should be enforced. lsp-xml-format-experimental # Type: boolean Default: nil Enable/disable experimental formatter. lsp-xml-format-grammar-aware-formatting # Type: boolean Default: t Enable/disable grammar aware formatting. This only affects the experimental formatter. lsp-xml-format-join-cdata-lines # Type: boolean Default: nil Join lines in a CDATA tag`s content lsp-xml-format-join-comment-lines # Type: boolean Default: nil Join comment content on format lsp-xml-format-join-content-lines # Type: boolean Default: nil Normalize the whitespace of content inside an element. Newlines and excess whitespace are removed. lsp-xml-format-max-line-width # Type: integer Default: 80 Max line width. This only applies to experimental formatter. lsp-xml-format-preserve-attribute-line-breaks # Type: boolean Default: t Enable/disable preserving line breaks in attributes. lsp-xml-format-preserve-empty-content # Type: boolean Default: nil Preserve empty content/whitespace in a tag. lsp-xml-format-preserve-space # Type: lsp-string-vector Default: [xsl:text xsl:comment xsl:processing-instruction literallayout programlisting screen synopsis pre xd:pre] List of elements which must preserve space. This option only affects the experimental formatter. lsp-xml-format-preserved-newlines # Type: integer Default: 2 The number of empty newlines to be preserved. lsp-xml-format-space-before-empty-close-tag # Type: boolean Default: t Insert space before end of self closing tag. Example: -> lsp-xml-format-split-attributes # Type: boolean Default: nil Split multiple attributes each onto a new line lsp-xml-format-split-attributes-indent-size # Type: integer Default: 2 The indentation used for split attributes. lsp-xml-format-xsi-schema-location-split # Type: (choice (const onElement) (const onPair) (const none)) Default: onPair XSI schema location split settings. lsp-xml-jar-download-url # Type: string Default: https://repo.eclipse.org/content/repositories/lemminx-releases/org/eclipse/lemminx/org.eclipse.lemminx/0.21.0/org.eclipse.lemminx-0.21.0-uber.jar Automatic download url for lsp-xml. lsp-xml-jar-file # Type: file Default: ~/.emacs.d/.cache/lsp/xmlls/org.eclipse.lemminx-0.21.0-uber.jar Xml server jar command. lsp-xml-logs-client # Type: boolean Default: t Should the server log to client output lsp-xml-preferences-quote-style # Type: (choice (const double) (const single)) Default: double The preferred quote style for attribute values. lsp-xml-server-command # Type: (repeat string) Default: (java -jar /home/runner/.emacs.d/.cache/lsp/xmlls/org.eclipse.lemminx-0.21.0-uber.jar) Xml server command. lsp-xml-server-vmargs # Type: lsp-string-vector Default: [-noverify -Xmx64M -XX:+UseG1GC -XX:+UseStringDeduplication] Specifies extra VM arguments used to launch the XML Language Server. Eg. use -noverify -Xmx1G -XX:+UseG1GC -XX:+UseStringDeduplication to bypass class verification, increase the heap size to 1GB and enable String deduplication with the G1 Garbage collector lsp-xml-server-work-dir # Type: string Default: /home/runner/.lsp4xml Set a custom folder path for cached XML Schemas. An absolute path is expected, although the ~ prefix (for the user home directory) is supported. lsp-xml-trace-server # Type: (choice (const off) (const messages) (const verbose)) Default: off Traces the communication between VS Code and the XML language server. lsp-xml-validation-enabled # Type: boolean Default: t Enable/disable all validation. lsp-xml-validation-no-grammar # Type: (choice (:tag ignore hint info warning error)) Default: hint The message severity when a document has no associated grammar. lsp-xml-validation-resolve-external-entities # Type: boolean Default: nil Enable/disable resolution (downloading) of external entities from the internet. lsp-xml-validation-schema # Type: alist Default: ((enabled . always)) The XML schema settings. The value for enabled can be always, never or onValidSchema.","title":"XML"},{"location":"page/lsp-xml/#xml","text":"","title":"XML"},{"location":"page/lsp-xml/#server","text":"For more information about the LSP server, check lsp4xml .","title":"Server"},{"location":"page/lsp-xml/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET xmlls RET . Automatic by lsp-mode","title":"Installation"},{"location":"page/lsp-xml/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-xml/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-xml/#lsp-xml-catalogs","text":"Type: (repeat string) Default: nil Array of XML Catalogs","title":"lsp-xml-catalogs"},{"location":"page/lsp-xml/#lsp-xml-completion-auto-close-tags","text":"Type: boolean Default: t Enable/disable autoclosing of XML tags. IMPORTANT: Turn off editor.autoClosingTags for this to work","title":"lsp-xml-completion-auto-close-tags"},{"location":"page/lsp-xml/#lsp-xml-file-associations","text":"Type: (repeat string) Default: nil Allows XML schemas to be associated to file name patterns. Example: [{ \"systemId\":\"path/to/file.xsd\",\"pattern\": \"file1.xml\" },{ \"systemId\": \"http://www.w3.org/2001/XMLSchema.xsd\",\"pattern\": \"* / .xsd\" }]","title":"lsp-xml-file-associations"},{"location":"page/lsp-xml/#lsp-xml-format-closing-bracket-new-line","text":"Type: boolean Default: nil Enable/disable moving the closing bracket. This only affects tags with two or more (split) attributes.","title":"lsp-xml-format-closing-bracket-new-line"},{"location":"page/lsp-xml/#lsp-xml-format-comments","text":"Type: boolean Default: t Enable/disable comment formatting.","title":"lsp-xml-format-comments"},{"location":"page/lsp-xml/#lsp-xml-format-enabled","text":"Type: boolean Default: t Enable/disable ability to format document","title":"lsp-xml-format-enabled"},{"location":"page/lsp-xml/#lsp-xml-format-enforce-quote-style","text":"Type: (choice (const ignore) (const preferred)) Default: ignore The way in which quote style should be enforced.","title":"lsp-xml-format-enforce-quote-style"},{"location":"page/lsp-xml/#lsp-xml-format-experimental","text":"Type: boolean Default: nil Enable/disable experimental formatter.","title":"lsp-xml-format-experimental"},{"location":"page/lsp-xml/#lsp-xml-format-grammar-aware-formatting","text":"Type: boolean Default: t Enable/disable grammar aware formatting. This only affects the experimental formatter.","title":"lsp-xml-format-grammar-aware-formatting"},{"location":"page/lsp-xml/#lsp-xml-format-join-cdata-lines","text":"Type: boolean Default: nil Join lines in a CDATA tag`s content","title":"lsp-xml-format-join-cdata-lines"},{"location":"page/lsp-xml/#lsp-xml-format-join-comment-lines","text":"Type: boolean Default: nil Join comment content on format","title":"lsp-xml-format-join-comment-lines"},{"location":"page/lsp-xml/#lsp-xml-format-join-content-lines","text":"Type: boolean Default: nil Normalize the whitespace of content inside an element. Newlines and excess whitespace are removed.","title":"lsp-xml-format-join-content-lines"},{"location":"page/lsp-xml/#lsp-xml-format-max-line-width","text":"Type: integer Default: 80 Max line width. This only applies to experimental formatter.","title":"lsp-xml-format-max-line-width"},{"location":"page/lsp-xml/#lsp-xml-format-preserve-attribute-line-breaks","text":"Type: boolean Default: t Enable/disable preserving line breaks in attributes.","title":"lsp-xml-format-preserve-attribute-line-breaks"},{"location":"page/lsp-xml/#lsp-xml-format-preserve-empty-content","text":"Type: boolean Default: nil Preserve empty content/whitespace in a tag.","title":"lsp-xml-format-preserve-empty-content"},{"location":"page/lsp-xml/#lsp-xml-format-preserve-space","text":"Type: lsp-string-vector Default: [xsl:text xsl:comment xsl:processing-instruction literallayout programlisting screen synopsis pre xd:pre] List of elements which must preserve space. This option only affects the experimental formatter.","title":"lsp-xml-format-preserve-space"},{"location":"page/lsp-xml/#lsp-xml-format-preserved-newlines","text":"Type: integer Default: 2 The number of empty newlines to be preserved.","title":"lsp-xml-format-preserved-newlines"},{"location":"page/lsp-xml/#lsp-xml-format-space-before-empty-close-tag","text":"Type: boolean Default: t Insert space before end of self closing tag. Example: ->","title":"lsp-xml-format-space-before-empty-close-tag"},{"location":"page/lsp-xml/#lsp-xml-format-split-attributes","text":"Type: boolean Default: nil Split multiple attributes each onto a new line","title":"lsp-xml-format-split-attributes"},{"location":"page/lsp-xml/#lsp-xml-format-split-attributes-indent-size","text":"Type: integer Default: 2 The indentation used for split attributes.","title":"lsp-xml-format-split-attributes-indent-size"},{"location":"page/lsp-xml/#lsp-xml-format-xsi-schema-location-split","text":"Type: (choice (const onElement) (const onPair) (const none)) Default: onPair XSI schema location split settings.","title":"lsp-xml-format-xsi-schema-location-split"},{"location":"page/lsp-xml/#lsp-xml-jar-download-url","text":"Type: string Default: https://repo.eclipse.org/content/repositories/lemminx-releases/org/eclipse/lemminx/org.eclipse.lemminx/0.21.0/org.eclipse.lemminx-0.21.0-uber.jar Automatic download url for lsp-xml.","title":"lsp-xml-jar-download-url"},{"location":"page/lsp-xml/#lsp-xml-jar-file","text":"Type: file Default: ~/.emacs.d/.cache/lsp/xmlls/org.eclipse.lemminx-0.21.0-uber.jar Xml server jar command.","title":"lsp-xml-jar-file"},{"location":"page/lsp-xml/#lsp-xml-logs-client","text":"Type: boolean Default: t Should the server log to client output","title":"lsp-xml-logs-client"},{"location":"page/lsp-xml/#lsp-xml-preferences-quote-style","text":"Type: (choice (const double) (const single)) Default: double The preferred quote style for attribute values.","title":"lsp-xml-preferences-quote-style"},{"location":"page/lsp-xml/#lsp-xml-server-command","text":"Type: (repeat string) Default: (java -jar /home/runner/.emacs.d/.cache/lsp/xmlls/org.eclipse.lemminx-0.21.0-uber.jar) Xml server command.","title":"lsp-xml-server-command"},{"location":"page/lsp-xml/#lsp-xml-server-vmargs","text":"Type: lsp-string-vector Default: [-noverify -Xmx64M -XX:+UseG1GC -XX:+UseStringDeduplication] Specifies extra VM arguments used to launch the XML Language Server. Eg. use -noverify -Xmx1G -XX:+UseG1GC -XX:+UseStringDeduplication to bypass class verification, increase the heap size to 1GB and enable String deduplication with the G1 Garbage collector","title":"lsp-xml-server-vmargs"},{"location":"page/lsp-xml/#lsp-xml-server-work-dir","text":"Type: string Default: /home/runner/.lsp4xml Set a custom folder path for cached XML Schemas. An absolute path is expected, although the ~ prefix (for the user home directory) is supported.","title":"lsp-xml-server-work-dir"},{"location":"page/lsp-xml/#lsp-xml-trace-server","text":"Type: (choice (const off) (const messages) (const verbose)) Default: off Traces the communication between VS Code and the XML language server.","title":"lsp-xml-trace-server"},{"location":"page/lsp-xml/#lsp-xml-validation-enabled","text":"Type: boolean Default: t Enable/disable all validation.","title":"lsp-xml-validation-enabled"},{"location":"page/lsp-xml/#lsp-xml-validation-no-grammar","text":"Type: (choice (:tag ignore hint info warning error)) Default: hint The message severity when a document has no associated grammar.","title":"lsp-xml-validation-no-grammar"},{"location":"page/lsp-xml/#lsp-xml-validation-resolve-external-entities","text":"Type: boolean Default: nil Enable/disable resolution (downloading) of external entities from the internet.","title":"lsp-xml-validation-resolve-external-entities"},{"location":"page/lsp-xml/#lsp-xml-validation-schema","text":"Type: alist Default: ((enabled . always)) The XML schema settings. The value for enabled can be always, never or onValidSchema.","title":"lsp-xml-validation-schema"},{"location":"page/lsp-yaml/","text":"YAML # Server # For more information about the LSP server, check yaml . Installation # This Server supports automatic install. Install this language server with M-x lsp-install-server RET yamlls RET . npm install -g yaml-language-server Debugger: Not available # Available configurations # lsp-yaml-bracket-spacing # Type: boolean Default: t Print spaces between brackets in objects. lsp-yaml-completion # Type: boolean Default: t Enable/disable completion feature. lsp-yaml-custom-tags # Type: (lsp-repeatable-vector string) Default: nil Custom tags for the parser to use. lsp-yaml-format-enable # Type: boolean Default: t Enable/disable default YAML formatter. lsp-yaml-hover # Type: boolean Default: t Enable/disable hover feature. lsp-yaml-max-items-computed # Type: number Default: 5000 The maximum number of outline symbols and folding regions computed. Limited for performance reasons. lsp-yaml-print-width # Type: number Default: 80 Specify the line length that the printer will wrap on. lsp-yaml-prose-wrap # Type: (choice (const always) (const never) (const preserve)) Default: preserve Options for prose-wrap. Always: wrap prose if it exceeds the print width. Never: never wrap the prose. Preserve: wrap prose as-is. lsp-yaml-schema-store-enable # Type: boolean Default: t Enable/disable JSON Schema store. When set to true, available YAML schemas will be automatically pulled from the store. lsp-yaml-schema-store-local-db # Type: file Default: ~/.emacs.d/.cache/lsp/lsp-yaml-schemas.json Cached database of schema store. lsp-yaml-schema-store-uri # Type: string Default: https://www.schemastore.org/api/json/catalog.json URL of schema store catalog to use. lsp-yaml-schemas # Type: (alist :key-type (symbol :tag schema) :value-type (lsp-string-vector :tag files (glob))) Default: nil Associate schemas to YAML files in a glob pattern. lsp-yaml-server-command # Type: (repeat string) Default: (yaml-language-server --stdio) Command to start yaml-languageserver. lsp-yaml-single-quote # Type: boolean Default: nil Use single quote instead of double quotes. lsp-yaml-validate # Type: boolean Default: t Enable/disable validation feature.","title":"YAML"},{"location":"page/lsp-yaml/#yaml","text":"","title":"YAML"},{"location":"page/lsp-yaml/#server","text":"For more information about the LSP server, check yaml .","title":"Server"},{"location":"page/lsp-yaml/#installation","text":"This Server supports automatic install. Install this language server with M-x lsp-install-server RET yamlls RET . npm install -g yaml-language-server","title":"Installation"},{"location":"page/lsp-yaml/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-yaml/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-yaml/#lsp-yaml-bracket-spacing","text":"Type: boolean Default: t Print spaces between brackets in objects.","title":"lsp-yaml-bracket-spacing"},{"location":"page/lsp-yaml/#lsp-yaml-completion","text":"Type: boolean Default: t Enable/disable completion feature.","title":"lsp-yaml-completion"},{"location":"page/lsp-yaml/#lsp-yaml-custom-tags","text":"Type: (lsp-repeatable-vector string) Default: nil Custom tags for the parser to use.","title":"lsp-yaml-custom-tags"},{"location":"page/lsp-yaml/#lsp-yaml-format-enable","text":"Type: boolean Default: t Enable/disable default YAML formatter.","title":"lsp-yaml-format-enable"},{"location":"page/lsp-yaml/#lsp-yaml-hover","text":"Type: boolean Default: t Enable/disable hover feature.","title":"lsp-yaml-hover"},{"location":"page/lsp-yaml/#lsp-yaml-max-items-computed","text":"Type: number Default: 5000 The maximum number of outline symbols and folding regions computed. Limited for performance reasons.","title":"lsp-yaml-max-items-computed"},{"location":"page/lsp-yaml/#lsp-yaml-print-width","text":"Type: number Default: 80 Specify the line length that the printer will wrap on.","title":"lsp-yaml-print-width"},{"location":"page/lsp-yaml/#lsp-yaml-prose-wrap","text":"Type: (choice (const always) (const never) (const preserve)) Default: preserve Options for prose-wrap. Always: wrap prose if it exceeds the print width. Never: never wrap the prose. Preserve: wrap prose as-is.","title":"lsp-yaml-prose-wrap"},{"location":"page/lsp-yaml/#lsp-yaml-schema-store-enable","text":"Type: boolean Default: t Enable/disable JSON Schema store. When set to true, available YAML schemas will be automatically pulled from the store.","title":"lsp-yaml-schema-store-enable"},{"location":"page/lsp-yaml/#lsp-yaml-schema-store-local-db","text":"Type: file Default: ~/.emacs.d/.cache/lsp/lsp-yaml-schemas.json Cached database of schema store.","title":"lsp-yaml-schema-store-local-db"},{"location":"page/lsp-yaml/#lsp-yaml-schema-store-uri","text":"Type: string Default: https://www.schemastore.org/api/json/catalog.json URL of schema store catalog to use.","title":"lsp-yaml-schema-store-uri"},{"location":"page/lsp-yaml/#lsp-yaml-schemas","text":"Type: (alist :key-type (symbol :tag schema) :value-type (lsp-string-vector :tag files (glob))) Default: nil Associate schemas to YAML files in a glob pattern.","title":"lsp-yaml-schemas"},{"location":"page/lsp-yaml/#lsp-yaml-server-command","text":"Type: (repeat string) Default: (yaml-language-server --stdio) Command to start yaml-languageserver.","title":"lsp-yaml-server-command"},{"location":"page/lsp-yaml/#lsp-yaml-single-quote","text":"Type: boolean Default: nil Use single quote instead of double quotes.","title":"lsp-yaml-single-quote"},{"location":"page/lsp-yaml/#lsp-yaml-validate","text":"Type: boolean Default: t Enable/disable validation feature.","title":"lsp-yaml-validate"},{"location":"page/lsp-zig/","text":"Zig # Server # For more information about the LSP server, check zls . Installation # For more instructions on how to install manually, check here . Debugger: Not available # Available configurations # lsp-zig-zls-executable # Type: string Default: zls The zls executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path .","title":"Zig"},{"location":"page/lsp-zig/#zig","text":"","title":"Zig"},{"location":"page/lsp-zig/#server","text":"For more information about the LSP server, check zls .","title":"Server"},{"location":"page/lsp-zig/#installation","text":"For more instructions on how to install manually, check here .","title":"Installation"},{"location":"page/lsp-zig/#debugger-not-available","text":"","title":"Debugger: Not available"},{"location":"page/lsp-zig/#available-configurations","text":"","title":"Available configurations"},{"location":"page/lsp-zig/#lsp-zig-zls-executable","text":"Type: string Default: zls The zls executable to use. Leave as just the executable name to use the default behavior of finding the executable with variable exec-path .","title":"lsp-zig-zls-executable"},{"location":"page/main-features/","text":"Main features # Completion at point # If LSP server supports completion, lsp-mode use symbols returned by the server to present the user when completion is triggered via completion-at-point . For the traditional completion popup, install company-mode . You can check above the recommended settings for company-mode : ( setq company-minimum-prefix-length 1 company-idle-delay 0.0 ) ;; default is 0.2 Code navigation # lsp-find-definition lsp-find-references Code lens # In case the LSP server supports code lens: Project errors on modeline # To see all error statistics in the modeline you can enable lsp-modeline-diagnostics-mode or (setq lsp-modeline-diagnostics-enable t) . This is especially useful for languages that compilation might be broken due to errors in other files(e.g. Java/Haskell). ( with-eval-after-load 'lsp-mode ;; :global/:workspace/:file ( setq lsp-modeline-diagnostics-scope :workspace )) Tip: To find out the global errors you might use lsp-treemacs-errors-list . Code actions on modeline # For a UI feedback of the available code actions, you can enable lsp-modeline-code-actions-mode which shows available code actions on modeline: With lsp-modeline-code-actions-segments you can customize what to show on the modeline as you want: lsp-modeline-code-actions-segments result '(count icon) (Default) '(name icon) '(icon) '(count icon name) Breadcrumb on headerline # For a UI feedback on headerline of the document symbols at point, current file or project name, you can enable lsp-headerline-breadcrumb-mode which shows a breadcrumb on top of window. You can customize the breadcrumb segments via lsp-headerline-breadcrumb-segments variable, some examples: lsp-headerline-breadcrumb-segments result '(path-up-to-project file symbols) (Default) '(project file symbols) '(symbols) If lsp-headerline-breadcrumb-segments contains 'symbols , you can optionally label the corresponding entries in the headerline display by setting lsp-headerline-breadcrumb-enable-symbol-numbers to t . Symbol highlights # In case LSP server supports hover feature: Formatting # In general the formatter settings are language server specific(e. g. JDT LS uses eclipse formatter file and lsp-java-format-settings-url to configure it while clangd uses clangd-format and lsp-dart uses the built-in dartfmt from Dart SDK ). The only settings that are controlled on lsp-mode level are indent size and whether the server should use tabs or spaces. Refer to lsp--formatting-indent-alist to find out what is the variable that is used for the current major mode. Some language servers, e.g. for C++, Java, etc, can format code as you type and the formatting is triggered when the corresponding character is pressed(typically, } , RET ). This behaviour is controlled via lsp-enable-on-type-formatting and it is enabled by default. Debugger # lsp-mode integrates with dap-mode with implements the DAP(Debugger Adapter Protocol), for more information check the dap-mode documentation . Integrations # lsp-mode supports many integrations for improve the user experience like treemacs , Helm , Ivy and others. For all available integrations, check the Extensions section on the left navigation.","title":"Main features"},{"location":"page/main-features/#main-features","text":"","title":"Main features"},{"location":"page/main-features/#completion-at-point","text":"If LSP server supports completion, lsp-mode use symbols returned by the server to present the user when completion is triggered via completion-at-point . For the traditional completion popup, install company-mode . You can check above the recommended settings for company-mode : ( setq company-minimum-prefix-length 1 company-idle-delay 0.0 ) ;; default is 0.2","title":"Completion at point"},{"location":"page/main-features/#code-navigation","text":"lsp-find-definition lsp-find-references","title":"Code navigation"},{"location":"page/main-features/#code-lens","text":"In case the LSP server supports code lens:","title":"Code lens"},{"location":"page/main-features/#project-errors-on-modeline","text":"To see all error statistics in the modeline you can enable lsp-modeline-diagnostics-mode or (setq lsp-modeline-diagnostics-enable t) . This is especially useful for languages that compilation might be broken due to errors in other files(e.g. Java/Haskell). ( with-eval-after-load 'lsp-mode ;; :global/:workspace/:file ( setq lsp-modeline-diagnostics-scope :workspace )) Tip: To find out the global errors you might use lsp-treemacs-errors-list .","title":"Project errors on modeline"},{"location":"page/main-features/#code-actions-on-modeline","text":"For a UI feedback of the available code actions, you can enable lsp-modeline-code-actions-mode which shows available code actions on modeline: With lsp-modeline-code-actions-segments you can customize what to show on the modeline as you want: lsp-modeline-code-actions-segments result '(count icon) (Default) '(name icon) '(icon) '(count icon name)","title":"Code actions on modeline"},{"location":"page/main-features/#breadcrumb-on-headerline","text":"For a UI feedback on headerline of the document symbols at point, current file or project name, you can enable lsp-headerline-breadcrumb-mode which shows a breadcrumb on top of window. You can customize the breadcrumb segments via lsp-headerline-breadcrumb-segments variable, some examples: lsp-headerline-breadcrumb-segments result '(path-up-to-project file symbols) (Default) '(project file symbols) '(symbols) If lsp-headerline-breadcrumb-segments contains 'symbols , you can optionally label the corresponding entries in the headerline display by setting lsp-headerline-breadcrumb-enable-symbol-numbers to t .","title":"Breadcrumb on headerline"},{"location":"page/main-features/#symbol-highlights","text":"In case LSP server supports hover feature:","title":"Symbol highlights"},{"location":"page/main-features/#formatting","text":"In general the formatter settings are language server specific(e. g. JDT LS uses eclipse formatter file and lsp-java-format-settings-url to configure it while clangd uses clangd-format and lsp-dart uses the built-in dartfmt from Dart SDK ). The only settings that are controlled on lsp-mode level are indent size and whether the server should use tabs or spaces. Refer to lsp--formatting-indent-alist to find out what is the variable that is used for the current major mode. Some language servers, e.g. for C++, Java, etc, can format code as you type and the formatting is triggered when the corresponding character is pressed(typically, } , RET ). This behaviour is controlled via lsp-enable-on-type-formatting and it is enabled by default.","title":"Formatting"},{"location":"page/main-features/#debugger","text":"lsp-mode integrates with dap-mode with implements the DAP(Debugger Adapter Protocol), for more information check the dap-mode documentation .","title":"Debugger"},{"location":"page/main-features/#integrations","text":"lsp-mode supports many integrations for improve the user experience like treemacs , Helm , Ivy and others. For all available integrations, check the Extensions section on the left navigation.","title":"Integrations"},{"location":"page/performance/","text":"Performance # Tuning # Use M-x lsp-doctor to validate if your lsp-mode is properly configured. In the section below, you could find description for each of the checks: When configured properly lsp-mode 's performance is on par with mainstream LSP clients (e. g. VScode , Theia , etc). Here are steps to achieve optimal results. JSON native serialization/deserialization # Use Emacs 27+ with native json support. (Note: this requires that you have libjansson installed, and that emacs was compiled with `\u2013with-json` passed to `./configure`.) You can check your installation for native json support by running M-: (functionp 'json-serialize) RET . Benchmarks show that Emacs 27 is ~15 times faster than Emacs when using Elisp json parser implementation. Adjust gc-cons-threshold # The default setting is too low for lsp-mode 's needs due to the fact that client/server communication generates a lot of memory/garbage. You have two options: - Set it to big number ( 100 mb ) like most of the popular starter kits like Spacemacs / Doom / Prelude , etc do : ``` elisp ( setq gc - cons - threshold 100000000 ) ``` - Follow the method recommended by Gnu Emacs Maintainer Eli Zaretskii : \" My suggestion is to repeatedly multiply gc-cons-threshold by 2 until you stop seeing significant improvements in responsiveness, and in any case not to increase by a factor larger than 100 or somesuch. If even a 100-fold increase doesn't help, there's some deeper problem with the Lisp code which produces so much garbage, or maybe GC is not the reason for slowdown. \" Source : < https : // www . reddit . com / r / emacs / comments / brc05y / is_lspmode_too_slow_to_use_for_anyone_else / eofulix /> Increase the amount of data which Emacs reads from the process # Again the emacs default is too low 4k considering that the some of the language server responses are in 800k - 3M range. ( setq read-process-output-max ( * 1024 1024 )) ;; 1mb Use plists for deserialization. # lsp-mode can be compiled in 2 modes plist and hash-table based lsp-use-plists flag. plist s provide better performance in deserialization and also put less presure than hash-table s. To switch to plist you have to perform 2 steps: Configure the following env variable. Make sure that Emacs can see that variable (best way to do that is to start Emacs from the shell, not from the icon). export LSP_USE_PLISTS = true Delete lsp-mode related packages. Make sure that lsp-use-plists is non-nil. Restart Emacs and install again lsp-mode related packages. NB: make sure that lsp-use-plists does not change after you compile the file. Furthermore, if you are using something like exec-path-from-shell you'll need to make sure to add LSP_USE_PLISTS to exec-path-from-shell-variables . Optional steps # Optional: Disable lsp-ui . Normally, lsp-ui is very fast but in some systems (especially when using Windows ) lsp-ui overlays and popups might slow down emacs. Optional: fine-tune lsp-idle-delay . This variable determines how often lsp-mode will refresh the highlights, lenses, links, etc while you type. ( setq lsp-idle-delay 0.500 ) Using Emacs 28.1 or later # Emacs 28.1 includes \"native compilation\" of elisp code ( changelog ). For optimal performance, using Emacs 28.1 or later (with native compilation enabled) is recommended. Ignore watch folders/files # If the server supports watch files, by default lsp-mode tries to watch all files and folders of the project ignoring the regexp from lsp-file-watch-ignored . If you don't want some file or folder to be watched for performance reasons, you can add a regexp to that variable excluding the file or folder. Check the file watchers section for details. Check if logging is switched off. # Make sure lsp-log-io is nil . You might have forgotten it after a debugging session, for example. It can cause a great performance hit. ( setq lsp-log-io nil ) ; if set to true can cause a performance hit Sometimes you might need to check logging for specific LSP server configuration as well, i.e. for lsp-eslint it is: lsp-eslint-trace-server . Reporting performance problems # If you have tried all of the non-optional steps from the list and emacs is still not very responsive please open a PR with the following information: Include emacs performance report. Use the following step to collect it: M-x profiler-start and select CPU Reproduce the slow behavior. M-x profiler-stop M-x profiler-report to create a report In the profiler report expand all nodes by doing C-u TAB . Note: - lsp-mode is just a frontend and the performance depends on server as well. Some servers (e. g. Palantir's Python Language Server) might be slow when performing auto-completion.","title":"Performance"},{"location":"page/performance/#performance","text":"","title":"Performance"},{"location":"page/performance/#tuning","text":"Use M-x lsp-doctor to validate if your lsp-mode is properly configured. In the section below, you could find description for each of the checks: When configured properly lsp-mode 's performance is on par with mainstream LSP clients (e. g. VScode , Theia , etc). Here are steps to achieve optimal results.","title":"Tuning"},{"location":"page/performance/#json-native-serializationdeserialization","text":"Use Emacs 27+ with native json support. (Note: this requires that you have libjansson installed, and that emacs was compiled with `\u2013with-json` passed to `./configure`.) You can check your installation for native json support by running M-: (functionp 'json-serialize) RET . Benchmarks show that Emacs 27 is ~15 times faster than Emacs when using Elisp json parser implementation.","title":"JSON native serialization/deserialization"},{"location":"page/performance/#adjust-gc-cons-threshold","text":"The default setting is too low for lsp-mode 's needs due to the fact that client/server communication generates a lot of memory/garbage. You have two options: - Set it to big number ( 100 mb ) like most of the popular starter kits like Spacemacs / Doom / Prelude , etc do : ``` elisp ( setq gc - cons - threshold 100000000 ) ``` - Follow the method recommended by Gnu Emacs Maintainer Eli Zaretskii : \" My suggestion is to repeatedly multiply gc-cons-threshold by 2 until you stop seeing significant improvements in responsiveness, and in any case not to increase by a factor larger than 100 or somesuch. If even a 100-fold increase doesn't help, there's some deeper problem with the Lisp code which produces so much garbage, or maybe GC is not the reason for slowdown. \" Source : < https : // www . reddit . com / r / emacs / comments / brc05y / is_lspmode_too_slow_to_use_for_anyone_else / eofulix />","title":"Adjust gc-cons-threshold"},{"location":"page/performance/#increase-the-amount-of-data-which-emacs-reads-from-the-process","text":"Again the emacs default is too low 4k considering that the some of the language server responses are in 800k - 3M range. ( setq read-process-output-max ( * 1024 1024 )) ;; 1mb","title":"Increase the amount of data which Emacs reads from the process"},{"location":"page/performance/#use-plists-for-deserialization","text":"lsp-mode can be compiled in 2 modes plist and hash-table based lsp-use-plists flag. plist s provide better performance in deserialization and also put less presure than hash-table s. To switch to plist you have to perform 2 steps: Configure the following env variable. Make sure that Emacs can see that variable (best way to do that is to start Emacs from the shell, not from the icon). export LSP_USE_PLISTS = true Delete lsp-mode related packages. Make sure that lsp-use-plists is non-nil. Restart Emacs and install again lsp-mode related packages. NB: make sure that lsp-use-plists does not change after you compile the file. Furthermore, if you are using something like exec-path-from-shell you'll need to make sure to add LSP_USE_PLISTS to exec-path-from-shell-variables .","title":"Use plists for deserialization."},{"location":"page/performance/#optional-steps","text":"Optional: Disable lsp-ui . Normally, lsp-ui is very fast but in some systems (especially when using Windows ) lsp-ui overlays and popups might slow down emacs. Optional: fine-tune lsp-idle-delay . This variable determines how often lsp-mode will refresh the highlights, lenses, links, etc while you type. ( setq lsp-idle-delay 0.500 )","title":"Optional steps"},{"location":"page/performance/#using-emacs-281-or-later","text":"Emacs 28.1 includes \"native compilation\" of elisp code ( changelog ). For optimal performance, using Emacs 28.1 or later (with native compilation enabled) is recommended.","title":"Using Emacs 28.1 or later"},{"location":"page/performance/#ignore-watch-foldersfiles","text":"If the server supports watch files, by default lsp-mode tries to watch all files and folders of the project ignoring the regexp from lsp-file-watch-ignored . If you don't want some file or folder to be watched for performance reasons, you can add a regexp to that variable excluding the file or folder. Check the file watchers section for details.","title":"Ignore watch folders/files"},{"location":"page/performance/#check-if-logging-is-switched-off","text":"Make sure lsp-log-io is nil . You might have forgotten it after a debugging session, for example. It can cause a great performance hit. ( setq lsp-log-io nil ) ; if set to true can cause a performance hit Sometimes you might need to check logging for specific LSP server configuration as well, i.e. for lsp-eslint it is: lsp-eslint-trace-server .","title":"Check if logging is switched off."},{"location":"page/performance/#reporting-performance-problems","text":"If you have tried all of the non-optional steps from the list and emacs is still not very responsive please open a PR with the following information: Include emacs performance report. Use the following step to collect it: M-x profiler-start and select CPU Reproduce the slow behavior. M-x profiler-stop M-x profiler-report to create a report In the profiler report expand all nodes by doing C-u TAB . Note: - lsp-mode is just a frontend and the performance depends on server as well. Some servers (e. g. Palantir's Python Language Server) might be slow when performing auto-completion.","title":"Reporting performance problems"},{"location":"page/remote/","text":"Remote # TRAMP # LSP mode has support for tramp buffers with the following requirements: The language server has to be present on the remote server. Having multi folder language server (like Eclipse JDT LS ) cannot have local and remote workspace folders. How does it work? # lsp-mode detects whether a particular file is located on remote machine and looks for a client which matches current file and it is marked as :remote? t. Then lsp-mode starts the client through tramp. Sample configuration # Here it is example how you can configure python language server to work when using TRAMP . Note that if you are trying to convert existing language server configuration you should copy all of it's properties(e. g. :request-handlers , activation-fn , etc). Also, when you are doing that you should make sure that none of the custom language server settings are not pointing to local path because those settings will be sent to the remote server. ( lsp-register-client ( make-lsp-client :new-connection ( lsp-tramp-connection \"\" ) :major-modes ' ( python-mode ) :remote? t :server-id 'pyls-remote )) Note: when you do not have root privileges on the remote machine to put the language server on the path you may alter the remote path by changing tramp-remote-path . Dealing with stderr # With TRAMP, Emacs does not have an easy way to distinguish stdout and stderr, so when the underlying LSP process writes to stderr, it breaks the lsp-mode parser. As a workaround, lsp-mode is redirecting stderr to /tmp/-~stderr . Docker # Refer to lsp-docker README which provides a guide on how you can run lsp-mode in docker container.","title":"Remote"},{"location":"page/remote/#remote","text":"","title":"Remote"},{"location":"page/remote/#tramp","text":"LSP mode has support for tramp buffers with the following requirements: The language server has to be present on the remote server. Having multi folder language server (like Eclipse JDT LS ) cannot have local and remote workspace folders.","title":"TRAMP"},{"location":"page/remote/#how-does-it-work","text":"lsp-mode detects whether a particular file is located on remote machine and looks for a client which matches current file and it is marked as :remote? t. Then lsp-mode starts the client through tramp.","title":"How does it work?"},{"location":"page/remote/#sample-configuration","text":"Here it is example how you can configure python language server to work when using TRAMP . Note that if you are trying to convert existing language server configuration you should copy all of it's properties(e. g. :request-handlers , activation-fn , etc). Also, when you are doing that you should make sure that none of the custom language server settings are not pointing to local path because those settings will be sent to the remote server. ( lsp-register-client ( make-lsp-client :new-connection ( lsp-tramp-connection \"\" ) :major-modes ' ( python-mode ) :remote? t :server-id 'pyls-remote )) Note: when you do not have root privileges on the remote machine to put the language server on the path you may alter the remote path by changing tramp-remote-path .","title":"Sample configuration"},{"location":"page/remote/#dealing-with-stderr","text":"With TRAMP, Emacs does not have an easy way to distinguish stdout and stderr, so when the underlying LSP process writes to stderr, it breaks the lsp-mode parser. As a workaround, lsp-mode is redirecting stderr to /tmp/-~stderr .","title":"Dealing with stderr"},{"location":"page/remote/#docker","text":"Refer to lsp-docker README which provides a guide on how you can run lsp-mode in docker container.","title":"Docker"},{"location":"page/troubleshooting/","text":"Troubleshooting # lsp-log # Check *lsp-log* buffer and verify that lsp-mode is able to find the server. If lsp-mode is unable to find the binary but it is on the path it is probably caused by the fact that emacs is running with different path. You may check the current path by executing M-: (getenv \"PATH\") . If this is the case, you have several options to fix the issue. Make sure that emacs is using the proper path by running emacs from terminal. Modify the path using setpath function. Server path # Look for lsp-mode variable to customize server path. Usually, you may find the variable by doing: M-x customize-group RET lsp-LANGUAGE-SERVER-ID . Log client<->server json # Set lsp-log-io to t to inspect communication between client and the server. Use lsp-workspace-show-log to switch to the corresponding log buffer. Check project roots # lsp-describe-session will show the current projects roots + the started servers and allows inspecting the server capabilities: Updating package.el packages # If you manage your Emacs packages with the built-in package.el , we recommend the following procedure to update your packages: Delete your LSP-related packages Restart Emacs Install the new versions of the packages. Check if any package or wrong config could be causing the issue # Try to repro the issue with our lsp-start-plain.el file, which has just the necessary config/packages for lsp-mode work using M-x lsp-start-plain .","title":"Troubleshooting"},{"location":"page/troubleshooting/#troubleshooting","text":"","title":"Troubleshooting"},{"location":"page/troubleshooting/#lsp-log","text":"Check *lsp-log* buffer and verify that lsp-mode is able to find the server. If lsp-mode is unable to find the binary but it is on the path it is probably caused by the fact that emacs is running with different path. You may check the current path by executing M-: (getenv \"PATH\") . If this is the case, you have several options to fix the issue. Make sure that emacs is using the proper path by running emacs from terminal. Modify the path using setpath function.","title":"lsp-log"},{"location":"page/troubleshooting/#server-path","text":"Look for lsp-mode variable to customize server path. Usually, you may find the variable by doing: M-x customize-group RET lsp-LANGUAGE-SERVER-ID .","title":"Server path"},{"location":"page/troubleshooting/#log-client-server-json","text":"Set lsp-log-io to t to inspect communication between client and the server. Use lsp-workspace-show-log to switch to the corresponding log buffer.","title":"Log client<->server json"},{"location":"page/troubleshooting/#check-project-roots","text":"lsp-describe-session will show the current projects roots + the started servers and allows inspecting the server capabilities:","title":"Check project roots"},{"location":"page/troubleshooting/#updating-packageel-packages","text":"If you manage your Emacs packages with the built-in package.el , we recommend the following procedure to update your packages: Delete your LSP-related packages Restart Emacs Install the new versions of the packages.","title":"Updating package.el packages"},{"location":"page/troubleshooting/#check-if-any-package-or-wrong-config-could-be-causing-the-issue","text":"Try to repro the issue with our lsp-start-plain.el file, which has just the necessary config/packages for lsp-mode work using M-x lsp-start-plain .","title":"Check if any package or wrong config could be causing the issue"},{"location":"page/integration/dired/","text":"Dired integration # lsp-mode provides integration with dired file explorer. lsp-mode will show which files/folders contain errors/warnings/hints. To enable this behaviour add (lsp-dired-mode) call to your config. Screenshot #","title":"Dired integration"},{"location":"page/integration/dired/#dired-integration","text":"lsp-mode provides integration with dired file explorer. lsp-mode will show which files/folders contain errors/warnings/hints. To enable this behaviour add (lsp-dired-mode) call to your config.","title":"Dired integration"},{"location":"page/integration/dired/#screenshot","text":"","title":"Screenshot"},{"location":"page/integration/ido/","text":"Ido integration # lsp-mode provides integration with ido for workspace-symbol command. lsp-mode will show all workspace/project symbols using IDO. To enable this behaviour add (require 'lsp-ido) call to your config. By installing ido-completing-read+ lsp-mode will use IDO for showing candidates on other commands as well e.g. refactor, code actions, etc. Screenshot # Command # lsp-ido-workspace-symbol command will be available as an interactive call. Configuration # You can disable symbol kind and symbol filepath from the candidate list by changing the following settings ( setq lsp-ido-show-symbol-kind nil lsp-ido-show-symbol-filename nil )","title":"Ido"},{"location":"page/integration/ido/#ido-integration","text":"lsp-mode provides integration with ido for workspace-symbol command. lsp-mode will show all workspace/project symbols using IDO. To enable this behaviour add (require 'lsp-ido) call to your config. By installing ido-completing-read+ lsp-mode will use IDO for showing candidates on other commands as well e.g. refactor, code actions, etc.","title":"Ido integration"},{"location":"page/integration/ido/#screenshot","text":"","title":"Screenshot"},{"location":"page/integration/ido/#command","text":"lsp-ido-workspace-symbol command will be available as an interactive call.","title":"Command"},{"location":"page/integration/ido/#configuration","text":"You can disable symbol kind and symbol filepath from the candidate list by changing the following settings ( setq lsp-ido-show-symbol-kind nil lsp-ido-show-symbol-filename nil )","title":"Configuration"},{"location":"page/integration/iedit/","text":"iedit # lsp-mode can leverage iedit to edit semantic matches in parallel: lsp-iedit-highlights : invoke iedit on the symbol highlights at point, all of which will be edited in parallel. To finish and exit, press C-g , with the cursor on iedit highlight. If an iedit session is already active, lsp-iedit-highlights will simply add the document highlights to it, without restarting it. This way, another group of symbol highlights can be added to the current iedit session.","title":"Iedit"},{"location":"page/integration/iedit/#iedit","text":"lsp-mode can leverage iedit to edit semantic matches in parallel: lsp-iedit-highlights : invoke iedit on the symbol highlights at point, all of which will be edited in parallel. To finish and exit, press C-g , with the cursor on iedit highlight. If an iedit session is already active, lsp-iedit-highlights will simply add the document highlights to it, without restarting it. This way, another group of symbol highlights can be added to the current iedit session.","title":"iedit"},{"location":"page/settings/completion/","text":"Completion # lsp-completion-enable # Type: boolean Default: t Enable completion-at-point integration. lsp-completion-enable-additional-text-edit # Type: boolean Default: t Whether or not to apply additional text edit when performing completion. If set to non-nil, lsp-mode will apply additional text edits from the server. Otherwise, the additional text edits are ignored. lsp-completion-filter-on-incomplete # Type: boolean Default: t Whether or not filter incomplete results. lsp-completion-no-cache # Type: boolean Default: nil Whether or not caching the returned completions from server. lsp-completion-provider # Type: (choice (const :tag Use company-capf :capf) (const :tag None :none)) Default: :capf The completion backend provider. lsp-completion-show-detail # Type: boolean Default: t Whether or not to show detail of completion candidates. lsp-completion-show-kind # Type: boolean Default: t Whether or not to show kind of completion candidates. lsp-completion-show-label-description # Type: boolean Default: t Whether or not to show description of completion candidates. lsp-completion-sort-initial-results # Type: boolean Default: t Whether or not filter initial results from server. lsp-completion-use-last-result # Type: boolean Default: t Temporarily use last server result when interrupted by keyboard. This will help minimize popup flickering issue in company-mode . lsp-enable-snippet # Type: boolean Default: t Enable/disable snippet completion support.","title":"Completion"},{"location":"page/settings/completion/#completion","text":"","title":"Completion"},{"location":"page/settings/completion/#lsp-completion-enable","text":"Type: boolean Default: t Enable completion-at-point integration.","title":"lsp-completion-enable"},{"location":"page/settings/completion/#lsp-completion-enable-additional-text-edit","text":"Type: boolean Default: t Whether or not to apply additional text edit when performing completion. If set to non-nil, lsp-mode will apply additional text edits from the server. Otherwise, the additional text edits are ignored.","title":"lsp-completion-enable-additional-text-edit"},{"location":"page/settings/completion/#lsp-completion-filter-on-incomplete","text":"Type: boolean Default: t Whether or not filter incomplete results.","title":"lsp-completion-filter-on-incomplete"},{"location":"page/settings/completion/#lsp-completion-no-cache","text":"Type: boolean Default: nil Whether or not caching the returned completions from server.","title":"lsp-completion-no-cache"},{"location":"page/settings/completion/#lsp-completion-provider","text":"Type: (choice (const :tag Use company-capf :capf) (const :tag None :none)) Default: :capf The completion backend provider.","title":"lsp-completion-provider"},{"location":"page/settings/completion/#lsp-completion-show-detail","text":"Type: boolean Default: t Whether or not to show detail of completion candidates.","title":"lsp-completion-show-detail"},{"location":"page/settings/completion/#lsp-completion-show-kind","text":"Type: boolean Default: t Whether or not to show kind of completion candidates.","title":"lsp-completion-show-kind"},{"location":"page/settings/completion/#lsp-completion-show-label-description","text":"Type: boolean Default: t Whether or not to show description of completion candidates.","title":"lsp-completion-show-label-description"},{"location":"page/settings/completion/#lsp-completion-sort-initial-results","text":"Type: boolean Default: t Whether or not filter initial results from server.","title":"lsp-completion-sort-initial-results"},{"location":"page/settings/completion/#lsp-completion-use-last-result","text":"Type: boolean Default: t Temporarily use last server result when interrupted by keyboard. This will help minimize popup flickering issue in company-mode .","title":"lsp-completion-use-last-result"},{"location":"page/settings/completion/#lsp-enable-snippet","text":"Type: boolean Default: t Enable/disable snippet completion support.","title":"lsp-enable-snippet"},{"location":"page/settings/diagnostics/","text":"Diagnostics # lsp-diagnostic-clean-after-change # Type: boolean Default: nil When non-nil, clean the diagnostics on change. Note that when that setting is nil, lsp-mode will show stale diagnostics until server publishes the new set of diagnostics lsp-diagnostics-attributes # Type: (repeat list) Default: ((unnecessary :foreground gray) (deprecated :strike-through t)) The Attributes used on the diagnostics. List containing (tag attributes) where tag is the LSP diagnostic tag and attributes is a plist containing face attributes which will be applied on top the flycheck face for that error level. lsp-diagnostics-disabled-modes # Type: (repeat symbol) Default: nil A list of major models for which lsp-diagnostics-mode should be disabled. lsp-diagnostics-flycheck-default-level # Type: (choice (const error) (const warning) (const info)) Default: error Error level to use when the server does not report back a diagnostic level. lsp-diagnostics-provider # Type: (choice (const :tag Pick flycheck if present and fallback to flymake :auto) (const :tag Pick flycheck :flycheck) (const :tag Pick flymake :flymake) (const :tag Use neither flymake nor lsp :none) (const :tag Prefer flymake t) (const :tag Prefer flycheck nil)) Default: :auto The checker backend provider.","title":"Diagnostics"},{"location":"page/settings/diagnostics/#diagnostics","text":"","title":"Diagnostics"},{"location":"page/settings/diagnostics/#lsp-diagnostic-clean-after-change","text":"Type: boolean Default: nil When non-nil, clean the diagnostics on change. Note that when that setting is nil, lsp-mode will show stale diagnostics until server publishes the new set of diagnostics","title":"lsp-diagnostic-clean-after-change"},{"location":"page/settings/diagnostics/#lsp-diagnostics-attributes","text":"Type: (repeat list) Default: ((unnecessary :foreground gray) (deprecated :strike-through t)) The Attributes used on the diagnostics. List containing (tag attributes) where tag is the LSP diagnostic tag and attributes is a plist containing face attributes which will be applied on top the flycheck face for that error level.","title":"lsp-diagnostics-attributes"},{"location":"page/settings/diagnostics/#lsp-diagnostics-disabled-modes","text":"Type: (repeat symbol) Default: nil A list of major models for which lsp-diagnostics-mode should be disabled.","title":"lsp-diagnostics-disabled-modes"},{"location":"page/settings/diagnostics/#lsp-diagnostics-flycheck-default-level","text":"Type: (choice (const error) (const warning) (const info)) Default: error Error level to use when the server does not report back a diagnostic level.","title":"lsp-diagnostics-flycheck-default-level"},{"location":"page/settings/diagnostics/#lsp-diagnostics-provider","text":"Type: (choice (const :tag Pick flycheck if present and fallback to flymake :auto) (const :tag Pick flycheck :flycheck) (const :tag Pick flymake :flymake) (const :tag Use neither flymake nor lsp :none) (const :tag Prefer flymake t) (const :tag Prefer flycheck nil)) Default: :auto The checker backend provider.","title":"lsp-diagnostics-provider"},{"location":"page/settings/dired/","text":"Dired # lsp-dired-mode # Type: boolean Default: nil Non-nil if Lsp-Dired mode is enabled. See the lsp-dired-mode command for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node Easy Customization ) or call the function lsp-dired-mode . lsp-dired-path-error-face # Type: face Default: ((t :underline (:style wave :color Red1))) Face used for breadcrumb paths on headerline when there is an error under that path lsp-dired-path-face # Type: face Default: ((t :inherit font-lock-string-face)) Face used for breadcrumb paths on headerline. lsp-dired-path-hint-face # Type: face Default: ((t :underline (:style wave :color Green))) Face used for breadcrumb paths on headerline when there is an hint under that path lsp-dired-path-info-face # Type: face Default: ((t :underline (:style wave :color Green))) Face used for breadcrumb paths on headerline when there is an info under that path lsp-dired-path-warning-face # Type: face Default: ((t :underline (:style wave :color Yellow))) Face used for breadcrumb paths on headerline when there is an warning under that path","title":"Dired"},{"location":"page/settings/dired/#dired","text":"","title":"Dired"},{"location":"page/settings/dired/#lsp-dired-mode","text":"Type: boolean Default: nil Non-nil if Lsp-Dired mode is enabled. See the lsp-dired-mode command for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node Easy Customization ) or call the function lsp-dired-mode .","title":"lsp-dired-mode"},{"location":"page/settings/dired/#lsp-dired-path-error-face","text":"Type: face Default: ((t :underline (:style wave :color Red1))) Face used for breadcrumb paths on headerline when there is an error under that path","title":"lsp-dired-path-error-face"},{"location":"page/settings/dired/#lsp-dired-path-face","text":"Type: face Default: ((t :inherit font-lock-string-face)) Face used for breadcrumb paths on headerline.","title":"lsp-dired-path-face"},{"location":"page/settings/dired/#lsp-dired-path-hint-face","text":"Type: face Default: ((t :underline (:style wave :color Green))) Face used for breadcrumb paths on headerline when there is an hint under that path","title":"lsp-dired-path-hint-face"},{"location":"page/settings/dired/#lsp-dired-path-info-face","text":"Type: face Default: ((t :underline (:style wave :color Green))) Face used for breadcrumb paths on headerline when there is an info under that path","title":"lsp-dired-path-info-face"},{"location":"page/settings/dired/#lsp-dired-path-warning-face","text":"Type: face Default: ((t :underline (:style wave :color Yellow))) Face used for breadcrumb paths on headerline when there is an warning under that path","title":"lsp-dired-path-warning-face"},{"location":"page/settings/headerline/","text":"Headerline # lsp-headerline-breadcrumb-deprecated-face # Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :strike-through t)) Face used on breadcrumb deprecated text on modeline. lsp-headerline-breadcrumb-enable # Type: boolean Default: t Whether to enable breadcrumb on headerline. lsp-headerline-breadcrumb-enable-diagnostics # Type: boolean Default: t If non-nil, apply different face on the breadcrumb based on the errors. lsp-headerline-breadcrumb-enable-symbol-numbers # Type: boolean Default: nil Whether to label symbols with numbers on the breadcrumb. lsp-headerline-breadcrumb-path-error-face # Type: face Default: ((t :underline (:style wave :color Red1) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an error under that path lsp-headerline-breadcrumb-path-face # Type: face Default: ((t :inherit font-lock-string-face)) Face used for breadcrumb paths on headerline. lsp-headerline-breadcrumb-path-hint-face # Type: face Default: ((t :underline (:style wave :color Green) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an hint under that path lsp-headerline-breadcrumb-path-info-face # Type: face Default: ((t :underline (:style wave :color Green) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an info under that path lsp-headerline-breadcrumb-path-warning-face # Type: face Default: ((t :underline (:style wave :color Yellow) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an warning under that path lsp-headerline-breadcrumb-project-prefix-face # Type: face Default: ((t :inherit font-lock-string-face :weight bold)) Face used for breadcrumb prefix on headerline. Only if lsp-headerline-breadcrumb-prefix is project-name-only . lsp-headerline-breadcrumb-segments # Type: (repeat (choice (const :tag Include the project name. project) (const :tag Include the open file name. file) (const :tag Include the directories up to project. path-up-to-project) (const :tag Include document symbols if server supports it. symbols))) Default: (path-up-to-project file symbols) Segments used in breadcrumb text on headerline. lsp-headerline-breadcrumb-separator-face # Type: face Default: ((t :inherit shadow :height 0.8)) Face used for breadcrumb separator on headerline. lsp-headerline-breadcrumb-symbols-error-face # Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Red1))) Face used for breadcrumb symbols text on headerline when there is an error in symbols range. lsp-headerline-breadcrumb-symbols-face # Type: face Default: ((t :inherit font-lock-doc-face :weight bold)) Face used for breadcrumb symbols text on headerline. lsp-headerline-breadcrumb-symbols-hint-face # Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Green))) Face used for breadcrumb symbols text on headerline when there is an hints in symbols range. lsp-headerline-breadcrumb-symbols-info-face # Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Green))) Face used for breadcrumb symbols text on headerline when there is an info in symbols range. lsp-headerline-breadcrumb-symbols-warning-face # Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Yellow))) Face used for breadcrumb symbols text on headerline when there is an warning in symbols range. lsp-headerline-breadcrumb-unknown-project-prefix-face # Type: face Default: ((t :inherit shadow :weight bold)) Face used for breadcrumb prefix on headerline. Only if lsp-headerline-breadcrumb-prefix is project-name-only .","title":"Headerline"},{"location":"page/settings/headerline/#headerline","text":"","title":"Headerline"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-deprecated-face","text":"Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :strike-through t)) Face used on breadcrumb deprecated text on modeline.","title":"lsp-headerline-breadcrumb-deprecated-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-enable","text":"Type: boolean Default: t Whether to enable breadcrumb on headerline.","title":"lsp-headerline-breadcrumb-enable"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-enable-diagnostics","text":"Type: boolean Default: t If non-nil, apply different face on the breadcrumb based on the errors.","title":"lsp-headerline-breadcrumb-enable-diagnostics"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-enable-symbol-numbers","text":"Type: boolean Default: nil Whether to label symbols with numbers on the breadcrumb.","title":"lsp-headerline-breadcrumb-enable-symbol-numbers"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-path-error-face","text":"Type: face Default: ((t :underline (:style wave :color Red1) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an error under that path","title":"lsp-headerline-breadcrumb-path-error-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-path-face","text":"Type: face Default: ((t :inherit font-lock-string-face)) Face used for breadcrumb paths on headerline.","title":"lsp-headerline-breadcrumb-path-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-path-hint-face","text":"Type: face Default: ((t :underline (:style wave :color Green) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an hint under that path","title":"lsp-headerline-breadcrumb-path-hint-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-path-info-face","text":"Type: face Default: ((t :underline (:style wave :color Green) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an info under that path","title":"lsp-headerline-breadcrumb-path-info-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-path-warning-face","text":"Type: face Default: ((t :underline (:style wave :color Yellow) :inherit lsp-headerline-breadcrumb-path-face)) Face used for breadcrumb paths on headerline when there is an warning under that path","title":"lsp-headerline-breadcrumb-path-warning-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-project-prefix-face","text":"Type: face Default: ((t :inherit font-lock-string-face :weight bold)) Face used for breadcrumb prefix on headerline. Only if lsp-headerline-breadcrumb-prefix is project-name-only .","title":"lsp-headerline-breadcrumb-project-prefix-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-segments","text":"Type: (repeat (choice (const :tag Include the project name. project) (const :tag Include the open file name. file) (const :tag Include the directories up to project. path-up-to-project) (const :tag Include document symbols if server supports it. symbols))) Default: (path-up-to-project file symbols) Segments used in breadcrumb text on headerline.","title":"lsp-headerline-breadcrumb-segments"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-separator-face","text":"Type: face Default: ((t :inherit shadow :height 0.8)) Face used for breadcrumb separator on headerline.","title":"lsp-headerline-breadcrumb-separator-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-symbols-error-face","text":"Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Red1))) Face used for breadcrumb symbols text on headerline when there is an error in symbols range.","title":"lsp-headerline-breadcrumb-symbols-error-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-symbols-face","text":"Type: face Default: ((t :inherit font-lock-doc-face :weight bold)) Face used for breadcrumb symbols text on headerline.","title":"lsp-headerline-breadcrumb-symbols-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-symbols-hint-face","text":"Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Green))) Face used for breadcrumb symbols text on headerline when there is an hints in symbols range.","title":"lsp-headerline-breadcrumb-symbols-hint-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-symbols-info-face","text":"Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Green))) Face used for breadcrumb symbols text on headerline when there is an info in symbols range.","title":"lsp-headerline-breadcrumb-symbols-info-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-symbols-warning-face","text":"Type: face Default: ((t :inherit lsp-headerline-breadcrumb-symbols-face :underline (:style wave :color Yellow))) Face used for breadcrumb symbols text on headerline when there is an warning in symbols range.","title":"lsp-headerline-breadcrumb-symbols-warning-face"},{"location":"page/settings/headerline/#lsp-headerline-breadcrumb-unknown-project-prefix-face","text":"Type: face Default: ((t :inherit shadow :weight bold)) Face used for breadcrumb prefix on headerline. Only if lsp-headerline-breadcrumb-prefix is project-name-only .","title":"lsp-headerline-breadcrumb-unknown-project-prefix-face"},{"location":"page/settings/icons/","text":"Icons # lsp-headerline-breadcrumb-icons-enable # Type: boolean Default: t If non-nil, icons support is enabled for headerline-breadcrumb.","title":"Icons"},{"location":"page/settings/icons/#icons","text":"","title":"Icons"},{"location":"page/settings/icons/#lsp-headerline-breadcrumb-icons-enable","text":"Type: boolean Default: t If non-nil, icons support is enabled for headerline-breadcrumb.","title":"lsp-headerline-breadcrumb-icons-enable"},{"location":"page/settings/ido/","text":"Ido # lsp-ido-show-symbol-filename # Type: boolean Default: t Whether to show the project-relative path to a symbol`s point of definition. lsp-ido-show-symbol-kind # Type: boolean Default: t Whether to show the symbol`s kind when showing lsp symbols. lsp-ido-symbol-kind-to-string # Type: vector Default: [ File Modu Nmsp Pack Clss Meth Prop Fld Cons Enum Intf Func Var Cnst Str Num Bool Arr Obj Key Null EmMm Srct Evnt Op TPar] A vector of 26 items representing the SymbolKind.","title":"Ido"},{"location":"page/settings/ido/#ido","text":"","title":"Ido"},{"location":"page/settings/ido/#lsp-ido-show-symbol-filename","text":"Type: boolean Default: t Whether to show the project-relative path to a symbol`s point of definition.","title":"lsp-ido-show-symbol-filename"},{"location":"page/settings/ido/#lsp-ido-show-symbol-kind","text":"Type: boolean Default: t Whether to show the symbol`s kind when showing lsp symbols.","title":"lsp-ido-show-symbol-kind"},{"location":"page/settings/ido/#lsp-ido-symbol-kind-to-string","text":"Type: vector Default: [ File Modu Nmsp Pack Clss Meth Prop Fld Cons Enum Intf Func Var Cnst Str Num Bool Arr Obj Key Null EmMm Srct Evnt Op TPar] A vector of 26 items representing the SymbolKind.","title":"lsp-ido-symbol-kind-to-string"},{"location":"page/settings/iedit/","text":"Iedit # No custom variables available.","title":"Iedit"},{"location":"page/settings/iedit/#iedit","text":"No custom variables available.","title":"Iedit"},{"location":"page/settings/lens/","text":"Lens # lsp-lens-debounce-interval # Type: number Default: 0.001 Debounce interval for loading lenses. lsp-lens-enable # Type: boolean Default: t Auto enable lenses if server supports. lsp-lens-face # Type: face Default: ((t :inherit lsp-details-face)) The face used for code lens overlays. lsp-lens-mouse-face # Type: face Default: ((t :height 0.8 :inherit link)) The face used for code lens overlays. lsp-lens-place-position # Type: (choice (const above-line) (const end-of-line)) Default: end-of-line The position to place lens relative to returned lens position.","title":"Lens"},{"location":"page/settings/lens/#lens","text":"","title":"Lens"},{"location":"page/settings/lens/#lsp-lens-debounce-interval","text":"Type: number Default: 0.001 Debounce interval for loading lenses.","title":"lsp-lens-debounce-interval"},{"location":"page/settings/lens/#lsp-lens-enable","text":"Type: boolean Default: t Auto enable lenses if server supports.","title":"lsp-lens-enable"},{"location":"page/settings/lens/#lsp-lens-face","text":"Type: face Default: ((t :inherit lsp-details-face)) The face used for code lens overlays.","title":"lsp-lens-face"},{"location":"page/settings/lens/#lsp-lens-mouse-face","text":"Type: face Default: ((t :height 0.8 :inherit link)) The face used for code lens overlays.","title":"lsp-lens-mouse-face"},{"location":"page/settings/lens/#lsp-lens-place-position","text":"Type: (choice (const above-line) (const end-of-line)) Default: end-of-line The position to place lens relative to returned lens position.","title":"lsp-lens-place-position"},{"location":"page/settings/mode/","text":"Core # lsp-after-apply-edits-hook # Type: hook Default: nil Hooks to run when text edit is applied. It contains the operation source. lsp-after-diagnostics-hook # Type: hook Default: nil Hooks to run after diagnostics are received. lsp-after-initialize-hook # Type: hook Default: nil List of functions to be called after a Language Server has been initialized for a new workspace. lsp-after-open-hook # Type: hook Default: nil List of functions to be called after a new file with LSP support is opened. lsp-after-uninitialized-functions # Type: hook Default: nil List of functions to be called after a Language Server has been uninitialized. lsp-apply-edits-after-file-operations # Type: boolean Default: t Whether to apply edits returned by server after file operations if any. Applicable only if server supports workspace.fileOperations for operations: workspace/willRenameFiles , workspace/willCreateFiles and workspace/willDeleteFiles . lsp-auto-configure # Type: boolean Default: t Auto configure lsp-mode main features. When set to t lsp-mode will auto-configure completion, code-actions, breadcrumb, flycheck , flymake , imenu , symbol highlighting, lenses, links, and so on. For finer granularity you may use lsp-enable-* properties. lsp-auto-execute-action # Type: boolean Default: t Auto-execute single action. lsp-auto-guess-root # Type: boolean Default: nil Automatically guess the project root using projectile/project. Do not use this setting unless you are familiar with lsp-mode internals and you are sure that all of your projects are following projectile / project.el conventions. lsp-auto-select-workspace # Type: boolean Default: t Shutdown or restart a single workspace. If set and the current buffer has only a single workspace associated with it, lsp-shutdown-workspace and lsp-restart-workspace will act on it without asking. lsp-auto-touch-files # Type: boolean Default: t If non-nil ensure the files exist before sending textDocument/didOpen notification. lsp-before-apply-edits-hook # Type: hook Default: nil Hooks to run before applying edits. lsp-before-initialize-hook # Type: hook Default: nil List of functions to be called before a Language Server has been initialized for a new workspace. lsp-before-open-hook # Type: hook Default: nil List of functions to be called before a new file with LSP support is opened. lsp-before-save-edits # Type: boolean Default: t If non-nil, lsp-mode will apply edits suggested by the language server before saving a document. lsp-client-packages # Type: (repeat symbol) Default: (ccls lsp-actionscript lsp-ada lsp-angular lsp-ansible lsp-awk lsp-astro lsp-bash lsp-beancount lsp-clangd lsp-clojure lsp-cmake lsp-credo lsp-crystal lsp-csharp lsp-css lsp-d lsp-dart lsp-dhall lsp-docker lsp-dockerfile lsp-elm lsp-elixir lsp-emmet lsp-erlang lsp-eslint lsp-fortran lsp-fsharp lsp-gdscript lsp-go lsp-gleam lsp-glsl lsp-graphql lsp-hack lsp-grammarly lsp-groovy lsp-haskell lsp-haxe lsp-idris lsp-java lsp-javascript lsp-json lsp-kotlin lsp-latex lsp-ltex lsp-lua lsp-markdown lsp-marksman lsp-mdx lsp-mint lsp-move lsp-nginx lsp-nim lsp-nix lsp-magik lsp-metals lsp-mssql lsp-ocaml lsp-openscad lsp-pascal lsp-perl lsp-perlnavigator lsp-pls lsp-php lsp-pwsh lsp-pyls lsp-pylsp lsp-pyright lsp-python-ms lsp-purescript lsp-r lsp-racket lsp-remark lsp-ruff-lsp lsp-rf lsp-rubocop lsp-rust lsp-semgrep lsp-shader lsp-solargraph lsp-sorbet lsp-sourcekit lsp-sonarlint lsp-tailwindcss lsp-tex lsp-terraform lsp-toml lsp-ttcn3 lsp-typeprof lsp-v lsp-vala lsp-verilog lsp-vetur lsp-volar lsp-vhdl lsp-vimscript lsp-xml lsp-yaml lsp-ruby-lsp lsp-ruby-syntax-tree lsp-sqls lsp-svelte lsp-steep lsp-tilt lsp-zig) List of the clients to be automatically required. lsp-completion-default-behaviour # Type: (choice (const :insert :tag Default completion inserts) (const :replace :tag Default completion replaces)) Default: :replace Default behaviour of InsertReplaceEdit . lsp-configure-hook # Type: hook Default: ((closure (flymake-mode flymake-diagnostic-functions lsp-diagnostics-mode flycheck-checkers flycheck-checker flycheck-check-syntax-automatically flycheck-mode t) nil (if lsp-auto-configure (progn (lsp-diagnostics--enable)))) (closure (company-abort-on-unique-match company-backends yas-indent-line t) nil (if (and lsp-auto-configure lsp-completion-enable) (progn (lsp-completion--enable))))) Hooks to run when lsp-configure-buffer is called. lsp-debounce-full-sync-notifications # Type: boolean Default: t If non-nil debounce full sync events. This flag affects only servers which do not support incremental updates. lsp-debounce-full-sync-notifications-interval # Type: float Default: 1.0 Time to wait before sending full sync synchronization after buffer modification. lsp-default-create-error-handler-fn # Type: function Default: nil Default error handler customization. Handler should give METHOD as argument and return function of one argument ERROR. lsp-details-face # Type: face Default: ((t :height 0.8 :inherit shadow)) Used to display additional information throughout lsp . Things like line numbers, signatures, ... are considered additional information. Often, additional faces are defined that inherit from this face by default, like lsp-signature-face , and they may be customized for finer control. lsp-diagnostics-updated-hook # Type: hook Default: nil Hooks to run after diagnostics are received. lsp-disabled-clients # Type: (repeat (symbol)) Default: nil A list of disabled/blacklisted clients. Each entry in the list can be either: a symbol, the server-id for the LSP client, or a cons pair (MAJOR-MODE . CLIENTS), where MAJOR-MODE is the major-mode, and CLIENTS is either a client or a list of clients. This option can also be used as a file- or directory-local variable to disable a language server for individual files or directories/projects respectively. lsp-display-inline-image # Type: boolean Default: t Showing inline image or not. lsp-document-sync-method # Type: (choice (const :tag Documents should not be synced at all. nil) (const :tag Documents are synced by always sending the full content of the document. lsp--sync-full) (const :tag Documents are synced by always sending incremental changes to the document. lsp--sync-incremental) (const :tag Use the method recommended by the language server. nil)) Default: nil How to sync the document with the language server. lsp-eldoc-enable-hover # Type: boolean Default: t If non-nil, eldoc will display hover info when it is present. lsp-eldoc-render-all # Type: boolean Default: nil Display all of the info returned by document/onHover. If this is set to nil, eldoc will show only the symbol information. lsp-enable-dap-auto-configure # Type: boolean Default: t If non-nil, enable dap-auto-configure-mode . lsp-enable-file-watchers # Type: boolean Default: t If non-nil lsp-mode will watch the files in the workspace if the server has requested that. lsp-enable-folding # Type: boolean Default: t Enable/disable code folding support. lsp-enable-imenu # Type: boolean Default: t If non-nil, automatically enable imenu integration when server provides textDocument/documentSymbol . lsp-enable-indentation # Type: boolean Default: t Indent regions using the file formatting functionality provided by the language server. lsp-enable-links # Type: boolean Default: t If non-nil, all references to links in a file will be made clickable, if supported by the language server. lsp-enable-on-type-formatting # Type: boolean Default: t Enable textDocument/onTypeFormatting integration. lsp-enable-suggest-server-download # Type: boolean Default: t When non-nil enable server downloading suggestions. lsp-enable-symbol-highlighting # Type: boolean Default: t Highlight references of the symbol at point. lsp-enable-text-document-color # Type: boolean Default: t Enable textDocument/documentColor integration. lsp-enable-xref # Type: boolean Default: t Enable xref integration. lsp-face-highlight-read # Type: face Default: ((t :inherit highlight :underline t)) Face used for highlighting symbols being read. lsp-face-highlight-textual # Type: face Default: ((t :inherit highlight)) Face used for textual occurrences of symbols. lsp-face-highlight-write # Type: face Default: ((t :inherit highlight :weight bold)) Face used for highlighting symbols being written to. lsp-face-rename # Type: face Default: ((t :underline t)) Face used to highlight the identifier being renamed. Renaming can be done using lsp-rename . lsp-file-watch-ignored-directories # Type: (repeat string) Default: ([/\\\\]\\.git\\' [/\\\\]\\.github\\' [/\\\\]\\.gitlab\\' [/\\\\]\\.circleci\\' [/\\\\]\\.hg\\' [/\\\\]\\.bzr\\' [/\\\\]_darcs\\' [/\\\\]\\.svn\\' [/\\\\]_FOSSIL_\\' [/\\\\]\\.idea\\' [/\\\\]\\.ensime_cache\\' [/\\\\]\\.eunit\\' [/\\\\]node_modules [/\\\\]\\.yarn\\' [/\\\\]\\.fslckout\\' [/\\\\]\\.tox\\' [/\\\\]\\.nox\\' [/\\\\]dist\\' [/\\\\]dist-newstyle\\' [/\\\\]\\.stack-work\\' [/\\\\]\\.bloop\\' [/\\\\]\\.metals\\' [/\\\\]target\\' [/\\\\]\\.ccls-cache\\' [/\\\\]\\.vscode\\' [/\\\\]\\.venv\\' [/\\\\]\\.mypy_cache\\' [/\\\\]\\.pytest_cache\\' [/\\\\]\\.build\\' [/\\\\]__pycache__\\' [/\\\\]\\.deps\\' [/\\\\]build-aux\\' [/\\\\]autom4te.cache\\' [/\\\\]\\.reference\\' [/\\\\]bazel-[^/\\\\]+\\' [/\\\\]\\.meta\\' [/\\\\]Library\\' [/\\\\]\\.lsp\\' [/\\\\]\\.clj-kondo\\' [/\\\\]\\.shadow-cljs\\' [/\\\\]\\.babel_cache\\' [/\\\\]\\.cpcache\\' [/\\\\]\\checkouts\\' [/\\\\]\\.gradle\\' [/\\\\]\\.m2\\' [/\\\\]bin/Debug\\' [/\\\\]obj\\' [/\\\\]_opam\\' [/\\\\]_build\\' [/\\\\]\\.elixir_ls\\' [/\\\\]\\.elixir-tools\\' [/\\\\]\\.terraform\\' [/\\\\]\\.terragrunt-cache\\' [/\\\\]\\.direnv\\') List of regexps matching directory paths which won`t be monitored when creating file watches. Customization of this variable is only honored at the global level or at a root of an lsp workspace. lsp-file-watch-ignored-files # Type: (repeat string) Default: ([/\\\\]flycheck_[^/\\\\]+\\' [/\\\\]\\.#[^/\\\\]+\\' [/\\\\][^/\\\\]+~\\') List of regexps matching files for which change events will not be sent to the server. This setting has no impact on whether a file-watch is created for a directory; it merely prevents notifications pertaining to matched files from being sent to the server. To prevent a file-watch from being created for a directory, customize lsp-file-watch-ignored-directories Customization of this variable is only honored at the global level or at a root of an lsp workspace. lsp-file-watch-threshold # Type: number Default: 1000 Show warning if the files to watch are more than. Set to nil to disable the warning. lsp-folding-line-folding-only # Type: boolean Default: nil If non-nil, only fold complete lines. lsp-folding-range-limit # Type: (choice (const :tag No limit. nil) (integer :tag Number of lines.)) Default: nil The maximum number of folding ranges to receive from the language server. lsp-guess-root-without-session # Type: boolean Default: nil Ignore the session file when calculating the project root. You almost always want to set lsp-auto-guess-root too. Do not use this setting unless you are familiar with lsp-mode internals and you are sure that all of your projects are following projectile / project.el conventions. lsp-gunzip-script # Type: string Default: (closure (view-inhibit-help-message lsp-help-mode-abbrev-table lsp-help-mode-syntax-table eldoc-documentation-default cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines company-minimum-prefix-length dap-ui-menu-items dap-auto-configure-mode yas-also-auto-indent-first-line yas-wrap-around-region yas-indent-line yas-inhibit-overlay-modification-protection t) nil (cond ((executable-find gzip) lsp-ext-gunzip-script) (t nil))) The script to decompress a gzipped file. Should be a format string with one argument for the file to be decompressed in place. lsp-idle-delay # Type: number Default: 0.5 Debounce interval for after-change-functions . lsp-inlay-hint-enable # Type: boolean Default: nil If non-nil it will enable inlay hints. lsp-inlay-hint-face # Type: face Default: ((t :inherit font-lock-comment-face)) The face to use for the JavaScript inlays. lsp-inlay-hint-param-format # Type: (string :tag String) Default: %s Format string for parameter inlays (part of the inlay face). lsp-inlay-hint-parameter-face # Type: face Default: ((t :inherit lsp-inlay-hint-face)) Face for inlay parameter hints (e.g. function parameter names at call-site). lsp-inlay-hint-type-face # Type: face Default: ((t :inherit lsp-inlay-hint-face)) Face for inlay type hints (e.g. inferred variable types). lsp-inlay-hint-type-format # Type: (string :tag String) Default: %s Format string for variable inlays (part of the inlay face). lsp-insert-final-newline # Type: boolean Default: t Insert a newline character at the end of the file if one does not exist. lsp-installation-buffer-face # Type: face Default: ((t :foreground green)) Face used for installation buffers still in progress. Used in lsp-select-installation-buffer . lsp-installation-finished-buffer-face # Type: face Default: ((t :foreground orange)) Face used for finished installation buffers. Used in lsp-select-installation-buffer . lsp-io-messages-max # Type: (choice (const :tag Unlimited t) (integer :tag Messages)) Default: t Maximum number of messages that can be locked in a lsp-io buffer. lsp-keep-workspace-alive # Type: boolean Default: t If non nil keep workspace alive when the last workspace buffer is closed. lsp-keymap-prefix # Type: string Default: s-l LSP-mode keymap prefix. lsp-log-io # Type: boolean Default: nil If non-nil, log all messages from the language server to a lsp-log buffer. lsp-log-io-allowlist-methods # Type: (repeat string) Default: nil The methods to filter before print to lsp-log-io. lsp-log-max # Type: (choice (const :tag Disable nil) (integer :tag lines) (const :tag Unlimited t)) Default: 1000 Maximum number of lines to keep in the log buffer. If nil, disable message logging. If t, log messages but don`t truncate the buffer when it becomes large. lsp-on-change-hook # Type: hook Default: nil Hooks to run when buffer has changed. lsp-on-idle-hook # Type: hook Default: nil Hooks to run after lsp-idle-delay . lsp-overlay-document-color-char # Type: string Default: \u25a0 Display the char represent the document color in overlay lsp-progress-function # Type: (choice (const :tag Use modeline lsp-on-progress-modeline) (const :tag Legacy(uses either progress-reporter' or spinner' based on lsp-progress-via-spinner') lsp-on-progress-legacy) (const ignore :tag Ignore) (function :tag Other function))` Default: lsp-on-progress-modeline Function for handling the progress notifications. lsp-progress-prefix # Type: string Default: \u231b Progress prefix. lsp-progress-spinner-type # Type: (choice :tag Choose a spinner by name (const 3-line-clock) (const 2-line-clock) (const flipping-line) (const rotating-line) (const progress-bar) (const progress-bar-filled) (const vertical-breathing) (const vertical-rising) (const horizontal-breathing) (const horizontal-breathing-long) (const horizontal-moving) (const minibox) (const triangle) (const box-in-box) (const box-in-circle) (const half-circle) (const moon)) Default: progress-bar Holds the type of spinner to be used in the mode-line. Takes a value accepted by spinner-start . lsp-progress-via-spinner # Type: boolean Default: t If non-nil, display LSP $/progress reports via a spinner in the modeline. lsp-references-exclude-definition # Type: boolean Default: nil If non-nil, exclude declarations when finding references. lsp-rename-placeholder-face # Type: face Default: ((t :inherit font-lock-variable-name-face)) Face used to display the rename placeholder in. When calling lsp-rename interactively, this will be the face of the new name. lsp-rename-use-prepare # Type: boolean Default: t Whether lsp-rename should do a prepareRename first. For some language servers, textDocument/prepareRename might be too slow, in which case this variable may be set to nil. lsp-rename will then use thing-at-point symbol to determine the symbol to rename at point. lsp-request-while-no-input-may-block # Type: boolean Default: nil Have lsp-request-while-no-input block unless non-essential is t. lsp-response-timeout # Type: (choice (number :tag Seconds) (const :tag No timeout nil)) Default: 10 Number of seconds to wait for a response from the language server before timing out. Nil if no timeout. lsp-restart # Type: (choice (const interactive) (const auto-restart) (const ignore)) Default: interactive Defines how server-exited events must be handled. lsp-server-install-dir # Type: directory Default: ~/.emacs.d/.cache/lsp Directory in which the servers will be installed. lsp-server-trace # Type: (choice (const :tag Disabled off) (const :tag Messages only messages) (const :tag Verbose verbose) (const :tag Default (disabled) nil)) Default: nil Request tracing on the server side. The actual trace output at each level depends on the language server in use. Changes take effect only when a new session is started. lsp-session-file # Type: file Default: ~/.emacs.d/.lsp-session-v1 File where session information is stored. lsp-signature-auto-activate # Type: (repeat (choice (const :tag On trigger chars pressed. :on-trigger-char) (const :tag After selected completion. :after-completion) (const :tag When the server has sent show signature help. :on-server-request))) Default: (:on-trigger-char :on-server-request) Auto activate signature conditions. lsp-signature-cycle # Type: boolean Default: t Whether lsp-signature-next and prev should cycle. lsp-signature-doc-lines # Type: number Default: 20 If number, limit the number of lines to show in the docs. lsp-signature-face # Type: face Default: ((t :inherit lsp-details-face)) Used to display signatures in imenu , .... lsp-signature-function # Type: function Default: lsp-lv-message The function used for displaying signature info. It will be called with one param - the signature info. When called with nil the signature info must be cleared. lsp-signature-posframe # Type: face Default: ((t :inherit tooltip)) Background and foreground for lsp-signature-posframe . lsp-signature-render-documentation # Type: boolean Default: t Display signature documentation in eldoc . lsp-symbol-highlighting-skip-current # Type: boolean Default: nil If non-nil skip current symbol when setting symbol highlights. lsp-symbol-kinds # Type: (alist :key-type integer :value-type string) Default: ((1 . File) (2 . Module) (3 . Namespace) (4 . Package) (5 . Class) (6 . Method) (7 . Property) (8 . Field) (9 . Constructor) (10 . Enum) (11 . Interface) (12 . Function) (13 . Variable) (14 . Constant) (15 . String) (16 . Number) (17 . Boolean) (18 . Array) (19 . Object) (20 . Key) (21 . Null) (22 . Enum Member) (23 . Struct) (24 . Event) (25 . Operator) (26 . Type Parameter)) Alist mapping SymbolKinds to human-readable strings. Various Symbol objects in the LSP protocol have an integral type, specifying what they are. This alist maps such type integrals to readable representations of them. See https://microsoft.github.io/language-server-protocol/specifications/specification-current/ , namespace SymbolKind. lsp-tar-script # Type: string Default: (closure (view-inhibit-help-message lsp-help-mode-abbrev-table lsp-help-mode-syntax-table eldoc-documentation-default cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines company-minimum-prefix-length dap-ui-menu-items dap-auto-configure-mode yas-also-auto-indent-first-line yas-wrap-around-region yas-indent-line yas-inhibit-overlay-modification-protection t) nil (cond ((executable-find tar) lsp-ext-tar-script) (t nil))) The script to decompress a .tar.gz file. Should be a format string with one argument for the file to be decompressed in place. lsp-tcp-connection-timeout # Type: number Default: 2 The timeout for tcp connection in seconds. lsp-trim-final-newlines # Type: boolean Default: t Trim all newlines after the final newline at the end of the file. lsp-trim-trailing-whitespace # Type: boolean Default: t Trim trailing whitespace on a line. lsp-unconfigure-hook # Type: hook Default: nil Hooks to run when lsp-unconfig-buffer is called. lsp-unzip-script # Type: string Default: (closure (view-inhibit-help-message lsp-help-mode-abbrev-table lsp-help-mode-syntax-table eldoc-documentation-default cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines company-minimum-prefix-length dap-ui-menu-items dap-auto-configure-mode yas-also-auto-indent-first-line yas-wrap-around-region yas-indent-line yas-inhibit-overlay-modification-protection t) nil (cond ((executable-find unzip) lsp-ext-unzip-script) ((executable-find powershell) lsp-ext-pwsh-script) (t nil))) The script to unzip. lsp-verify-signature # Type: boolean Default: t Whether to check GPG signatures of downloaded files. lsp-vscode-ext-url # Type: string Default: https://marketplace.visualstudio.com/_apis/public/gallery/publishers/%s/vsextensions/%s/%s/vspackage%s Vscode extension template url. lsp-warn-no-matched-clients # Type: boolean Default: t Whether to show messages when there are no supported clients. lsp-workspace-folders-changed-functions # Type: hook Default: nil Hooks to run after the folders has changed. The hook will receive two parameters list of added and removed folders. lsp-xref-force-references # Type: boolean Default: nil If non-nil threat everything as references(e. g. jump if only one item.)","title":"Core"},{"location":"page/settings/mode/#core","text":"","title":"Core"},{"location":"page/settings/mode/#lsp-after-apply-edits-hook","text":"Type: hook Default: nil Hooks to run when text edit is applied. It contains the operation source.","title":"lsp-after-apply-edits-hook"},{"location":"page/settings/mode/#lsp-after-diagnostics-hook","text":"Type: hook Default: nil Hooks to run after diagnostics are received.","title":"lsp-after-diagnostics-hook"},{"location":"page/settings/mode/#lsp-after-initialize-hook","text":"Type: hook Default: nil List of functions to be called after a Language Server has been initialized for a new workspace.","title":"lsp-after-initialize-hook"},{"location":"page/settings/mode/#lsp-after-open-hook","text":"Type: hook Default: nil List of functions to be called after a new file with LSP support is opened.","title":"lsp-after-open-hook"},{"location":"page/settings/mode/#lsp-after-uninitialized-functions","text":"Type: hook Default: nil List of functions to be called after a Language Server has been uninitialized.","title":"lsp-after-uninitialized-functions"},{"location":"page/settings/mode/#lsp-apply-edits-after-file-operations","text":"Type: boolean Default: t Whether to apply edits returned by server after file operations if any. Applicable only if server supports workspace.fileOperations for operations: workspace/willRenameFiles , workspace/willCreateFiles and workspace/willDeleteFiles .","title":"lsp-apply-edits-after-file-operations"},{"location":"page/settings/mode/#lsp-auto-configure","text":"Type: boolean Default: t Auto configure lsp-mode main features. When set to t lsp-mode will auto-configure completion, code-actions, breadcrumb, flycheck , flymake , imenu , symbol highlighting, lenses, links, and so on. For finer granularity you may use lsp-enable-* properties.","title":"lsp-auto-configure"},{"location":"page/settings/mode/#lsp-auto-execute-action","text":"Type: boolean Default: t Auto-execute single action.","title":"lsp-auto-execute-action"},{"location":"page/settings/mode/#lsp-auto-guess-root","text":"Type: boolean Default: nil Automatically guess the project root using projectile/project. Do not use this setting unless you are familiar with lsp-mode internals and you are sure that all of your projects are following projectile / project.el conventions.","title":"lsp-auto-guess-root"},{"location":"page/settings/mode/#lsp-auto-select-workspace","text":"Type: boolean Default: t Shutdown or restart a single workspace. If set and the current buffer has only a single workspace associated with it, lsp-shutdown-workspace and lsp-restart-workspace will act on it without asking.","title":"lsp-auto-select-workspace"},{"location":"page/settings/mode/#lsp-auto-touch-files","text":"Type: boolean Default: t If non-nil ensure the files exist before sending textDocument/didOpen notification.","title":"lsp-auto-touch-files"},{"location":"page/settings/mode/#lsp-before-apply-edits-hook","text":"Type: hook Default: nil Hooks to run before applying edits.","title":"lsp-before-apply-edits-hook"},{"location":"page/settings/mode/#lsp-before-initialize-hook","text":"Type: hook Default: nil List of functions to be called before a Language Server has been initialized for a new workspace.","title":"lsp-before-initialize-hook"},{"location":"page/settings/mode/#lsp-before-open-hook","text":"Type: hook Default: nil List of functions to be called before a new file with LSP support is opened.","title":"lsp-before-open-hook"},{"location":"page/settings/mode/#lsp-before-save-edits","text":"Type: boolean Default: t If non-nil, lsp-mode will apply edits suggested by the language server before saving a document.","title":"lsp-before-save-edits"},{"location":"page/settings/mode/#lsp-client-packages","text":"Type: (repeat symbol) Default: (ccls lsp-actionscript lsp-ada lsp-angular lsp-ansible lsp-awk lsp-astro lsp-bash lsp-beancount lsp-clangd lsp-clojure lsp-cmake lsp-credo lsp-crystal lsp-csharp lsp-css lsp-d lsp-dart lsp-dhall lsp-docker lsp-dockerfile lsp-elm lsp-elixir lsp-emmet lsp-erlang lsp-eslint lsp-fortran lsp-fsharp lsp-gdscript lsp-go lsp-gleam lsp-glsl lsp-graphql lsp-hack lsp-grammarly lsp-groovy lsp-haskell lsp-haxe lsp-idris lsp-java lsp-javascript lsp-json lsp-kotlin lsp-latex lsp-ltex lsp-lua lsp-markdown lsp-marksman lsp-mdx lsp-mint lsp-move lsp-nginx lsp-nim lsp-nix lsp-magik lsp-metals lsp-mssql lsp-ocaml lsp-openscad lsp-pascal lsp-perl lsp-perlnavigator lsp-pls lsp-php lsp-pwsh lsp-pyls lsp-pylsp lsp-pyright lsp-python-ms lsp-purescript lsp-r lsp-racket lsp-remark lsp-ruff-lsp lsp-rf lsp-rubocop lsp-rust lsp-semgrep lsp-shader lsp-solargraph lsp-sorbet lsp-sourcekit lsp-sonarlint lsp-tailwindcss lsp-tex lsp-terraform lsp-toml lsp-ttcn3 lsp-typeprof lsp-v lsp-vala lsp-verilog lsp-vetur lsp-volar lsp-vhdl lsp-vimscript lsp-xml lsp-yaml lsp-ruby-lsp lsp-ruby-syntax-tree lsp-sqls lsp-svelte lsp-steep lsp-tilt lsp-zig) List of the clients to be automatically required.","title":"lsp-client-packages"},{"location":"page/settings/mode/#lsp-completion-default-behaviour","text":"Type: (choice (const :insert :tag Default completion inserts) (const :replace :tag Default completion replaces)) Default: :replace Default behaviour of InsertReplaceEdit .","title":"lsp-completion-default-behaviour"},{"location":"page/settings/mode/#lsp-configure-hook","text":"Type: hook Default: ((closure (flymake-mode flymake-diagnostic-functions lsp-diagnostics-mode flycheck-checkers flycheck-checker flycheck-check-syntax-automatically flycheck-mode t) nil (if lsp-auto-configure (progn (lsp-diagnostics--enable)))) (closure (company-abort-on-unique-match company-backends yas-indent-line t) nil (if (and lsp-auto-configure lsp-completion-enable) (progn (lsp-completion--enable))))) Hooks to run when lsp-configure-buffer is called.","title":"lsp-configure-hook"},{"location":"page/settings/mode/#lsp-debounce-full-sync-notifications","text":"Type: boolean Default: t If non-nil debounce full sync events. This flag affects only servers which do not support incremental updates.","title":"lsp-debounce-full-sync-notifications"},{"location":"page/settings/mode/#lsp-debounce-full-sync-notifications-interval","text":"Type: float Default: 1.0 Time to wait before sending full sync synchronization after buffer modification.","title":"lsp-debounce-full-sync-notifications-interval"},{"location":"page/settings/mode/#lsp-default-create-error-handler-fn","text":"Type: function Default: nil Default error handler customization. Handler should give METHOD as argument and return function of one argument ERROR.","title":"lsp-default-create-error-handler-fn"},{"location":"page/settings/mode/#lsp-details-face","text":"Type: face Default: ((t :height 0.8 :inherit shadow)) Used to display additional information throughout lsp . Things like line numbers, signatures, ... are considered additional information. Often, additional faces are defined that inherit from this face by default, like lsp-signature-face , and they may be customized for finer control.","title":"lsp-details-face"},{"location":"page/settings/mode/#lsp-diagnostics-updated-hook","text":"Type: hook Default: nil Hooks to run after diagnostics are received.","title":"lsp-diagnostics-updated-hook"},{"location":"page/settings/mode/#lsp-disabled-clients","text":"Type: (repeat (symbol)) Default: nil A list of disabled/blacklisted clients. Each entry in the list can be either: a symbol, the server-id for the LSP client, or a cons pair (MAJOR-MODE . CLIENTS), where MAJOR-MODE is the major-mode, and CLIENTS is either a client or a list of clients. This option can also be used as a file- or directory-local variable to disable a language server for individual files or directories/projects respectively.","title":"lsp-disabled-clients"},{"location":"page/settings/mode/#lsp-display-inline-image","text":"Type: boolean Default: t Showing inline image or not.","title":"lsp-display-inline-image"},{"location":"page/settings/mode/#lsp-document-sync-method","text":"Type: (choice (const :tag Documents should not be synced at all. nil) (const :tag Documents are synced by always sending the full content of the document. lsp--sync-full) (const :tag Documents are synced by always sending incremental changes to the document. lsp--sync-incremental) (const :tag Use the method recommended by the language server. nil)) Default: nil How to sync the document with the language server.","title":"lsp-document-sync-method"},{"location":"page/settings/mode/#lsp-eldoc-enable-hover","text":"Type: boolean Default: t If non-nil, eldoc will display hover info when it is present.","title":"lsp-eldoc-enable-hover"},{"location":"page/settings/mode/#lsp-eldoc-render-all","text":"Type: boolean Default: nil Display all of the info returned by document/onHover. If this is set to nil, eldoc will show only the symbol information.","title":"lsp-eldoc-render-all"},{"location":"page/settings/mode/#lsp-enable-dap-auto-configure","text":"Type: boolean Default: t If non-nil, enable dap-auto-configure-mode .","title":"lsp-enable-dap-auto-configure"},{"location":"page/settings/mode/#lsp-enable-file-watchers","text":"Type: boolean Default: t If non-nil lsp-mode will watch the files in the workspace if the server has requested that.","title":"lsp-enable-file-watchers"},{"location":"page/settings/mode/#lsp-enable-folding","text":"Type: boolean Default: t Enable/disable code folding support.","title":"lsp-enable-folding"},{"location":"page/settings/mode/#lsp-enable-imenu","text":"Type: boolean Default: t If non-nil, automatically enable imenu integration when server provides textDocument/documentSymbol .","title":"lsp-enable-imenu"},{"location":"page/settings/mode/#lsp-enable-indentation","text":"Type: boolean Default: t Indent regions using the file formatting functionality provided by the language server.","title":"lsp-enable-indentation"},{"location":"page/settings/mode/#lsp-enable-links","text":"Type: boolean Default: t If non-nil, all references to links in a file will be made clickable, if supported by the language server.","title":"lsp-enable-links"},{"location":"page/settings/mode/#lsp-enable-on-type-formatting","text":"Type: boolean Default: t Enable textDocument/onTypeFormatting integration.","title":"lsp-enable-on-type-formatting"},{"location":"page/settings/mode/#lsp-enable-suggest-server-download","text":"Type: boolean Default: t When non-nil enable server downloading suggestions.","title":"lsp-enable-suggest-server-download"},{"location":"page/settings/mode/#lsp-enable-symbol-highlighting","text":"Type: boolean Default: t Highlight references of the symbol at point.","title":"lsp-enable-symbol-highlighting"},{"location":"page/settings/mode/#lsp-enable-text-document-color","text":"Type: boolean Default: t Enable textDocument/documentColor integration.","title":"lsp-enable-text-document-color"},{"location":"page/settings/mode/#lsp-enable-xref","text":"Type: boolean Default: t Enable xref integration.","title":"lsp-enable-xref"},{"location":"page/settings/mode/#lsp-face-highlight-read","text":"Type: face Default: ((t :inherit highlight :underline t)) Face used for highlighting symbols being read.","title":"lsp-face-highlight-read"},{"location":"page/settings/mode/#lsp-face-highlight-textual","text":"Type: face Default: ((t :inherit highlight)) Face used for textual occurrences of symbols.","title":"lsp-face-highlight-textual"},{"location":"page/settings/mode/#lsp-face-highlight-write","text":"Type: face Default: ((t :inherit highlight :weight bold)) Face used for highlighting symbols being written to.","title":"lsp-face-highlight-write"},{"location":"page/settings/mode/#lsp-face-rename","text":"Type: face Default: ((t :underline t)) Face used to highlight the identifier being renamed. Renaming can be done using lsp-rename .","title":"lsp-face-rename"},{"location":"page/settings/mode/#lsp-file-watch-ignored-directories","text":"Type: (repeat string) Default: ([/\\\\]\\.git\\' [/\\\\]\\.github\\' [/\\\\]\\.gitlab\\' [/\\\\]\\.circleci\\' [/\\\\]\\.hg\\' [/\\\\]\\.bzr\\' [/\\\\]_darcs\\' [/\\\\]\\.svn\\' [/\\\\]_FOSSIL_\\' [/\\\\]\\.idea\\' [/\\\\]\\.ensime_cache\\' [/\\\\]\\.eunit\\' [/\\\\]node_modules [/\\\\]\\.yarn\\' [/\\\\]\\.fslckout\\' [/\\\\]\\.tox\\' [/\\\\]\\.nox\\' [/\\\\]dist\\' [/\\\\]dist-newstyle\\' [/\\\\]\\.stack-work\\' [/\\\\]\\.bloop\\' [/\\\\]\\.metals\\' [/\\\\]target\\' [/\\\\]\\.ccls-cache\\' [/\\\\]\\.vscode\\' [/\\\\]\\.venv\\' [/\\\\]\\.mypy_cache\\' [/\\\\]\\.pytest_cache\\' [/\\\\]\\.build\\' [/\\\\]__pycache__\\' [/\\\\]\\.deps\\' [/\\\\]build-aux\\' [/\\\\]autom4te.cache\\' [/\\\\]\\.reference\\' [/\\\\]bazel-[^/\\\\]+\\' [/\\\\]\\.meta\\' [/\\\\]Library\\' [/\\\\]\\.lsp\\' [/\\\\]\\.clj-kondo\\' [/\\\\]\\.shadow-cljs\\' [/\\\\]\\.babel_cache\\' [/\\\\]\\.cpcache\\' [/\\\\]\\checkouts\\' [/\\\\]\\.gradle\\' [/\\\\]\\.m2\\' [/\\\\]bin/Debug\\' [/\\\\]obj\\' [/\\\\]_opam\\' [/\\\\]_build\\' [/\\\\]\\.elixir_ls\\' [/\\\\]\\.elixir-tools\\' [/\\\\]\\.terraform\\' [/\\\\]\\.terragrunt-cache\\' [/\\\\]\\.direnv\\') List of regexps matching directory paths which won`t be monitored when creating file watches. Customization of this variable is only honored at the global level or at a root of an lsp workspace.","title":"lsp-file-watch-ignored-directories"},{"location":"page/settings/mode/#lsp-file-watch-ignored-files","text":"Type: (repeat string) Default: ([/\\\\]flycheck_[^/\\\\]+\\' [/\\\\]\\.#[^/\\\\]+\\' [/\\\\][^/\\\\]+~\\') List of regexps matching files for which change events will not be sent to the server. This setting has no impact on whether a file-watch is created for a directory; it merely prevents notifications pertaining to matched files from being sent to the server. To prevent a file-watch from being created for a directory, customize lsp-file-watch-ignored-directories Customization of this variable is only honored at the global level or at a root of an lsp workspace.","title":"lsp-file-watch-ignored-files"},{"location":"page/settings/mode/#lsp-file-watch-threshold","text":"Type: number Default: 1000 Show warning if the files to watch are more than. Set to nil to disable the warning.","title":"lsp-file-watch-threshold"},{"location":"page/settings/mode/#lsp-folding-line-folding-only","text":"Type: boolean Default: nil If non-nil, only fold complete lines.","title":"lsp-folding-line-folding-only"},{"location":"page/settings/mode/#lsp-folding-range-limit","text":"Type: (choice (const :tag No limit. nil) (integer :tag Number of lines.)) Default: nil The maximum number of folding ranges to receive from the language server.","title":"lsp-folding-range-limit"},{"location":"page/settings/mode/#lsp-guess-root-without-session","text":"Type: boolean Default: nil Ignore the session file when calculating the project root. You almost always want to set lsp-auto-guess-root too. Do not use this setting unless you are familiar with lsp-mode internals and you are sure that all of your projects are following projectile / project.el conventions.","title":"lsp-guess-root-without-session"},{"location":"page/settings/mode/#lsp-gunzip-script","text":"Type: string Default: (closure (view-inhibit-help-message lsp-help-mode-abbrev-table lsp-help-mode-syntax-table eldoc-documentation-default cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines company-minimum-prefix-length dap-ui-menu-items dap-auto-configure-mode yas-also-auto-indent-first-line yas-wrap-around-region yas-indent-line yas-inhibit-overlay-modification-protection t) nil (cond ((executable-find gzip) lsp-ext-gunzip-script) (t nil))) The script to decompress a gzipped file. Should be a format string with one argument for the file to be decompressed in place.","title":"lsp-gunzip-script"},{"location":"page/settings/mode/#lsp-idle-delay","text":"Type: number Default: 0.5 Debounce interval for after-change-functions .","title":"lsp-idle-delay"},{"location":"page/settings/mode/#lsp-inlay-hint-enable","text":"Type: boolean Default: nil If non-nil it will enable inlay hints.","title":"lsp-inlay-hint-enable"},{"location":"page/settings/mode/#lsp-inlay-hint-face","text":"Type: face Default: ((t :inherit font-lock-comment-face)) The face to use for the JavaScript inlays.","title":"lsp-inlay-hint-face"},{"location":"page/settings/mode/#lsp-inlay-hint-param-format","text":"Type: (string :tag String) Default: %s Format string for parameter inlays (part of the inlay face).","title":"lsp-inlay-hint-param-format"},{"location":"page/settings/mode/#lsp-inlay-hint-parameter-face","text":"Type: face Default: ((t :inherit lsp-inlay-hint-face)) Face for inlay parameter hints (e.g. function parameter names at call-site).","title":"lsp-inlay-hint-parameter-face"},{"location":"page/settings/mode/#lsp-inlay-hint-type-face","text":"Type: face Default: ((t :inherit lsp-inlay-hint-face)) Face for inlay type hints (e.g. inferred variable types).","title":"lsp-inlay-hint-type-face"},{"location":"page/settings/mode/#lsp-inlay-hint-type-format","text":"Type: (string :tag String) Default: %s Format string for variable inlays (part of the inlay face).","title":"lsp-inlay-hint-type-format"},{"location":"page/settings/mode/#lsp-insert-final-newline","text":"Type: boolean Default: t Insert a newline character at the end of the file if one does not exist.","title":"lsp-insert-final-newline"},{"location":"page/settings/mode/#lsp-installation-buffer-face","text":"Type: face Default: ((t :foreground green)) Face used for installation buffers still in progress. Used in lsp-select-installation-buffer .","title":"lsp-installation-buffer-face"},{"location":"page/settings/mode/#lsp-installation-finished-buffer-face","text":"Type: face Default: ((t :foreground orange)) Face used for finished installation buffers. Used in lsp-select-installation-buffer .","title":"lsp-installation-finished-buffer-face"},{"location":"page/settings/mode/#lsp-io-messages-max","text":"Type: (choice (const :tag Unlimited t) (integer :tag Messages)) Default: t Maximum number of messages that can be locked in a lsp-io buffer.","title":"lsp-io-messages-max"},{"location":"page/settings/mode/#lsp-keep-workspace-alive","text":"Type: boolean Default: t If non nil keep workspace alive when the last workspace buffer is closed.","title":"lsp-keep-workspace-alive"},{"location":"page/settings/mode/#lsp-keymap-prefix","text":"Type: string Default: s-l LSP-mode keymap prefix.","title":"lsp-keymap-prefix"},{"location":"page/settings/mode/#lsp-log-io","text":"Type: boolean Default: nil If non-nil, log all messages from the language server to a lsp-log buffer.","title":"lsp-log-io"},{"location":"page/settings/mode/#lsp-log-io-allowlist-methods","text":"Type: (repeat string) Default: nil The methods to filter before print to lsp-log-io.","title":"lsp-log-io-allowlist-methods"},{"location":"page/settings/mode/#lsp-log-max","text":"Type: (choice (const :tag Disable nil) (integer :tag lines) (const :tag Unlimited t)) Default: 1000 Maximum number of lines to keep in the log buffer. If nil, disable message logging. If t, log messages but don`t truncate the buffer when it becomes large.","title":"lsp-log-max"},{"location":"page/settings/mode/#lsp-on-change-hook","text":"Type: hook Default: nil Hooks to run when buffer has changed.","title":"lsp-on-change-hook"},{"location":"page/settings/mode/#lsp-on-idle-hook","text":"Type: hook Default: nil Hooks to run after lsp-idle-delay .","title":"lsp-on-idle-hook"},{"location":"page/settings/mode/#lsp-overlay-document-color-char","text":"Type: string Default: \u25a0 Display the char represent the document color in overlay","title":"lsp-overlay-document-color-char"},{"location":"page/settings/mode/#lsp-progress-function","text":"Type: (choice (const :tag Use modeline lsp-on-progress-modeline) (const :tag Legacy(uses either progress-reporter' or spinner' based on lsp-progress-via-spinner') lsp-on-progress-legacy) (const ignore :tag Ignore) (function :tag Other function))` Default: lsp-on-progress-modeline Function for handling the progress notifications.","title":"lsp-progress-function"},{"location":"page/settings/mode/#lsp-progress-prefix","text":"Type: string Default: \u231b Progress prefix.","title":"lsp-progress-prefix"},{"location":"page/settings/mode/#lsp-progress-spinner-type","text":"Type: (choice :tag Choose a spinner by name (const 3-line-clock) (const 2-line-clock) (const flipping-line) (const rotating-line) (const progress-bar) (const progress-bar-filled) (const vertical-breathing) (const vertical-rising) (const horizontal-breathing) (const horizontal-breathing-long) (const horizontal-moving) (const minibox) (const triangle) (const box-in-box) (const box-in-circle) (const half-circle) (const moon)) Default: progress-bar Holds the type of spinner to be used in the mode-line. Takes a value accepted by spinner-start .","title":"lsp-progress-spinner-type"},{"location":"page/settings/mode/#lsp-progress-via-spinner","text":"Type: boolean Default: t If non-nil, display LSP $/progress reports via a spinner in the modeline.","title":"lsp-progress-via-spinner"},{"location":"page/settings/mode/#lsp-references-exclude-definition","text":"Type: boolean Default: nil If non-nil, exclude declarations when finding references.","title":"lsp-references-exclude-definition"},{"location":"page/settings/mode/#lsp-rename-placeholder-face","text":"Type: face Default: ((t :inherit font-lock-variable-name-face)) Face used to display the rename placeholder in. When calling lsp-rename interactively, this will be the face of the new name.","title":"lsp-rename-placeholder-face"},{"location":"page/settings/mode/#lsp-rename-use-prepare","text":"Type: boolean Default: t Whether lsp-rename should do a prepareRename first. For some language servers, textDocument/prepareRename might be too slow, in which case this variable may be set to nil. lsp-rename will then use thing-at-point symbol to determine the symbol to rename at point.","title":"lsp-rename-use-prepare"},{"location":"page/settings/mode/#lsp-request-while-no-input-may-block","text":"Type: boolean Default: nil Have lsp-request-while-no-input block unless non-essential is t.","title":"lsp-request-while-no-input-may-block"},{"location":"page/settings/mode/#lsp-response-timeout","text":"Type: (choice (number :tag Seconds) (const :tag No timeout nil)) Default: 10 Number of seconds to wait for a response from the language server before timing out. Nil if no timeout.","title":"lsp-response-timeout"},{"location":"page/settings/mode/#lsp-restart","text":"Type: (choice (const interactive) (const auto-restart) (const ignore)) Default: interactive Defines how server-exited events must be handled.","title":"lsp-restart"},{"location":"page/settings/mode/#lsp-server-install-dir","text":"Type: directory Default: ~/.emacs.d/.cache/lsp Directory in which the servers will be installed.","title":"lsp-server-install-dir"},{"location":"page/settings/mode/#lsp-server-trace","text":"Type: (choice (const :tag Disabled off) (const :tag Messages only messages) (const :tag Verbose verbose) (const :tag Default (disabled) nil)) Default: nil Request tracing on the server side. The actual trace output at each level depends on the language server in use. Changes take effect only when a new session is started.","title":"lsp-server-trace"},{"location":"page/settings/mode/#lsp-session-file","text":"Type: file Default: ~/.emacs.d/.lsp-session-v1 File where session information is stored.","title":"lsp-session-file"},{"location":"page/settings/mode/#lsp-signature-auto-activate","text":"Type: (repeat (choice (const :tag On trigger chars pressed. :on-trigger-char) (const :tag After selected completion. :after-completion) (const :tag When the server has sent show signature help. :on-server-request))) Default: (:on-trigger-char :on-server-request) Auto activate signature conditions.","title":"lsp-signature-auto-activate"},{"location":"page/settings/mode/#lsp-signature-cycle","text":"Type: boolean Default: t Whether lsp-signature-next and prev should cycle.","title":"lsp-signature-cycle"},{"location":"page/settings/mode/#lsp-signature-doc-lines","text":"Type: number Default: 20 If number, limit the number of lines to show in the docs.","title":"lsp-signature-doc-lines"},{"location":"page/settings/mode/#lsp-signature-face","text":"Type: face Default: ((t :inherit lsp-details-face)) Used to display signatures in imenu , ....","title":"lsp-signature-face"},{"location":"page/settings/mode/#lsp-signature-function","text":"Type: function Default: lsp-lv-message The function used for displaying signature info. It will be called with one param - the signature info. When called with nil the signature info must be cleared.","title":"lsp-signature-function"},{"location":"page/settings/mode/#lsp-signature-posframe","text":"Type: face Default: ((t :inherit tooltip)) Background and foreground for lsp-signature-posframe .","title":"lsp-signature-posframe"},{"location":"page/settings/mode/#lsp-signature-render-documentation","text":"Type: boolean Default: t Display signature documentation in eldoc .","title":"lsp-signature-render-documentation"},{"location":"page/settings/mode/#lsp-symbol-highlighting-skip-current","text":"Type: boolean Default: nil If non-nil skip current symbol when setting symbol highlights.","title":"lsp-symbol-highlighting-skip-current"},{"location":"page/settings/mode/#lsp-symbol-kinds","text":"Type: (alist :key-type integer :value-type string) Default: ((1 . File) (2 . Module) (3 . Namespace) (4 . Package) (5 . Class) (6 . Method) (7 . Property) (8 . Field) (9 . Constructor) (10 . Enum) (11 . Interface) (12 . Function) (13 . Variable) (14 . Constant) (15 . String) (16 . Number) (17 . Boolean) (18 . Array) (19 . Object) (20 . Key) (21 . Null) (22 . Enum Member) (23 . Struct) (24 . Event) (25 . Operator) (26 . Type Parameter)) Alist mapping SymbolKinds to human-readable strings. Various Symbol objects in the LSP protocol have an integral type, specifying what they are. This alist maps such type integrals to readable representations of them. See https://microsoft.github.io/language-server-protocol/specifications/specification-current/ , namespace SymbolKind.","title":"lsp-symbol-kinds"},{"location":"page/settings/mode/#lsp-tar-script","text":"Type: string Default: (closure (view-inhibit-help-message lsp-help-mode-abbrev-table lsp-help-mode-syntax-table eldoc-documentation-default cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines company-minimum-prefix-length dap-ui-menu-items dap-auto-configure-mode yas-also-auto-indent-first-line yas-wrap-around-region yas-indent-line yas-inhibit-overlay-modification-protection t) nil (cond ((executable-find tar) lsp-ext-tar-script) (t nil))) The script to decompress a .tar.gz file. Should be a format string with one argument for the file to be decompressed in place.","title":"lsp-tar-script"},{"location":"page/settings/mode/#lsp-tcp-connection-timeout","text":"Type: number Default: 2 The timeout for tcp connection in seconds.","title":"lsp-tcp-connection-timeout"},{"location":"page/settings/mode/#lsp-trim-final-newlines","text":"Type: boolean Default: t Trim all newlines after the final newline at the end of the file.","title":"lsp-trim-final-newlines"},{"location":"page/settings/mode/#lsp-trim-trailing-whitespace","text":"Type: boolean Default: t Trim trailing whitespace on a line.","title":"lsp-trim-trailing-whitespace"},{"location":"page/settings/mode/#lsp-unconfigure-hook","text":"Type: hook Default: nil Hooks to run when lsp-unconfig-buffer is called.","title":"lsp-unconfigure-hook"},{"location":"page/settings/mode/#lsp-unzip-script","text":"Type: string Default: (closure (view-inhibit-help-message lsp-help-mode-abbrev-table lsp-help-mode-syntax-table eldoc-documentation-default cl-struct-lsp--log-entry-tags cl-struct-lsp-session-tags cl-struct-lsp--workspace-tags cl-struct-lsp--registered-capability-tags lsp-mode-menu cl-struct-lsp--folding-range-tags cl-struct-lsp-watch-tags cl-struct-lsp--client-tags lsp--log-lines company-minimum-prefix-length dap-ui-menu-items dap-auto-configure-mode yas-also-auto-indent-first-line yas-wrap-around-region yas-indent-line yas-inhibit-overlay-modification-protection t) nil (cond ((executable-find unzip) lsp-ext-unzip-script) ((executable-find powershell) lsp-ext-pwsh-script) (t nil))) The script to unzip.","title":"lsp-unzip-script"},{"location":"page/settings/mode/#lsp-verify-signature","text":"Type: boolean Default: t Whether to check GPG signatures of downloaded files.","title":"lsp-verify-signature"},{"location":"page/settings/mode/#lsp-vscode-ext-url","text":"Type: string Default: https://marketplace.visualstudio.com/_apis/public/gallery/publishers/%s/vsextensions/%s/%s/vspackage%s Vscode extension template url.","title":"lsp-vscode-ext-url"},{"location":"page/settings/mode/#lsp-warn-no-matched-clients","text":"Type: boolean Default: t Whether to show messages when there are no supported clients.","title":"lsp-warn-no-matched-clients"},{"location":"page/settings/mode/#lsp-workspace-folders-changed-functions","text":"Type: hook Default: nil Hooks to run after the folders has changed. The hook will receive two parameters list of added and removed folders.","title":"lsp-workspace-folders-changed-functions"},{"location":"page/settings/mode/#lsp-xref-force-references","text":"Type: boolean Default: nil If non-nil threat everything as references(e. g. jump if only one item.)","title":"lsp-xref-force-references"},{"location":"page/settings/modeline/","text":"Modeline # lsp-modeline-code-action-fallback-icon # Type: string Default: \ud83d\udca1 Define what should display on the modeline when code actions are available. lsp-modeline-code-actions-enable # Type: boolean Default: t Whether to show code actions on modeline. lsp-modeline-code-actions-face # Type: face Default: ((t :inherit homoglyph)) Face used to code action text on modeline. lsp-modeline-code-actions-kind-regex # Type: string Default: $\\|quickfix.*\\|refactor.* Regex for the code actions kinds to show in the modeline. lsp-modeline-code-actions-preferred-face # Type: face Default: ((t :foreground yellow)) Face used to code action text on modeline. lsp-modeline-code-actions-segments # Type: (repeat (choice (const :tag Show the lightbulb icon icon) (const :tag Show the name of the preferred code action name) (const :tag Show the count of how many code actions available count))) Default: (count icon) Define what should display on the modeline when code actions are available. lsp-modeline-diagnostics-enable # Type: boolean Default: t Whether to show diagnostics on modeline. lsp-modeline-diagnostics-scope # Type: (choice (const :tag File :file) (const :tag Project :workspace) (const :tag All Projects :global)) Default: :workspace The modeline diagnostics scope. lsp-modeline-workspace-status-enable # Type: boolean Default: t Whether to show workspace status on modeline.","title":"Modeline"},{"location":"page/settings/modeline/#modeline","text":"","title":"Modeline"},{"location":"page/settings/modeline/#lsp-modeline-code-action-fallback-icon","text":"Type: string Default: \ud83d\udca1 Define what should display on the modeline when code actions are available.","title":"lsp-modeline-code-action-fallback-icon"},{"location":"page/settings/modeline/#lsp-modeline-code-actions-enable","text":"Type: boolean Default: t Whether to show code actions on modeline.","title":"lsp-modeline-code-actions-enable"},{"location":"page/settings/modeline/#lsp-modeline-code-actions-face","text":"Type: face Default: ((t :inherit homoglyph)) Face used to code action text on modeline.","title":"lsp-modeline-code-actions-face"},{"location":"page/settings/modeline/#lsp-modeline-code-actions-kind-regex","text":"Type: string Default: $\\|quickfix.*\\|refactor.* Regex for the code actions kinds to show in the modeline.","title":"lsp-modeline-code-actions-kind-regex"},{"location":"page/settings/modeline/#lsp-modeline-code-actions-preferred-face","text":"Type: face Default: ((t :foreground yellow)) Face used to code action text on modeline.","title":"lsp-modeline-code-actions-preferred-face"},{"location":"page/settings/modeline/#lsp-modeline-code-actions-segments","text":"Type: (repeat (choice (const :tag Show the lightbulb icon icon) (const :tag Show the name of the preferred code action name) (const :tag Show the count of how many code actions available count))) Default: (count icon) Define what should display on the modeline when code actions are available.","title":"lsp-modeline-code-actions-segments"},{"location":"page/settings/modeline/#lsp-modeline-diagnostics-enable","text":"Type: boolean Default: t Whether to show diagnostics on modeline.","title":"lsp-modeline-diagnostics-enable"},{"location":"page/settings/modeline/#lsp-modeline-diagnostics-scope","text":"Type: (choice (const :tag File :file) (const :tag Project :workspace) (const :tag All Projects :global)) Default: :workspace The modeline diagnostics scope.","title":"lsp-modeline-diagnostics-scope"},{"location":"page/settings/modeline/#lsp-modeline-workspace-status-enable","text":"Type: boolean Default: t Whether to show workspace status on modeline.","title":"lsp-modeline-workspace-status-enable"},{"location":"page/settings/semantic-tokens/","text":"Semantic tokens # lsp-face-semhl-class # Type: face Default: ((t (:inherit font-lock-type-face))) Face used for classes. lsp-face-semhl-comment # Type: face Default: ((t (:inherit font-lock-comment-face))) Face used for comments. lsp-face-semhl-constant # Type: face Default: ((t :inherit font-lock-constant-face)) Face used for semantic highlighting scopes matching constant scopes. lsp-face-semhl-default-library # Type: face Default: ((t :inherit font-lock-builtin-face)) Face used for defaultLibrary modifier. lsp-face-semhl-definition # Type: face Default: ((t :inherit font-lock-function-name-face :weight bold)) Face used for definition modifier. lsp-face-semhl-deprecated # Type: face Default: ((t :strike-through t)) Face used for semantic highlighting scopes matching constant scopes. lsp-face-semhl-enum # Type: face Default: ((t (:inherit font-lock-type-face))) Face used for enums. lsp-face-semhl-event # Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for event properties. lsp-face-semhl-function # Type: face Default: ((t :inherit font-lock-function-name-face)) Face used for semantic highlighting scopes matching entity.name.function.*. Unless overridden by a more specific face association. lsp-face-semhl-implementation # Type: face Default: ((t :inherit font-lock-function-name-face :weight bold)) Face used for implementation modifier. lsp-face-semhl-interface # Type: face Default: ((t (:inherit font-lock-type-face))) Face used for interfaces. lsp-face-semhl-keyword # Type: face Default: ((t (:inherit font-lock-keyword-face))) Face used for keywords. lsp-face-semhl-label # Type: face Default: ((t (:inherit font-lock-comment-face))) Face used for labels. lsp-face-semhl-macro # Type: face Default: ((t (:inherit font-lock-preprocessor-face))) Face used for macros. lsp-face-semhl-member # Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for members. lsp-face-semhl-method # Type: face Default: ((t :inherit lsp-face-semhl-function)) Face used for semantic highlighting scopes matching entity.name.method.*. Unless overridden by a more specific face association. lsp-face-semhl-namespace # Type: face Default: ((t :inherit font-lock-type-face :weight bold)) Face used for semantic highlighting scopes matching entity.name.namespace.*. Unless overridden by a more specific face association. lsp-face-semhl-number # Type: face Default: ((t (:inherit font-lock-constant-face))) Face used for numbers. lsp-face-semhl-operator # Type: face Default: ((t (:inherit font-lock-function-name-face))) Face used for operators. lsp-face-semhl-parameter # Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for parameters. lsp-face-semhl-property # Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for properties. lsp-face-semhl-regexp # Type: face Default: ((t (:inherit font-lock-string-face :slant italic))) Face used for regexps. lsp-face-semhl-static # Type: face Default: ((t :inherit font-lock-keyword-face)) Face used for static modifier. lsp-face-semhl-string # Type: face Default: ((t (:inherit font-lock-string-face))) Face used for keywords. lsp-face-semhl-struct # Type: face Default: ((t (:inherit font-lock-type-face))) Face used for structs. lsp-face-semhl-type # Type: face Default: ((t (:inherit font-lock-type-face))) Face used for types. lsp-face-semhl-type-parameter # Type: face Default: ((t (:inherit font-lock-type-face))) Face used for type parameters. lsp-face-semhl-variable # Type: face Default: ((t :inherit font-lock-variable-name-face)) Face used for semantic highlighting scopes matching variable.*. Unless overridden by a more specific face association. lsp-semantic-tokens-allow-delta-requests # Type: boolean Default: t Whether to use semantic token delta requests when available. When supported by the language server, delta requests are always preferred over both full and ranged token requests. lsp-semantic-tokens-allow-ranged-requests # Type: boolean Default: t Whether to use ranged semantic token requests when available. Note that even when this is set to t, delta requests will be preferred whenever possible, unless lsp-semantic-tokens-allow-delta-requests is false. lsp-semantic-tokens-apply-modifiers # Type: boolean Default: t Whether semantic tokens should take token modifiers into account. lsp-semantic-tokens-enable # Type: boolean Default: nil Enable/disable support for semantic tokens. As defined by the Language Server Protocol 3.16. lsp-semantic-tokens-enable-multiline-token-support # Type: boolean Default: t When set to nil, tokens will be truncated after end-of-line. lsp-semantic-tokens-honor-refresh-requests # Type: boolean Default: nil Whether to honor semanticTokens/refresh requests. When set to nil, refresh requests will be silently discarded. When set to t, semantic tokens will be re-requested for all buffers associated with the requesting language server. lsp-semantic-tokens-max-concurrent-idle-requests # Type: integer Default: 1 Maximum number of on-idle token requests to be dispatched simultaneously. lsp-semantic-tokens-warn-on-missing-face # Type: boolean Default: nil Warning on missing face for token type/modifier. When non-nil, this option will emit a warning any time a token or modifier type returned by a language server has no face associated with it.","title":"Semantic Tokens"},{"location":"page/settings/semantic-tokens/#semantic-tokens","text":"","title":"Semantic tokens"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-class","text":"Type: face Default: ((t (:inherit font-lock-type-face))) Face used for classes.","title":"lsp-face-semhl-class"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-comment","text":"Type: face Default: ((t (:inherit font-lock-comment-face))) Face used for comments.","title":"lsp-face-semhl-comment"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-constant","text":"Type: face Default: ((t :inherit font-lock-constant-face)) Face used for semantic highlighting scopes matching constant scopes.","title":"lsp-face-semhl-constant"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-default-library","text":"Type: face Default: ((t :inherit font-lock-builtin-face)) Face used for defaultLibrary modifier.","title":"lsp-face-semhl-default-library"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-definition","text":"Type: face Default: ((t :inherit font-lock-function-name-face :weight bold)) Face used for definition modifier.","title":"lsp-face-semhl-definition"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-deprecated","text":"Type: face Default: ((t :strike-through t)) Face used for semantic highlighting scopes matching constant scopes.","title":"lsp-face-semhl-deprecated"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-enum","text":"Type: face Default: ((t (:inherit font-lock-type-face))) Face used for enums.","title":"lsp-face-semhl-enum"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-event","text":"Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for event properties.","title":"lsp-face-semhl-event"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-function","text":"Type: face Default: ((t :inherit font-lock-function-name-face)) Face used for semantic highlighting scopes matching entity.name.function.*. Unless overridden by a more specific face association.","title":"lsp-face-semhl-function"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-implementation","text":"Type: face Default: ((t :inherit font-lock-function-name-face :weight bold)) Face used for implementation modifier.","title":"lsp-face-semhl-implementation"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-interface","text":"Type: face Default: ((t (:inherit font-lock-type-face))) Face used for interfaces.","title":"lsp-face-semhl-interface"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-keyword","text":"Type: face Default: ((t (:inherit font-lock-keyword-face))) Face used for keywords.","title":"lsp-face-semhl-keyword"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-label","text":"Type: face Default: ((t (:inherit font-lock-comment-face))) Face used for labels.","title":"lsp-face-semhl-label"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-macro","text":"Type: face Default: ((t (:inherit font-lock-preprocessor-face))) Face used for macros.","title":"lsp-face-semhl-macro"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-member","text":"Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for members.","title":"lsp-face-semhl-member"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-method","text":"Type: face Default: ((t :inherit lsp-face-semhl-function)) Face used for semantic highlighting scopes matching entity.name.method.*. Unless overridden by a more specific face association.","title":"lsp-face-semhl-method"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-namespace","text":"Type: face Default: ((t :inherit font-lock-type-face :weight bold)) Face used for semantic highlighting scopes matching entity.name.namespace.*. Unless overridden by a more specific face association.","title":"lsp-face-semhl-namespace"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-number","text":"Type: face Default: ((t (:inherit font-lock-constant-face))) Face used for numbers.","title":"lsp-face-semhl-number"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-operator","text":"Type: face Default: ((t (:inherit font-lock-function-name-face))) Face used for operators.","title":"lsp-face-semhl-operator"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-parameter","text":"Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for parameters.","title":"lsp-face-semhl-parameter"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-property","text":"Type: face Default: ((t (:inherit font-lock-variable-name-face))) Face used for properties.","title":"lsp-face-semhl-property"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-regexp","text":"Type: face Default: ((t (:inherit font-lock-string-face :slant italic))) Face used for regexps.","title":"lsp-face-semhl-regexp"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-static","text":"Type: face Default: ((t :inherit font-lock-keyword-face)) Face used for static modifier.","title":"lsp-face-semhl-static"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-string","text":"Type: face Default: ((t (:inherit font-lock-string-face))) Face used for keywords.","title":"lsp-face-semhl-string"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-struct","text":"Type: face Default: ((t (:inherit font-lock-type-face))) Face used for structs.","title":"lsp-face-semhl-struct"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-type","text":"Type: face Default: ((t (:inherit font-lock-type-face))) Face used for types.","title":"lsp-face-semhl-type"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-type-parameter","text":"Type: face Default: ((t (:inherit font-lock-type-face))) Face used for type parameters.","title":"lsp-face-semhl-type-parameter"},{"location":"page/settings/semantic-tokens/#lsp-face-semhl-variable","text":"Type: face Default: ((t :inherit font-lock-variable-name-face)) Face used for semantic highlighting scopes matching variable.*. Unless overridden by a more specific face association.","title":"lsp-face-semhl-variable"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-allow-delta-requests","text":"Type: boolean Default: t Whether to use semantic token delta requests when available. When supported by the language server, delta requests are always preferred over both full and ranged token requests.","title":"lsp-semantic-tokens-allow-delta-requests"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-allow-ranged-requests","text":"Type: boolean Default: t Whether to use ranged semantic token requests when available. Note that even when this is set to t, delta requests will be preferred whenever possible, unless lsp-semantic-tokens-allow-delta-requests is false.","title":"lsp-semantic-tokens-allow-ranged-requests"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-apply-modifiers","text":"Type: boolean Default: t Whether semantic tokens should take token modifiers into account.","title":"lsp-semantic-tokens-apply-modifiers"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-enable","text":"Type: boolean Default: nil Enable/disable support for semantic tokens. As defined by the Language Server Protocol 3.16.","title":"lsp-semantic-tokens-enable"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-enable-multiline-token-support","text":"Type: boolean Default: t When set to nil, tokens will be truncated after end-of-line.","title":"lsp-semantic-tokens-enable-multiline-token-support"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-honor-refresh-requests","text":"Type: boolean Default: nil Whether to honor semanticTokens/refresh requests. When set to nil, refresh requests will be silently discarded. When set to t, semantic tokens will be re-requested for all buffers associated with the requesting language server.","title":"lsp-semantic-tokens-honor-refresh-requests"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-max-concurrent-idle-requests","text":"Type: integer Default: 1 Maximum number of on-idle token requests to be dispatched simultaneously.","title":"lsp-semantic-tokens-max-concurrent-idle-requests"},{"location":"page/settings/semantic-tokens/#lsp-semantic-tokens-warn-on-missing-face","text":"Type: boolean Default: nil Warning on missing face for token type/modifier. When non-nil, this option will emit a warning any time a token or modifier type returned by a language server has no face associated with it.","title":"lsp-semantic-tokens-warn-on-missing-face"},{"location":"template/lsp-client/","text":"{{full-name}} # Server # For more information about the LSP server, check {{server-name}} . Installation # {{lsp-install-server}} {{installation}}{{installation-url}} Debugger: {{debugger}} # {{manual-documentation}} Available configurations #","title":"Lsp client"},{"location":"template/lsp-client/#full-name","text":"","title":"{{full-name}}"},{"location":"template/lsp-client/#server","text":"For more information about the LSP server, check {{server-name}} .","title":"Server"},{"location":"template/lsp-client/#installation","text":"{{lsp-install-server}} {{installation}}{{installation-url}}","title":"Installation"},{"location":"template/lsp-client/#debugger-debugger","text":"{{manual-documentation}}","title":"Debugger: {{debugger}}"},{"location":"template/lsp-client/#available-configurations","text":"","title":"Available configurations"},{"location":"template/lsp-var/","text":"{{name}} # Type: {{type}} Default: {{default}} {{documentation}}","title":"Lsp var"},{"location":"template/lsp-var/#name","text":"Type: {{type}} Default: {{default}} {{documentation}}","title":"{{name}}"},{"location":"tutorials/CPP-guide/","text":"Configuring Emacs as a C/C++ IDE # In this guide, I will show you how to configure lsp-mode and dap-mode for C/C++ development, using GNU Emacs as an example code base. At the end of this tutorial, Emacs should provide you with all the language-aware editor features you'd expect from a modern C++ IDE, such as Code completion Real-time syntax checking Code navigation (references/definitions/implementations/symbol search) Visual IDE debugger Document outline, breadcrumb and modeline widgets For all lsp-mode features, check here . Obtaining a language server # lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. As of late 2020, there are 2 production-ready language servers for C/C++ and Objective-C , clangd , and ccls with ccls 's precursor cquery being deprecated. For some of the language servers, lsp-mode ships with automatic installation scripts but there is no such script for installing a C/C++ language server due to their overall complexity. For this guide we will be using clangd but most of the steps here apply to ccls as well. lsp-mode is pre-configured and it will be able to find the language server automatically when it is installed on the host machine and it is present on the PATH . In case clangd is not present on the path clangd can be installed following their Getting Started instructions. Note: for Debian based system use https://apt.llvm.org/ Project setup # To understand your source code, clangd needs to know the compiler flags that are used to build the project. (This is just a fact of life in C++, source files are not self-contained). By default, clangd will assume your code is built as clang some_file.cc , and you\u2019ll probably get spurious errors about missing #include files, etc. There are a couple of ways to fix this. You may read about them in clangd installation or in https://sarcasm.github.io/notes/dev/compilation-database.html. In order to generate compile_commands.json for Emacs itself I have found that Bear works fine. sudo apt-get install bear Setup Emacs sources and dependencies: sudo apt-get install -y build-essential git autoconf texinfo libgnutls28-dev libxml2-dev libncurses5-dev libjansson-dev git clone git://git.sv.gnu.org/emacs.git cd emacs ./autogen.sh CFLAGS = \"-ggdb3 -O0\" CXXFLAGS = \"-ggdb3 -O0\" LDFLAGS = \"-ggdb3\" ./configure --with-modules --with-json bear -- make -j $( nproc ) Prefixing make -j$(nproc) with bear will generate the compile_commands.json which later will be used by clangd . CFLAGS=\"-ggdb3 -O0\" CXXFLAGS=\"-ggdb3 -O0\" LDFLAGS=\"-ggdb3\" will compile Emacs with debug symbols. lsp-mode configuration # Here is a bare-bones lsp-mode / dap-mode configuration template to get you started with your own lsp-mode config, or to try out in a separate one-off session. Please note that Emacs configuration frameworks such as Spacemacs or Doom Emacs often ship with lsp-mode settings of their own; should you be using such a framework, and find that lsp-mode doesn't behave as intended, please make sure to follow this tutorial from a clean starting point. in your config or you could run in separate session. ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( lsp-mode yasnippet lsp-treemacs helm-lsp projectile hydra flycheck company avy which-key helm-xref dap-mode )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ;; sample `helm' configuration use https://github.com/emacs-helm/helm/ for details ( helm-mode ) ( require 'helm-xref ) ( define-key global-map [ remap find-file ] #' helm-find-files ) ( define-key global-map [ remap execute-extended-command ] #' helm-M-x ) ( define-key global-map [ remap switch-to-buffer ] #' helm-mini ) ( which-key-mode ) ( add-hook 'c-mode-hook 'lsp ) ( add-hook 'c++-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-idle-delay 0.0 company-minimum-prefix-length 1 lsp-idle-delay 0.1 ) ;; clangd is fast ( with-eval-after-load 'lsp-mode ( add-hook 'lsp-mode-hook #' lsp-enable-which-key-integration ) ( require 'dap-cpptools ) ( yas-global-mode )) Feature overview # And now it is time to start hacking on Emacs core! emacs ~/Sources/emacs/src/editfns.c Now, if everything was successful you will be asked to select a project root. Note: the project root is needed by the language server in order to know where to start the project discovery from. Typically, this is the git repository root but since exceptions to this rule have caused us a lot of trouble in the past (monorepos come to mind), lsp-mode by default asks the user to manually confirm the project root the first time a project is opened. Completion # By default, lsp-mode uses company-mode as its completion frontend. When present, company-mode will be auto-configured and it will just work. keybindings/ which-key integration # lsp-mode has smart (almost) complete mnemonic keybindings which auto-enable when a certain feature is supported by the server and when the corresponding Emacs package is installed. In addition, lsp-mode ships with which-key integration for better discoverability. By default, lsp-mode 's keybindings are available under s-l (Super-l), e. g. s-l h h will show documentation at point. You may change the default prefix by setting lsp-keymap-prefix . Mouse support # Yeah, lsp-mode supports mouse! Refactoring/Code actions # lsp-rename ( s-l r r ) - rename symbol/function at point. lsp-execute-code-action ( s-l a a ) - clangd is able to auto-correct some of the errors. Navigation # lsp-mode has integration with xref core package and in addition it has xref-find-definitions ( M-. and s-l g g ) - find definition(s) at point xref-find-references ( s-l g r ) - find references to the symbol at point helm-imenu - browse symbols in the current document helm-lsp-workspace-symbol - find symbol in current project helm-lsp-global-workspaces-symbol - find symbol in all projects lsp-treemacs-type-hierarchy - show type hierarchy Note: if you prefer ivy over helm you may check out lsp-ivy . lsp-treemacs # lsp-treemacs is a package providing integration with treemacs and an alternative tree-view visualization. Refer to the project's readme for further information. Help/Documentation # lsp-mode automatically enables eldoc-mode which will show hover information in the minibuffer. lsp-mode is showing only the one line signature info so if you want to see the full documentation at point you can use lsp-describe-thing-at-point . In addition to that you can also see signature help after pressing C-M-SPC or after pressing trigger char like ( . If there is more than one applicable signature due to function overloading, you may browse between the available candidates using M-n/M-p . may browse them via M-n/M-p Diagnostics # For on-the-fly errors lsp-mode is using flycheck ( flymake is also supported). It is configured automatically. In addition to standard flycheck features lsp-mode provides a project-wide error list via lsp-treemacs-errors-list . Debugging # Just like lsp-mode provides editing features through the editor-independent Language Server Protocol , its sister package dap-mode provides debugging features through the editor-independent Debug Adapter Protocol and language-specific debugging servers called debug adapters . front-end of the sister Debug Adapter Protocol . It is again client server like Language Sever Protocol . dap-mode provides all of the traditional debugger features - breakpoints(conditions, hit count, etc), threads, locals. Installation # dap-mode provides installation commands for most of the debug adapters. In this tutorial we will use the vscode-cpptools debug adapter. To install the adapter do M-x dap-cpptools-setup . Note: you should have gdb on path. Note: on linux you should install mono . Creating debug configuration # dap-mode introduces the notion of debug configuration and debug template. The debug configuration is the settings that are needed by the debug adapter to start the program to debug. Debug template is a template for such configuration which will be populated by the user or by dap-mode . There are two ways to manage debug configuration - using emacs lisp via dap-debug-edit-template and dap-register-debug-template . The second way is using launch.json . Put it in project root and dap-mode will pick it up. { \"version\" : \"0.2.0\" , \"configurations\" : [ { \"name\" : \"Debug Emacs\" , \"type\" : \"cppdbg\" , \"request\" : \"launch\" , \"program\" : \"${workspaceFolder}/src/emacs\" , \"args\" : [ \"-q\" ], \"stopAtEntry\" : false , \"cwd\" : \"${workspaceFolder}\" , \"environment\" : [], \"externalConsole\" : false , \"MIMode\" : \"gdb\" } ] } At this point, dap-mode does not provide the list of all available properties for each configuration. The full list can be found in package.json in /.emacs.d/.extension/vscode/cpptools/extension/package.json when dap-mode is using VScode package or debug adapter docs when not. Debugging # Start debugging via M-x dap-debug and select Debug Emacs from the list. . After pressing RET a fresh instance of Emacs will pop up. Then do M-x helm-lsp-workspace-symbol and type message3 . Go to that function and place a breakpoint. You could do that by clicking in the fringe or by doing M-x dap-breakpoint-toggle . Switch to the debugged instance and do M-: (message \"Hello, I am debugging Emacs core!\") RET .","title":"Configuring Emacs as a C/C++ IDE"},{"location":"tutorials/CPP-guide/#configuring-emacs-as-a-cc-ide","text":"In this guide, I will show you how to configure lsp-mode and dap-mode for C/C++ development, using GNU Emacs as an example code base. At the end of this tutorial, Emacs should provide you with all the language-aware editor features you'd expect from a modern C++ IDE, such as Code completion Real-time syntax checking Code navigation (references/definitions/implementations/symbol search) Visual IDE debugger Document outline, breadcrumb and modeline widgets For all lsp-mode features, check here .","title":"Configuring Emacs as a C/C++ IDE"},{"location":"tutorials/CPP-guide/#obtaining-a-language-server","text":"lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. As of late 2020, there are 2 production-ready language servers for C/C++ and Objective-C , clangd , and ccls with ccls 's precursor cquery being deprecated. For some of the language servers, lsp-mode ships with automatic installation scripts but there is no such script for installing a C/C++ language server due to their overall complexity. For this guide we will be using clangd but most of the steps here apply to ccls as well. lsp-mode is pre-configured and it will be able to find the language server automatically when it is installed on the host machine and it is present on the PATH . In case clangd is not present on the path clangd can be installed following their Getting Started instructions. Note: for Debian based system use https://apt.llvm.org/","title":"Obtaining a language server"},{"location":"tutorials/CPP-guide/#project-setup","text":"To understand your source code, clangd needs to know the compiler flags that are used to build the project. (This is just a fact of life in C++, source files are not self-contained). By default, clangd will assume your code is built as clang some_file.cc , and you\u2019ll probably get spurious errors about missing #include files, etc. There are a couple of ways to fix this. You may read about them in clangd installation or in https://sarcasm.github.io/notes/dev/compilation-database.html. In order to generate compile_commands.json for Emacs itself I have found that Bear works fine. sudo apt-get install bear Setup Emacs sources and dependencies: sudo apt-get install -y build-essential git autoconf texinfo libgnutls28-dev libxml2-dev libncurses5-dev libjansson-dev git clone git://git.sv.gnu.org/emacs.git cd emacs ./autogen.sh CFLAGS = \"-ggdb3 -O0\" CXXFLAGS = \"-ggdb3 -O0\" LDFLAGS = \"-ggdb3\" ./configure --with-modules --with-json bear -- make -j $( nproc ) Prefixing make -j$(nproc) with bear will generate the compile_commands.json which later will be used by clangd . CFLAGS=\"-ggdb3 -O0\" CXXFLAGS=\"-ggdb3 -O0\" LDFLAGS=\"-ggdb3\" will compile Emacs with debug symbols.","title":"Project setup"},{"location":"tutorials/CPP-guide/#lsp-mode-configuration","text":"Here is a bare-bones lsp-mode / dap-mode configuration template to get you started with your own lsp-mode config, or to try out in a separate one-off session. Please note that Emacs configuration frameworks such as Spacemacs or Doom Emacs often ship with lsp-mode settings of their own; should you be using such a framework, and find that lsp-mode doesn't behave as intended, please make sure to follow this tutorial from a clean starting point. in your config or you could run in separate session. ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( lsp-mode yasnippet lsp-treemacs helm-lsp projectile hydra flycheck company avy which-key helm-xref dap-mode )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ;; sample `helm' configuration use https://github.com/emacs-helm/helm/ for details ( helm-mode ) ( require 'helm-xref ) ( define-key global-map [ remap find-file ] #' helm-find-files ) ( define-key global-map [ remap execute-extended-command ] #' helm-M-x ) ( define-key global-map [ remap switch-to-buffer ] #' helm-mini ) ( which-key-mode ) ( add-hook 'c-mode-hook 'lsp ) ( add-hook 'c++-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-idle-delay 0.0 company-minimum-prefix-length 1 lsp-idle-delay 0.1 ) ;; clangd is fast ( with-eval-after-load 'lsp-mode ( add-hook 'lsp-mode-hook #' lsp-enable-which-key-integration ) ( require 'dap-cpptools ) ( yas-global-mode ))","title":"lsp-mode configuration"},{"location":"tutorials/CPP-guide/#feature-overview","text":"And now it is time to start hacking on Emacs core! emacs ~/Sources/emacs/src/editfns.c Now, if everything was successful you will be asked to select a project root. Note: the project root is needed by the language server in order to know where to start the project discovery from. Typically, this is the git repository root but since exceptions to this rule have caused us a lot of trouble in the past (monorepos come to mind), lsp-mode by default asks the user to manually confirm the project root the first time a project is opened.","title":"Feature overview"},{"location":"tutorials/CPP-guide/#completion","text":"By default, lsp-mode uses company-mode as its completion frontend. When present, company-mode will be auto-configured and it will just work.","title":"Completion"},{"location":"tutorials/CPP-guide/#keybindingswhich-key-integration","text":"lsp-mode has smart (almost) complete mnemonic keybindings which auto-enable when a certain feature is supported by the server and when the corresponding Emacs package is installed. In addition, lsp-mode ships with which-key integration for better discoverability. By default, lsp-mode 's keybindings are available under s-l (Super-l), e. g. s-l h h will show documentation at point. You may change the default prefix by setting lsp-keymap-prefix .","title":"keybindings/which-key integration"},{"location":"tutorials/CPP-guide/#mouse-support","text":"Yeah, lsp-mode supports mouse!","title":"Mouse support"},{"location":"tutorials/CPP-guide/#refactoringcode-actions","text":"lsp-rename ( s-l r r ) - rename symbol/function at point. lsp-execute-code-action ( s-l a a ) - clangd is able to auto-correct some of the errors.","title":"Refactoring/Code actions"},{"location":"tutorials/CPP-guide/#navigation","text":"lsp-mode has integration with xref core package and in addition it has xref-find-definitions ( M-. and s-l g g ) - find definition(s) at point xref-find-references ( s-l g r ) - find references to the symbol at point helm-imenu - browse symbols in the current document helm-lsp-workspace-symbol - find symbol in current project helm-lsp-global-workspaces-symbol - find symbol in all projects lsp-treemacs-type-hierarchy - show type hierarchy Note: if you prefer ivy over helm you may check out lsp-ivy .","title":"Navigation"},{"location":"tutorials/CPP-guide/#lsp-treemacs","text":"lsp-treemacs is a package providing integration with treemacs and an alternative tree-view visualization. Refer to the project's readme for further information.","title":"lsp-treemacs"},{"location":"tutorials/CPP-guide/#helpdocumentation","text":"lsp-mode automatically enables eldoc-mode which will show hover information in the minibuffer. lsp-mode is showing only the one line signature info so if you want to see the full documentation at point you can use lsp-describe-thing-at-point . In addition to that you can also see signature help after pressing C-M-SPC or after pressing trigger char like ( . If there is more than one applicable signature due to function overloading, you may browse between the available candidates using M-n/M-p . may browse them via M-n/M-p","title":"Help/Documentation"},{"location":"tutorials/CPP-guide/#diagnostics","text":"For on-the-fly errors lsp-mode is using flycheck ( flymake is also supported). It is configured automatically. In addition to standard flycheck features lsp-mode provides a project-wide error list via lsp-treemacs-errors-list .","title":"Diagnostics"},{"location":"tutorials/CPP-guide/#debugging","text":"Just like lsp-mode provides editing features through the editor-independent Language Server Protocol , its sister package dap-mode provides debugging features through the editor-independent Debug Adapter Protocol and language-specific debugging servers called debug adapters . front-end of the sister Debug Adapter Protocol . It is again client server like Language Sever Protocol . dap-mode provides all of the traditional debugger features - breakpoints(conditions, hit count, etc), threads, locals.","title":"Debugging"},{"location":"tutorials/CPP-guide/#installation","text":"dap-mode provides installation commands for most of the debug adapters. In this tutorial we will use the vscode-cpptools debug adapter. To install the adapter do M-x dap-cpptools-setup . Note: you should have gdb on path. Note: on linux you should install mono .","title":"Installation"},{"location":"tutorials/CPP-guide/#creating-debug-configuration","text":"dap-mode introduces the notion of debug configuration and debug template. The debug configuration is the settings that are needed by the debug adapter to start the program to debug. Debug template is a template for such configuration which will be populated by the user or by dap-mode . There are two ways to manage debug configuration - using emacs lisp via dap-debug-edit-template and dap-register-debug-template . The second way is using launch.json . Put it in project root and dap-mode will pick it up. { \"version\" : \"0.2.0\" , \"configurations\" : [ { \"name\" : \"Debug Emacs\" , \"type\" : \"cppdbg\" , \"request\" : \"launch\" , \"program\" : \"${workspaceFolder}/src/emacs\" , \"args\" : [ \"-q\" ], \"stopAtEntry\" : false , \"cwd\" : \"${workspaceFolder}\" , \"environment\" : [], \"externalConsole\" : false , \"MIMode\" : \"gdb\" } ] } At this point, dap-mode does not provide the list of all available properties for each configuration. The full list can be found in package.json in /.emacs.d/.extension/vscode/cpptools/extension/package.json when dap-mode is using VScode package or debug adapter docs when not.","title":"Creating debug configuration"},{"location":"tutorials/CPP-guide/#debugging_1","text":"Start debugging via M-x dap-debug and select Debug Emacs from the list. . After pressing RET a fresh instance of Emacs will pop up. Then do M-x helm-lsp-workspace-symbol and type message3 . Go to that function and place a breakpoint. You could do that by clicking in the fringe or by doing M-x dap-breakpoint-toggle . Switch to the debugged instance and do M-: (message \"Hello, I am debugging Emacs core!\") RET .","title":"Debugging"},{"location":"tutorials/clojure-guide/","text":"Configuring Emacs as a Clojure IDE # Author: @ericdallo In this guide, I will show you how to configure Emacs to develop Clojure using: lsp-mode , which has many IDE features like completion , renaming , reference-searching , definition-finding , code lenses , code actions and many more. CIDER , the Emacs package most famous for enabling REPL-driven development with Clojure. Why should I try LSP for Clojure? # Coming from the Java world, when I started programming for Clojure in Emacs, it was odd to me that for almost everything you needed to do with Clojure, you needed a REPL running in your project , and if you changed anything in your project, you would need to reload the modified namespace/code to see the changes in the REPL. I also missed a lot of features popularized by Java IDEs, like cleaning unused imports, viewing the call hierarchy of a method/function, formatting code automatically, checking syntax in real-time, and using code actions that could, for example, add a missing import. Ever since I found clojure-lsp , which implements most of those features, I have been using it alongside CIDER without issues. While I really like CIDER and believe it is one of the best tools for Clojure development, you can complement it with clojure-lsp to make programming in Clojure even better. Once it is running (and you are plugged into the REPL), CIDER will provide many of the same features that clojure-lsp does, so you need to tell Emacs how to resolve conflicts, which features use from lsp-mode and which ones from CIDER . Therefore, if you want to have a more IDE-ish experience with Emacs, you should read this guide. Basic configuration # Here is a bare-bones lsp-mode configuration template to get you started with your own lsp-mode config, or to try out in a separate one-off session. Please note that Emacs configuration frameworks such as Spacemacs or Doom Emacs often ship with lsp-mode settings of their own; should you be using such a framework, and find that lsp-mode doesn't behave as intended, please make sure to follow this tutorial from a clean starting point. in your config or you could run in a separate session. ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( clojure-mode lsp-mode cider lsp-treemacs flycheck company )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ( add-hook 'clojure-mode-hook 'lsp ) ( add-hook 'clojurescript-mode-hook 'lsp ) ( add-hook 'clojurec-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-minimum-prefix-length 1 ; lsp-enable-indentation nil ; uncomment to use cider indentation instead of lsp ; lsp-enable-completion-at-point nil ; uncomment to use cider completion instead of lsp ) For more detailed info on how to setup lsp-mode , check here . Installing the language server # lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. For Clojure, we will use clojure-lsp which as of 2022/10, is the only LSP server for Clojure, and has a lot of useful features that I will try to show in this guide. Via lsp-mode # lsp-mode ships with automatic installation scripts for some of the language servers and clojure-lsp is one of the supported servers, you can install it using M-x lsp-install-server RET clojure-lsp . After installed, lsp-mode will automatically initialize it when opening Clojure files. Manually # Check here for more information on how to build it manually. For a custom path, you can set the path of the server location with: ( setq lsp-clojure-custom-server-command ' ( \"bash\" \"-c\" \"/path/to/clojure-lsp\" )) LSP features # This guide will focus on the features of lsp-mode that are most relevant to Clojure development. You can view documentation of all features at the official lsp-mode site or clojure-lsp features section . Syntax check # It checks for errors and warnings on your code while you write it, it uses clj-kondo , another amazing library that lints Clojure code, in the back-end so it's not required to install clj-kondo since clojure-lsp will use it automatically. It will also check for public unused functions/variables which is something that, as far as I know, does not exist in any other Clojure library/package: Find definition/references # You can find a function definition with lsp-find-definition or find all the references to that symbol, variable or function with lsp-find-references or lsp-ui-peek-find-references if lsp-ui is available. Doom emacs users You may need to remove the lookup handlers conflict from `cider` and/or `clj-refactor` if you want to use this LSP feature. ( use-package! cider :after clojure-mode :config ( set-lookup-handlers! 'cider-mode nil )) ( use-package! clj-refactor :after clojure-mode :config ( set-lookup-handlers! 'clj-refactor-mode nil )) Spacemacs users - Add the `dap` layer to the `dotspacemacs/layers ()` section of your `.spacemacs` file (at the top of the file). - Require the corresponding module in the `dotspacemacs/user-config ()` section of your `.spacemacs` (at the bottom of the file). (In my case, I made it work with Chromium.) - Make sure the Chromium executable is correctly setup (see https://github.com/syl20bnr/spacemacs/issues/13614#issuecomment-1179478365) dotspacemacs/user-config () ... ;; Enable DAP debugging in ClojureScript. ;; Trying almost all options... ;; This one downloads OK. ( require 'dap-chrome ) ;; These two cannot be downloaded... ;; (require 'dap-firefox) ;; (require 'dap-node) ;; I'm not into trying this one... ;; (require 'dap-edge) Based on: https://emacs-lsp.github.io/lsp-mode/tutorials/debugging-clojure-script/ Completion # By default, lsp-mode uses company-mode as its completion front-end. When present, company-mode and enabled for lsp-mode , it will be auto-configured and it will just work using the completion items returned by the LSP server. clojure-lsp also has completion snippets, for more information check here . If you do not want LSP completion, It's possible to use cider completion instead with: ( setq lsp-enable-completion-at-point nil ) ; use cider completion See also CIDER code completion Code lens # LSP supports code lenses, actionable text snippets that a server may want to display in a client IDE. clojure-lsp uses it to show the reference count of a function/variable. They are enabled by default so you if you want to disable, disable lsp-lens-enable variable: Call hierarchy # This feature returns the call hierarchy of a function/method. As of now, clojure-lsp only supports returning the incoming-call hierarchy. It uses lsp-treemacs , which you should install to use this feature. Formatting # For LSP formatting, clojure-lsp use cljfmt with support for all known cljfmt settings. You can format a region with lsp-format-region or the entire buffer with lsp-format-buffer . Code actions # One of the most important features considered by me is the code actions feature provided by the server. they are refactoring actions that may change your code after applied, clojure-lsp some of the refactorings from below are suggested by the server depending where user cursor is, for example Add missing namespace where clojure-lsp will suggest adding a missing require: Refactorings # clojure-lsp also has a lot of refactorings, some of them can be automatically triggered by code actions like said above and others manually by user, one example of one of the most used by me is clean-ns , which will remove any unused requires and refers: Or rename which will rename the symbol at point and all usages/references: For more info on all available refactorings, check here . Conflict with clj-refactor when creating new files clj-refactor and clojure-lsp have a feature of add the namespace form for new created files, but they may conflict if both are enable, inserting duplicated namespace forms. To fix that, you need to choose which one you wants to use: To disable this feature on clj-refactor : ( setq cljr-add-ns-to-blank-clj-files nil ) ; disable clj-refactor adding ns to blank files or to disable on clojure-lsp : ;; on your .lsp/config.edn file { :auto-add-ns-to-new-files? false } Hover # This feature shows the function/var signature on minibuffer about the symbol at cursor, it's a really useful feature which avoid the need to find definition all the time to check its signature, arity documentation or even clojuredocs for clojure core vars. Conflict with CIDER clojure-lsp and CIDER have this same feature where it uses eldoc to show the signature on minibuffer and you should choose which one you want enabled during your development. Both work similar but remember that LSP doesn't need the REPL plugged in to work. To disable this feature on CIDER : ( setq cider-eldoc-display-for-symbol-at-point nil ) ; disable cider showing eldoc during symbol at point or to disable on clojure-lsp : ( setq lsp-eldoc-enable-hover nil ) ; disable lsp-mode showing eldoc during symbol at point Semantic tokens # Another feature introduced in LSP 3.16, is semantic tokens , which consists of the LSP server return to client the tokens and what they mean, with that, lsp-mode can color the tokens according to their meaning on the code: semantic-tokens OFF semantic-tokens ON CIDER code evaluated Performance # For the first time clojure-lsp starts in your project, it will scan all jar dependencies and source code, this can take a while depending on your project size, after started, it should be really fast and for the next time, it will use its cache and you may not notice any performance issues. Server settings # clojure-lsp has a lot of settings for improving your development experience, make sure to check it out the settings section. For an example configuration, check here . CIDER integration # We suggest using both cider and lsp-mode for Clojure development. I rely on cider to use its REPL, evaluate expressions, run tests, and more. You can execute M-x cider-jack-in to start the REPL. See also # Debugging Clojurescript Tutorial","title":"Configuring Emacs as a Clojure IDE"},{"location":"tutorials/clojure-guide/#configuring-emacs-as-a-clojure-ide","text":"Author: @ericdallo In this guide, I will show you how to configure Emacs to develop Clojure using: lsp-mode , which has many IDE features like completion , renaming , reference-searching , definition-finding , code lenses , code actions and many more. CIDER , the Emacs package most famous for enabling REPL-driven development with Clojure.","title":"Configuring Emacs as a Clojure IDE"},{"location":"tutorials/clojure-guide/#why-should-i-try-lsp-for-clojure","text":"Coming from the Java world, when I started programming for Clojure in Emacs, it was odd to me that for almost everything you needed to do with Clojure, you needed a REPL running in your project , and if you changed anything in your project, you would need to reload the modified namespace/code to see the changes in the REPL. I also missed a lot of features popularized by Java IDEs, like cleaning unused imports, viewing the call hierarchy of a method/function, formatting code automatically, checking syntax in real-time, and using code actions that could, for example, add a missing import. Ever since I found clojure-lsp , which implements most of those features, I have been using it alongside CIDER without issues. While I really like CIDER and believe it is one of the best tools for Clojure development, you can complement it with clojure-lsp to make programming in Clojure even better. Once it is running (and you are plugged into the REPL), CIDER will provide many of the same features that clojure-lsp does, so you need to tell Emacs how to resolve conflicts, which features use from lsp-mode and which ones from CIDER . Therefore, if you want to have a more IDE-ish experience with Emacs, you should read this guide.","title":"Why should I try LSP for Clojure?"},{"location":"tutorials/clojure-guide/#basic-configuration","text":"Here is a bare-bones lsp-mode configuration template to get you started with your own lsp-mode config, or to try out in a separate one-off session. Please note that Emacs configuration frameworks such as Spacemacs or Doom Emacs often ship with lsp-mode settings of their own; should you be using such a framework, and find that lsp-mode doesn't behave as intended, please make sure to follow this tutorial from a clean starting point. in your config or you could run in a separate session. ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( clojure-mode lsp-mode cider lsp-treemacs flycheck company )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ( add-hook 'clojure-mode-hook 'lsp ) ( add-hook 'clojurescript-mode-hook 'lsp ) ( add-hook 'clojurec-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-minimum-prefix-length 1 ; lsp-enable-indentation nil ; uncomment to use cider indentation instead of lsp ; lsp-enable-completion-at-point nil ; uncomment to use cider completion instead of lsp ) For more detailed info on how to setup lsp-mode , check here .","title":"Basic configuration"},{"location":"tutorials/clojure-guide/#installing-the-language-server","text":"lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. For Clojure, we will use clojure-lsp which as of 2022/10, is the only LSP server for Clojure, and has a lot of useful features that I will try to show in this guide.","title":"Installing the language server"},{"location":"tutorials/clojure-guide/#via-lsp-mode","text":"lsp-mode ships with automatic installation scripts for some of the language servers and clojure-lsp is one of the supported servers, you can install it using M-x lsp-install-server RET clojure-lsp . After installed, lsp-mode will automatically initialize it when opening Clojure files.","title":"Via lsp-mode"},{"location":"tutorials/clojure-guide/#manually","text":"Check here for more information on how to build it manually. For a custom path, you can set the path of the server location with: ( setq lsp-clojure-custom-server-command ' ( \"bash\" \"-c\" \"/path/to/clojure-lsp\" ))","title":"Manually"},{"location":"tutorials/clojure-guide/#lsp-features","text":"This guide will focus on the features of lsp-mode that are most relevant to Clojure development. You can view documentation of all features at the official lsp-mode site or clojure-lsp features section .","title":"LSP features"},{"location":"tutorials/clojure-guide/#syntax-check","text":"It checks for errors and warnings on your code while you write it, it uses clj-kondo , another amazing library that lints Clojure code, in the back-end so it's not required to install clj-kondo since clojure-lsp will use it automatically. It will also check for public unused functions/variables which is something that, as far as I know, does not exist in any other Clojure library/package:","title":"Syntax check"},{"location":"tutorials/clojure-guide/#find-definitionreferences","text":"You can find a function definition with lsp-find-definition or find all the references to that symbol, variable or function with lsp-find-references or lsp-ui-peek-find-references if lsp-ui is available. Doom emacs users You may need to remove the lookup handlers conflict from `cider` and/or `clj-refactor` if you want to use this LSP feature. ( use-package! cider :after clojure-mode :config ( set-lookup-handlers! 'cider-mode nil )) ( use-package! clj-refactor :after clojure-mode :config ( set-lookup-handlers! 'clj-refactor-mode nil )) Spacemacs users - Add the `dap` layer to the `dotspacemacs/layers ()` section of your `.spacemacs` file (at the top of the file). - Require the corresponding module in the `dotspacemacs/user-config ()` section of your `.spacemacs` (at the bottom of the file). (In my case, I made it work with Chromium.) - Make sure the Chromium executable is correctly setup (see https://github.com/syl20bnr/spacemacs/issues/13614#issuecomment-1179478365) dotspacemacs/user-config () ... ;; Enable DAP debugging in ClojureScript. ;; Trying almost all options... ;; This one downloads OK. ( require 'dap-chrome ) ;; These two cannot be downloaded... ;; (require 'dap-firefox) ;; (require 'dap-node) ;; I'm not into trying this one... ;; (require 'dap-edge) Based on: https://emacs-lsp.github.io/lsp-mode/tutorials/debugging-clojure-script/","title":"Find definition/references"},{"location":"tutorials/clojure-guide/#completion","text":"By default, lsp-mode uses company-mode as its completion front-end. When present, company-mode and enabled for lsp-mode , it will be auto-configured and it will just work using the completion items returned by the LSP server. clojure-lsp also has completion snippets, for more information check here . If you do not want LSP completion, It's possible to use cider completion instead with: ( setq lsp-enable-completion-at-point nil ) ; use cider completion See also CIDER code completion","title":"Completion"},{"location":"tutorials/clojure-guide/#code-lens","text":"LSP supports code lenses, actionable text snippets that a server may want to display in a client IDE. clojure-lsp uses it to show the reference count of a function/variable. They are enabled by default so you if you want to disable, disable lsp-lens-enable variable:","title":"Code lens"},{"location":"tutorials/clojure-guide/#call-hierarchy","text":"This feature returns the call hierarchy of a function/method. As of now, clojure-lsp only supports returning the incoming-call hierarchy. It uses lsp-treemacs , which you should install to use this feature.","title":"Call hierarchy"},{"location":"tutorials/clojure-guide/#formatting","text":"For LSP formatting, clojure-lsp use cljfmt with support for all known cljfmt settings. You can format a region with lsp-format-region or the entire buffer with lsp-format-buffer .","title":"Formatting"},{"location":"tutorials/clojure-guide/#code-actions","text":"One of the most important features considered by me is the code actions feature provided by the server. they are refactoring actions that may change your code after applied, clojure-lsp some of the refactorings from below are suggested by the server depending where user cursor is, for example Add missing namespace where clojure-lsp will suggest adding a missing require:","title":"Code actions"},{"location":"tutorials/clojure-guide/#refactorings","text":"clojure-lsp also has a lot of refactorings, some of them can be automatically triggered by code actions like said above and others manually by user, one example of one of the most used by me is clean-ns , which will remove any unused requires and refers: Or rename which will rename the symbol at point and all usages/references: For more info on all available refactorings, check here . Conflict with clj-refactor when creating new files clj-refactor and clojure-lsp have a feature of add the namespace form for new created files, but they may conflict if both are enable, inserting duplicated namespace forms. To fix that, you need to choose which one you wants to use: To disable this feature on clj-refactor : ( setq cljr-add-ns-to-blank-clj-files nil ) ; disable clj-refactor adding ns to blank files or to disable on clojure-lsp : ;; on your .lsp/config.edn file { :auto-add-ns-to-new-files? false }","title":"Refactorings"},{"location":"tutorials/clojure-guide/#hover","text":"This feature shows the function/var signature on minibuffer about the symbol at cursor, it's a really useful feature which avoid the need to find definition all the time to check its signature, arity documentation or even clojuredocs for clojure core vars. Conflict with CIDER clojure-lsp and CIDER have this same feature where it uses eldoc to show the signature on minibuffer and you should choose which one you want enabled during your development. Both work similar but remember that LSP doesn't need the REPL plugged in to work. To disable this feature on CIDER : ( setq cider-eldoc-display-for-symbol-at-point nil ) ; disable cider showing eldoc during symbol at point or to disable on clojure-lsp : ( setq lsp-eldoc-enable-hover nil ) ; disable lsp-mode showing eldoc during symbol at point","title":"Hover"},{"location":"tutorials/clojure-guide/#semantic-tokens","text":"Another feature introduced in LSP 3.16, is semantic tokens , which consists of the LSP server return to client the tokens and what they mean, with that, lsp-mode can color the tokens according to their meaning on the code: semantic-tokens OFF semantic-tokens ON CIDER code evaluated","title":"Semantic tokens"},{"location":"tutorials/clojure-guide/#performance","text":"For the first time clojure-lsp starts in your project, it will scan all jar dependencies and source code, this can take a while depending on your project size, after started, it should be really fast and for the next time, it will use its cache and you may not notice any performance issues.","title":"Performance"},{"location":"tutorials/clojure-guide/#server-settings","text":"clojure-lsp has a lot of settings for improving your development experience, make sure to check it out the settings section. For an example configuration, check here .","title":"Server settings"},{"location":"tutorials/clojure-guide/#cider-integration","text":"We suggest using both cider and lsp-mode for Clojure development. I rely on cider to use its REPL, evaluate expressions, run tests, and more. You can execute M-x cider-jack-in to start the REPL.","title":"CIDER integration"},{"location":"tutorials/clojure-guide/#see-also","text":"Debugging Clojurescript Tutorial","title":"See also"},{"location":"tutorials/crystal-guide/","text":"Configuring Emacs as a Crystal IDE # Author: @lanjoni In this guide, I'll show you how to configure lsp-mode for Crystal development, using GNU Emacs . By the end of this tutorial you will be able to use the code editor and all its features for Crystal so far. For all lsp-mode features, check here . Installing the language server # lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. For Crystal, we will be using crystalline , which is currently the only LSP server for Crystal that is still receiving updates and community support. Previously, scry was used as an LSP server. Via lsp-mode # lsp-mode ships with automatic installation scripts for some of the language servers and crystal-lsp is one of the supported servers, you can install it using M-x lsp-install-server RET crystal-lsp . After installed, lsp-mode will automatically initialize it when opening Crystal files. Manually # To install manually first make sure the binary is already in your PATH. You can download an already compiled version or compile from the original code with Crystal. Check here for more information on how to build it manually. After installed, you can add in your settings the definitions to use Crystalline with lsp-mode by default with: ( with-eval-after-load 'lsp-mode ( add-to-list 'lsp-language-id-configuration ' ( crystal-mode . \"crystal\" )) ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection ' ( \"crystalline\" )) :activation-fn ( lsp-activate-on \"crystal\" ) :priority '1 :server-id 'crystalline ))) For a custom path, you can set the path of the server location with: ( setq lsp-crystal-custom-server-command ' ( \"bash\" \"-c\" \"/path/to/crystal-lsp\" )) LSP features # This guide will focus on the features of lsp-mode that are most relevant to Crystal development. You can view documentation of all features at the official lsp-mode site or crystalline features section . Syntax check # This automatically checks your code for errors and warnings as you write it. There is syntax checking, functions/variables that are not used or do not exist, among other types of checks. Formatting # For code formatting, crystal-lsp together with Crystalline provide code formatting following the respective code conventions (coding style) of the Crystal programming language. Performance # The first time crystal-lsp starts your project, it will scan all the settings in your shard.yml file, which may take a while depending on the size of your project. See also # Crystal Book","title":"Configuring Emacs as a Crystal IDE"},{"location":"tutorials/crystal-guide/#configuring-emacs-as-a-crystal-ide","text":"Author: @lanjoni In this guide, I'll show you how to configure lsp-mode for Crystal development, using GNU Emacs . By the end of this tutorial you will be able to use the code editor and all its features for Crystal so far. For all lsp-mode features, check here .","title":"Configuring Emacs as a Crystal IDE"},{"location":"tutorials/crystal-guide/#installing-the-language-server","text":"lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. For Crystal, we will be using crystalline , which is currently the only LSP server for Crystal that is still receiving updates and community support. Previously, scry was used as an LSP server.","title":"Installing the language server"},{"location":"tutorials/crystal-guide/#via-lsp-mode","text":"lsp-mode ships with automatic installation scripts for some of the language servers and crystal-lsp is one of the supported servers, you can install it using M-x lsp-install-server RET crystal-lsp . After installed, lsp-mode will automatically initialize it when opening Crystal files.","title":"Via lsp-mode"},{"location":"tutorials/crystal-guide/#manually","text":"To install manually first make sure the binary is already in your PATH. You can download an already compiled version or compile from the original code with Crystal. Check here for more information on how to build it manually. After installed, you can add in your settings the definitions to use Crystalline with lsp-mode by default with: ( with-eval-after-load 'lsp-mode ( add-to-list 'lsp-language-id-configuration ' ( crystal-mode . \"crystal\" )) ( lsp-register-client ( make-lsp-client :new-connection ( lsp-stdio-connection ' ( \"crystalline\" )) :activation-fn ( lsp-activate-on \"crystal\" ) :priority '1 :server-id 'crystalline ))) For a custom path, you can set the path of the server location with: ( setq lsp-crystal-custom-server-command ' ( \"bash\" \"-c\" \"/path/to/crystal-lsp\" ))","title":"Manually"},{"location":"tutorials/crystal-guide/#lsp-features","text":"This guide will focus on the features of lsp-mode that are most relevant to Crystal development. You can view documentation of all features at the official lsp-mode site or crystalline features section .","title":"LSP features"},{"location":"tutorials/crystal-guide/#syntax-check","text":"This automatically checks your code for errors and warnings as you write it. There is syntax checking, functions/variables that are not used or do not exist, among other types of checks.","title":"Syntax check"},{"location":"tutorials/crystal-guide/#formatting","text":"For code formatting, crystal-lsp together with Crystalline provide code formatting following the respective code conventions (coding style) of the Crystal programming language.","title":"Formatting"},{"location":"tutorials/crystal-guide/#performance","text":"The first time crystal-lsp starts your project, it will scan all the settings in your shard.yml file, which may take a while depending on the size of your project.","title":"Performance"},{"location":"tutorials/crystal-guide/#see-also","text":"Crystal Book","title":"See also"},{"location":"tutorials/debugging-clojure-script/","text":"Debugging ClojureScript using dap-mode # In this tutorial, we will cover the steps needed to debug ClojureScript in emacs using Google Chrome Debug Adapter . For general overview of Clojure features check Clojure Guide . Requirements # Emacs 26.1 or Emacs 27.1+ (recommended) node.js (v6.0.0+, most recent version preferred) npm (comes bundled with node.js) or yarn Java SDK (Version 8+, Hotspot) Google Chrome browser Sample minimal configuration # Here it is sample configuration based on the basic configuration in Clojure Guide . ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( clojure-mode lsp-mode cider lsp-treemacs flycheck company dap-mode )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ( add-hook 'clojure-mode-hook 'lsp ) ( add-hook 'clojurescript-mode-hook 'lsp ) ( add-hook 'clojurec-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-minimum-prefix-length 1 lsp-lens-enable t lsp-signature-auto-activate nil ) ( with-eval-after-load 'dap-mode ( require 'dap-chrome )) Project creation # For this recipe, we will use shadow-cljs . Install npx $ npm install -g npx Create the sample project $ npx create-cljs-project dap-debug-app npx: installed 1 in 1 .764s shadow-cljs - creating project: /home/yyoncho/Sources/dap-debug-app Creating: /home/yyoncho/Sources/dap-debug-app/package.json Creating: /home/yyoncho/Sources/dap-debug-app/shadow-cljs.edn Creating: /home/yyoncho/Sources/dap-debug-app/.gitignore Creating: /home/yyoncho/Sources/dap-debug-app/src/main Creating: /home/yyoncho/Sources/dap-debug-app/src/test ---- Installing shadow-cljs in project. npm notice created a lockfile as package-lock.json. You should commit this file. + shadow-cljs@2.11.23 added 100 packages from 106 contributors and audited 100 packages in 4 .831s 3 packages are looking for funding run ` npm fund ` for details found 0 vulnerabilities Emacs # Create and open file src/main/dap/frontend/app.cljs and make sure that clojure-lsp language server is up and running. Add the following content: ( ns dap.frontend.app ) ( defn sum [ a b ] ( + a b )) ( defn init [] ( sum 1 2 ) ( println \"Hello World\" )) Inside the shadow-cljs.edn :builds section add { ... :builds { :frontend { :target :browser :modules { :main { :init-fn dap.frontend.app/init }} }}} This config tells the compiler to call (dap.frontend.app/init) when the generated JS code is loaded. Since no :output-dir is configured the default public/js is used. You can start the development process by running: $ npx shadow-cljs watch frontend ... a few moments later ... ... [ :frontend ] Build completed. ( 134 files, 35 compiled, 0 warnings, 5 .80s ) Once the config is saved the server will automatically start and serve the content at http://localhost:8080. There is no need to restart shadow-cljs. When opening the above URL the Browser Console should show \"Hello World\". Debugging # The first step is install Google Chrome Debug Adapter via M-x dap-chrome-setup . This is one time operation. Then create file launch.json with the following content: { \"version\" : \"0.2.0\" , \"configurations\" : [ { \"type\" : \"chrome\" , \"request\" : \"launch\" , \"name\" : \"DAP clojurescript\" , \"url\" : \"http://localhost:8080\" , \"sourceMaps\" : true , \"webRoot\" : \"${workspaceFolder}\" , \"sourceMapPathOverrides\" : { \"*\" : \"${workspaceFolder}/src/main/*\" } } ] } Then open app.cljs and place some breakpoints either by clicking in the fringe or by doing M-x dap-breakpoint-toggle . After doing that, you can do M-x dap-debug and select DAP clojurescript . In case you intend to use Chromium, and you get a Error processing \"launch\": Error: Can't find Chrome - install it or set the \"runtimeExecutable\" field in the launch config , just add the full path to your Chromium executable. For instance, in a Debian system, it would be /usr/bin/chromium . In your launch.json , just add the following line: \"runtimeExecutable\": \"/usr/bin/chromium\" Screenshot # Your editor should look like this: You may find the complete project sources at https://github.com/yyoncho/dap-debug-app See also # dap-mode shadow-cljs","title":"Debugging Clojurescript"},{"location":"tutorials/debugging-clojure-script/#debugging-clojurescript-using-dap-mode","text":"In this tutorial, we will cover the steps needed to debug ClojureScript in emacs using Google Chrome Debug Adapter . For general overview of Clojure features check Clojure Guide .","title":"Debugging ClojureScript using dap-mode"},{"location":"tutorials/debugging-clojure-script/#requirements","text":"Emacs 26.1 or Emacs 27.1+ (recommended) node.js (v6.0.0+, most recent version preferred) npm (comes bundled with node.js) or yarn Java SDK (Version 8+, Hotspot) Google Chrome browser","title":"Requirements"},{"location":"tutorials/debugging-clojure-script/#sample-minimal-configuration","text":"Here it is sample configuration based on the basic configuration in Clojure Guide . ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( clojure-mode lsp-mode cider lsp-treemacs flycheck company dap-mode )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ( add-hook 'clojure-mode-hook 'lsp ) ( add-hook 'clojurescript-mode-hook 'lsp ) ( add-hook 'clojurec-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-minimum-prefix-length 1 lsp-lens-enable t lsp-signature-auto-activate nil ) ( with-eval-after-load 'dap-mode ( require 'dap-chrome ))","title":"Sample minimal configuration"},{"location":"tutorials/debugging-clojure-script/#project-creation","text":"For this recipe, we will use shadow-cljs . Install npx $ npm install -g npx Create the sample project $ npx create-cljs-project dap-debug-app npx: installed 1 in 1 .764s shadow-cljs - creating project: /home/yyoncho/Sources/dap-debug-app Creating: /home/yyoncho/Sources/dap-debug-app/package.json Creating: /home/yyoncho/Sources/dap-debug-app/shadow-cljs.edn Creating: /home/yyoncho/Sources/dap-debug-app/.gitignore Creating: /home/yyoncho/Sources/dap-debug-app/src/main Creating: /home/yyoncho/Sources/dap-debug-app/src/test ---- Installing shadow-cljs in project. npm notice created a lockfile as package-lock.json. You should commit this file. + shadow-cljs@2.11.23 added 100 packages from 106 contributors and audited 100 packages in 4 .831s 3 packages are looking for funding run ` npm fund ` for details found 0 vulnerabilities","title":"Project creation"},{"location":"tutorials/debugging-clojure-script/#emacs","text":"Create and open file src/main/dap/frontend/app.cljs and make sure that clojure-lsp language server is up and running. Add the following content: ( ns dap.frontend.app ) ( defn sum [ a b ] ( + a b )) ( defn init [] ( sum 1 2 ) ( println \"Hello World\" )) Inside the shadow-cljs.edn :builds section add { ... :builds { :frontend { :target :browser :modules { :main { :init-fn dap.frontend.app/init }} }}} This config tells the compiler to call (dap.frontend.app/init) when the generated JS code is loaded. Since no :output-dir is configured the default public/js is used. You can start the development process by running: $ npx shadow-cljs watch frontend ... a few moments later ... ... [ :frontend ] Build completed. ( 134 files, 35 compiled, 0 warnings, 5 .80s ) Once the config is saved the server will automatically start and serve the content at http://localhost:8080. There is no need to restart shadow-cljs. When opening the above URL the Browser Console should show \"Hello World\".","title":"Emacs"},{"location":"tutorials/debugging-clojure-script/#debugging","text":"The first step is install Google Chrome Debug Adapter via M-x dap-chrome-setup . This is one time operation. Then create file launch.json with the following content: { \"version\" : \"0.2.0\" , \"configurations\" : [ { \"type\" : \"chrome\" , \"request\" : \"launch\" , \"name\" : \"DAP clojurescript\" , \"url\" : \"http://localhost:8080\" , \"sourceMaps\" : true , \"webRoot\" : \"${workspaceFolder}\" , \"sourceMapPathOverrides\" : { \"*\" : \"${workspaceFolder}/src/main/*\" } } ] } Then open app.cljs and place some breakpoints either by clicking in the fringe or by doing M-x dap-breakpoint-toggle . After doing that, you can do M-x dap-debug and select DAP clojurescript . In case you intend to use Chromium, and you get a Error processing \"launch\": Error: Can't find Chrome - install it or set the \"runtimeExecutable\" field in the launch config , just add the full path to your Chromium executable. For instance, in a Debian system, it would be /usr/bin/chromium . In your launch.json , just add the following line: \"runtimeExecutable\": \"/usr/bin/chromium\"","title":"Debugging"},{"location":"tutorials/debugging-clojure-script/#screenshot","text":"Your editor should look like this: You may find the complete project sources at https://github.com/yyoncho/dap-debug-app","title":"Screenshot"},{"location":"tutorials/debugging-clojure-script/#see-also","text":"dap-mode shadow-cljs","title":"See also"},{"location":"tutorials/docker-integration/","text":"Docker integration # Author: @factyy Reason # You can use docker-wrapped both the language server and debugger and connect to them using LSP/DAP. Imagine that you have a short-time project (or a sideproject) and you don't want to bring any software packages to your local machine. Now it is simple: wrap the language server and debugger you need in docker and use lsp-docker for LSP and dap-mode for DAP. Features # Most of the lsp-mode and dap-mode features, but with the ability to use containerized environments. Note: some of the features may yet to be tested, so any help finding and fixing any bugs in them is highly appreciated! Components: Language Server / LSP support # You can use manually built containers or images hosting language server(s), just follow a few simple rules (shown below). Note: this info is based on the readme in the original project, take a look at lsp-docker for additional info. Building a container (or an image): # You have 2 constraints: A language server must be launched in stdio mode (other types of communication are yet to be supported). A docker container (only container subtype, see the configuration below) must have your language server as an entrypoint (basically you have to be able to launch it with docker start -i as it is launched this way with lsp-docker ). When you have sucessfully built a language server, you have to register it with either a configuration file or a .dir-locals file. Registering a language server using a persistent configuration file: # A configuration file is a yaml file that is named .lsp-docker.yml or .lsp-docker.yaml and looks generally like this: lsp : server : type : docker subtype : container # Or image. container subtype means launching an existing container # image subtype means creating a new container each time from a specified image name : not-significant-but-unique-name # Must be unique across all language servers server : server-id-of-the-base-server # Server id of a registered server (by lsp-mode) launch_command : \"launch command with arguments\" # Launch command of the language server # (selected by a server id specified above) in stdio mode # Note: launch_command is not used with container subtype servers # as a command is embedded in a container itself and serves as an entrypoint mappings : - source : \"/your/host/source/path\" destination : \"/your/local/path/inside/a/container\" Registering a language server using a .dir-locals file: # Just refer to the source code and general conventions of using .dir-locals. The variable you need is lsp-docker-persistent-default-config, its content is merged with the lsp section from a configuration file (if present). Components: Debugger / DAP # Note: this info is based on the readme in the original project, take a look at dap-mode for additional info. Configure it either with a .dir-locals file or drop an .lsp-docker.yml configuration file (use lsp-docker for general reference). Basically you have one function dap-docker-register that performs all the heavy lifting (finding the original debug template, patching it, registering a debug provider e.t.c). This function examines a configuration file or falls back to the default configuration (which can be patched using the .dir-locals approach, take a note that the default configuration doesn\u2019t provide any sane defaults for debugging) and then operates on the combination of the two. This mechanism is the same as in lsp-docker . Note: currently you cannot use this mode when using a network connection to connect to debuggers (this part is yet to be implemented). Still want to talk to debuggers over network? In order to do so you have to look at the launch-args patching done by dap-docker--dockerize-start-file-args , you have to somehow assign nil to dap-server-path before it is passed further into session creation. If you want to stick to a configuration file, take a look at the example below: lsp : server : # 'lsp-docker' fields mappings : - source : \"/your/host/source/path\" # used both by 'lsp-docker' and 'dap-docker' destination : \"/your/local/path/inside/a/container\" # used both by 'lsp-docker' and 'dap-docker' debug : type : docker # only docker is supported subtype : image # or 'container' name : # you can omit this field # in this case the 'lsp-docker' ('server' section) image name is used enabled : true # you can explicitly disable 'dap-docker' by using 'false' provider : template : launch_command : # e.g. if you have installed a debug server in a different directory, not used with 'container' subtype debuggers Examples # Let's develop and debug a simple Ruby application (that uses bundler nonetheless). In the project folder we have at least the actual code and Gemfile with Gemfile.lock . First of all we have to build the images and containers. Let's stick with an image for a language server and a container for debugging. In order to have LSP support in Ruby we have to place solargraph in Gemfile . Building: Language Server # So it is easy to use something like this as a Dockerfile for a language server (using debian-slim as a base image, but it is a matter of personal taste): FROM ruby:3.1.1-slim-bullseye as app # What if your gems use native extensions? RUN apt-get update && apt-get install -y --no-install-recommends \\ build-essential \\ && rm -rf /var/lib/apt/lists/* # You may decide not to create a user, it is ok to delete these lines RUN addgroup --gid 1000 user && \\ adduser --disabled-password --gecos '' --uid 1000 --gid 1000 user # Just an appropriate folder, a matter of taste again RUN mkdir /app && chown user:user /app WORKDIR /app # Install all the gems, INCLUDING the language server COPY Gemfile Gemfile.lock ./ RUN bundle install # Use the created user, remove this line if you deleted the user creation lines USER user You may build it with something like this docker build -t lsp-docker-ruby-server . while you are in the project folder. Building: Debugger # With a debugger it is a bit more complicated: first of all you need node to run the DAP server (as it is a VSCode extension) and second you need to place the extension into the container. You can download the extension (take the latest version) from the VSCode marketplace and place it in your project folder ( vspackage.zip for convenience). In this case your Dockerfile may look like this: FROM ruby:3.1.1-slim-bullseye as app RUN apt-get update && apt-get install -y --no-install-recommends \\ build-essential \\ nodejs \\ unzip \\ && rm -rf /var/lib/apt/lists/* # Create a folder for the debugger RUN mkdir /debugger WORKDIR /debugger COPY vspackage.zip . RUN unzip vspackage.zip -d . RUN addgroup --gid 1000 user && \\ adduser --disabled-password --gecos '' --uid 1000 --gid 1000 user RUN mkdir /app && chown user:user /app WORKDIR /app COPY Gemfile Gemfile.lock ./ RUN bundle install USER user Again you may build it with something like this docker build -t dap-docker-ruby-server . while you are in the project folder. But as we decided to stick with a container for the debugger, we need to create one! It is easy (but take note that we have to specify the folder mappings when creating a container! ): docker create -i -v `pwd`:/app -w /app --name dap-docker-ruby-server dap-docker-ruby-server node /debugger/extension/dist/debugger/main.js . Configuration # Lets use a yaml persistent configuration, we may use something like this (in .lsp-docker.yml in the project folder): lsp : server : type : docker subtype : image name : lsp-docker-ruby-server server : ruby-ls launch_command : \"bundle exec solargraph stdio\" mappings : - source : \".\" destination : \"/app\" debug : type : docker subtype : container name : dap-docker-ruby-server enabled : true provider : \"Ruby\" template : \"Ruby::Run\" launch_command : \"node /debugger/extension/dist/debugger/main.js\" # It is meaningless as we use a container, but still Next we have to register both language server and debugger when the project is opened in Emacs: use lsp-docker-register and dap-docker-register interactive functions. If everything is fine you may launch a language server by a simple lsp invocation and DAP by dap-debug and selecting a dockerized debug template.","title":"Docker integration"},{"location":"tutorials/docker-integration/#docker-integration","text":"Author: @factyy","title":"Docker integration"},{"location":"tutorials/docker-integration/#reason","text":"You can use docker-wrapped both the language server and debugger and connect to them using LSP/DAP. Imagine that you have a short-time project (or a sideproject) and you don't want to bring any software packages to your local machine. Now it is simple: wrap the language server and debugger you need in docker and use lsp-docker for LSP and dap-mode for DAP.","title":"Reason"},{"location":"tutorials/docker-integration/#features","text":"Most of the lsp-mode and dap-mode features, but with the ability to use containerized environments. Note: some of the features may yet to be tested, so any help finding and fixing any bugs in them is highly appreciated!","title":"Features"},{"location":"tutorials/docker-integration/#components-language-server-lsp-support","text":"You can use manually built containers or images hosting language server(s), just follow a few simple rules (shown below). Note: this info is based on the readme in the original project, take a look at lsp-docker for additional info.","title":"Components: Language Server / LSP support"},{"location":"tutorials/docker-integration/#building-a-container-or-an-image","text":"You have 2 constraints: A language server must be launched in stdio mode (other types of communication are yet to be supported). A docker container (only container subtype, see the configuration below) must have your language server as an entrypoint (basically you have to be able to launch it with docker start -i as it is launched this way with lsp-docker ). When you have sucessfully built a language server, you have to register it with either a configuration file or a .dir-locals file.","title":"Building a container (or an image):"},{"location":"tutorials/docker-integration/#registering-a-language-server-using-a-persistent-configuration-file","text":"A configuration file is a yaml file that is named .lsp-docker.yml or .lsp-docker.yaml and looks generally like this: lsp : server : type : docker subtype : container # Or image. container subtype means launching an existing container # image subtype means creating a new container each time from a specified image name : not-significant-but-unique-name # Must be unique across all language servers server : server-id-of-the-base-server # Server id of a registered server (by lsp-mode) launch_command : \"launch command with arguments\" # Launch command of the language server # (selected by a server id specified above) in stdio mode # Note: launch_command is not used with container subtype servers # as a command is embedded in a container itself and serves as an entrypoint mappings : - source : \"/your/host/source/path\" destination : \"/your/local/path/inside/a/container\"","title":"Registering a language server using a persistent configuration file:"},{"location":"tutorials/docker-integration/#registering-a-language-server-using-a-dir-locals-file","text":"Just refer to the source code and general conventions of using .dir-locals. The variable you need is lsp-docker-persistent-default-config, its content is merged with the lsp section from a configuration file (if present).","title":"Registering a language server using a .dir-locals file:"},{"location":"tutorials/docker-integration/#components-debugger-dap","text":"Note: this info is based on the readme in the original project, take a look at dap-mode for additional info. Configure it either with a .dir-locals file or drop an .lsp-docker.yml configuration file (use lsp-docker for general reference). Basically you have one function dap-docker-register that performs all the heavy lifting (finding the original debug template, patching it, registering a debug provider e.t.c). This function examines a configuration file or falls back to the default configuration (which can be patched using the .dir-locals approach, take a note that the default configuration doesn\u2019t provide any sane defaults for debugging) and then operates on the combination of the two. This mechanism is the same as in lsp-docker . Note: currently you cannot use this mode when using a network connection to connect to debuggers (this part is yet to be implemented). Still want to talk to debuggers over network? In order to do so you have to look at the launch-args patching done by dap-docker--dockerize-start-file-args , you have to somehow assign nil to dap-server-path before it is passed further into session creation. If you want to stick to a configuration file, take a look at the example below: lsp : server : # 'lsp-docker' fields mappings : - source : \"/your/host/source/path\" # used both by 'lsp-docker' and 'dap-docker' destination : \"/your/local/path/inside/a/container\" # used both by 'lsp-docker' and 'dap-docker' debug : type : docker # only docker is supported subtype : image # or 'container' name : # you can omit this field # in this case the 'lsp-docker' ('server' section) image name is used enabled : true # you can explicitly disable 'dap-docker' by using 'false' provider : template : launch_command : # e.g. if you have installed a debug server in a different directory, not used with 'container' subtype debuggers","title":"Components: Debugger / DAP"},{"location":"tutorials/docker-integration/#examples","text":"Let's develop and debug a simple Ruby application (that uses bundler nonetheless). In the project folder we have at least the actual code and Gemfile with Gemfile.lock . First of all we have to build the images and containers. Let's stick with an image for a language server and a container for debugging. In order to have LSP support in Ruby we have to place solargraph in Gemfile .","title":"Examples"},{"location":"tutorials/docker-integration/#building-language-server","text":"So it is easy to use something like this as a Dockerfile for a language server (using debian-slim as a base image, but it is a matter of personal taste): FROM ruby:3.1.1-slim-bullseye as app # What if your gems use native extensions? RUN apt-get update && apt-get install -y --no-install-recommends \\ build-essential \\ && rm -rf /var/lib/apt/lists/* # You may decide not to create a user, it is ok to delete these lines RUN addgroup --gid 1000 user && \\ adduser --disabled-password --gecos '' --uid 1000 --gid 1000 user # Just an appropriate folder, a matter of taste again RUN mkdir /app && chown user:user /app WORKDIR /app # Install all the gems, INCLUDING the language server COPY Gemfile Gemfile.lock ./ RUN bundle install # Use the created user, remove this line if you deleted the user creation lines USER user You may build it with something like this docker build -t lsp-docker-ruby-server . while you are in the project folder.","title":"Building: Language Server"},{"location":"tutorials/docker-integration/#building-debugger","text":"With a debugger it is a bit more complicated: first of all you need node to run the DAP server (as it is a VSCode extension) and second you need to place the extension into the container. You can download the extension (take the latest version) from the VSCode marketplace and place it in your project folder ( vspackage.zip for convenience). In this case your Dockerfile may look like this: FROM ruby:3.1.1-slim-bullseye as app RUN apt-get update && apt-get install -y --no-install-recommends \\ build-essential \\ nodejs \\ unzip \\ && rm -rf /var/lib/apt/lists/* # Create a folder for the debugger RUN mkdir /debugger WORKDIR /debugger COPY vspackage.zip . RUN unzip vspackage.zip -d . RUN addgroup --gid 1000 user && \\ adduser --disabled-password --gecos '' --uid 1000 --gid 1000 user RUN mkdir /app && chown user:user /app WORKDIR /app COPY Gemfile Gemfile.lock ./ RUN bundle install USER user Again you may build it with something like this docker build -t dap-docker-ruby-server . while you are in the project folder. But as we decided to stick with a container for the debugger, we need to create one! It is easy (but take note that we have to specify the folder mappings when creating a container! ): docker create -i -v `pwd`:/app -w /app --name dap-docker-ruby-server dap-docker-ruby-server node /debugger/extension/dist/debugger/main.js .","title":"Building: Debugger"},{"location":"tutorials/docker-integration/#configuration","text":"Lets use a yaml persistent configuration, we may use something like this (in .lsp-docker.yml in the project folder): lsp : server : type : docker subtype : image name : lsp-docker-ruby-server server : ruby-ls launch_command : \"bundle exec solargraph stdio\" mappings : - source : \".\" destination : \"/app\" debug : type : docker subtype : container name : dap-docker-ruby-server enabled : true provider : \"Ruby\" template : \"Ruby::Run\" launch_command : \"node /debugger/extension/dist/debugger/main.js\" # It is meaningless as we use a container, but still Next we have to register both language server and debugger when the project is opened in Emacs: use lsp-docker-register and dap-docker-register interactive functions. If everything is fine you may launch a language server by a simple lsp invocation and DAP by dap-debug and selecting a dockerized debug template.","title":"Configuration"},{"location":"tutorials/how-to-turn-off/","text":"A guide on disabling/enabling lsp-mode features # Early in the project, we decided to auto-configure/enable all of the stable features by default in order to improve discoverability and simplify the setup for the beginners. This decision was considered good by the majority of the users coming from IDEs but still in Emacs community there are a lot of people looking for a minimal distraction-free experience especially traditional long time users. Although the turn off defcustom settings are documented in corresponding README and available via customize-group it turned out that it is not very easy to find them when you want to turn a particular feature off which led to a lot of frustration. Hopefully, this article will help solving that issue: 1. Symbol highlighting ( setq lsp-enable-symbol-highlighting nil ) 2. lsp-ui-doc - on hover dialogs. * disable via (setq lsp-ui-doc-enable nil) * disable cursor hover (keep mouse hover) ( setq lsp-ui-doc-show-with-cursor nil ) * disable mouse hover (keep cursor hover) ( setq lsp-ui-doc-show-with-mouse nil ) 3. Lenses ( setq lsp-lens-enable nil ) 4. Headerline ( setq lsp-headerline-breadcrumb-enable nil ) 5. Sideline code actions * disable whole sideline via ( setq lsp-ui-sideline-enable nil ) * hide code actions ( setq lsp-ui-sideline-show-code-actions nil ) 6. Sideline hover symbols * disable whole sideline via ( setq lsp-ui-sideline-enable nil ) * hide only hover symbols ( setq lsp-ui-sideline-show-hover nil ) 7. Modeline code actions ( setq lsp-modeline-code-actions-enable nil ) 8. Flycheck (or flymake if no flycheck is present) ( setq lsp-diagnostics-provider :none ) 9. Sideline diagnostics * disable whole sideline via ( setq lsp-ui-sideline-enable nil ) * hide only errors ( setq lsp-ui-sideline-show-diagnostics nil ) 10. Eldoc ( setq lsp-eldoc-enable-hover nil ) 11. Modeline diagnostics statistics ( setq lsp-modeline-diagnostics-enable nil ) 12. Signature help ( setq lsp-signature-auto-activate nil ) ;; you could manually request them via `lsp-signature-activate` 13. Signature help documentation (keep the signatures) ( setq lsp-signature-render-documentation nil ) 14. Completion ( company-mode ) ( setq lsp-completion-provider :none ) 15. Completion item detail ( setq lsp-completion-show-detail nil ) 16. Completion item kind ( setq lsp-completion-show-kind nil )","title":"A guide on disabling/enabling lsp-mode features"},{"location":"tutorials/how-to-turn-off/#a-guide-on-disablingenabling-lsp-mode-features","text":"Early in the project, we decided to auto-configure/enable all of the stable features by default in order to improve discoverability and simplify the setup for the beginners. This decision was considered good by the majority of the users coming from IDEs but still in Emacs community there are a lot of people looking for a minimal distraction-free experience especially traditional long time users. Although the turn off defcustom settings are documented in corresponding README and available via customize-group it turned out that it is not very easy to find them when you want to turn a particular feature off which led to a lot of frustration. Hopefully, this article will help solving that issue: 1. Symbol highlighting ( setq lsp-enable-symbol-highlighting nil ) 2. lsp-ui-doc - on hover dialogs. * disable via (setq lsp-ui-doc-enable nil) * disable cursor hover (keep mouse hover) ( setq lsp-ui-doc-show-with-cursor nil ) * disable mouse hover (keep cursor hover) ( setq lsp-ui-doc-show-with-mouse nil ) 3. Lenses ( setq lsp-lens-enable nil ) 4. Headerline ( setq lsp-headerline-breadcrumb-enable nil ) 5. Sideline code actions * disable whole sideline via ( setq lsp-ui-sideline-enable nil ) * hide code actions ( setq lsp-ui-sideline-show-code-actions nil ) 6. Sideline hover symbols * disable whole sideline via ( setq lsp-ui-sideline-enable nil ) * hide only hover symbols ( setq lsp-ui-sideline-show-hover nil ) 7. Modeline code actions ( setq lsp-modeline-code-actions-enable nil ) 8. Flycheck (or flymake if no flycheck is present) ( setq lsp-diagnostics-provider :none ) 9. Sideline diagnostics * disable whole sideline via ( setq lsp-ui-sideline-enable nil ) * hide only errors ( setq lsp-ui-sideline-show-diagnostics nil ) 10. Eldoc ( setq lsp-eldoc-enable-hover nil ) 11. Modeline diagnostics statistics ( setq lsp-modeline-diagnostics-enable nil ) 12. Signature help ( setq lsp-signature-auto-activate nil ) ;; you could manually request them via `lsp-signature-activate` 13. Signature help documentation (keep the signatures) ( setq lsp-signature-render-documentation nil ) 14. Completion ( company-mode ) ( setq lsp-completion-provider :none ) 15. Completion item detail ( setq lsp-completion-show-detail nil ) 16. Completion item kind ( setq lsp-completion-show-kind nil )","title":"A guide on disabling/enabling lsp-mode features"},{"location":"tutorials/php-guide/","text":"Configuring Emacs as a PHP IDE # Author: @elken In this guide, I will show you how to configure lsp-mode and dap-mode for PHP development, using GNU Emacs as an example code base. At the end of this tutorial, Emacs should provide you with all the language-aware editor features you'd expect from a modern PHP IDE, such as Code completion Real-time syntax checking Code navigation (references/definitions/implementations/symbol search) Visual IDE debugger Document outline, breadcrumb and modeline widgets For all lsp-mode features, check here . Obtaining a language server # lsp-mode is a client-server application with Emacs acting as the client. In order for it to work, you have to install a separate language server that understands the specifics of your target language. Currently, there exists several options for an LSP server: Intelephense (automatic install) # Considered to be the most stable and recommended choice, but does however include a freemium model for some of the features. phpactor (manual install) # WIP fully open source, but doesn't support the full spec yet Serenata (manual install) # Currently doesn't seem active with no commits since May 2021 php-language-server (manual install) # No commits since December 2018, considered dead For the most part, you should be able to pick from at least Intelephense or phpactor, but for the purpose of this guide we will assume Intelephense. As expected, for the manual installations you have to follow the instructions listed on the linked pages. Project setup # Regular composer # For any plain composer projects, it should provide a great experience ootb unless you're using a complex framework like Laravel or Symfony. Following the configuration instructions linked below should be all you need Laravel # For the most part, Laravel should \"just work\"; with the caveat that the majority of the so-called \"magic methods\" won't be autocompleted properly. To get around this, there is a composer package called laravel-ide-helper which will pull together everything in your project and the laravel codebase. Follow the instructions on the laravel-ide-helper page (including the scripts changes, so you don't have to regenerate them manually) and add the generated files to source control ignore files. Configuration # Below is a minimal config to get started with LSP & PHP. It includes a couple of packages to create an IDE-like experience, such as snippets, a project tree viewer and an autocompletion interface. For the purposes of demos and screenshots the below config is all that will be used unless otherwise specified, so you have the confidence that you can easily replicate everything here. Also to note that configuration frameworks such as Spacemacs and Doom Emacs include pre-configured setups for this, so feel free to dig around in those sources to get some useful snippets! ( require 'package ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( package-initialize ) ( setq package-selected-packages ' ( lsp-mode yasnippet lsp-treemacs flycheck company which-key dap-mode php-mode )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ( which-key-mode ) ( add-hook 'php-mode-hook 'lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) treemacs-space-between-root-nodes nil company-idle-delay 0.0 company-minimum-prefix-length 1 lsp-idle-delay 0.1 ) ;; clangd is fast ( with-eval-after-load 'lsp-mode ( add-hook 'lsp-mode-hook #' lsp-enable-which-key-integration ) ( require 'dap-php ) ( yas-global-mode )) Feature overview # To reduce the complexity, we won't touch on any frameworks and will instead just experiment with a simple PHP file. Also as mentioned above, this will be with Intelephense and a paid licence, so if you either use the free version or phpactor, your mileage may vary. To follow along, simply create a PHP file anywhere on your file system (or use one you have already). For these examples, I'll be using /tmp/lsp/test.php . For starters, let's open our blank file. (emacs-php.el is the contents of the above snippet on my local file system) mkdir -p /tmp/lsp emacs -Q -l emacs-php.el /tmp/lsp/test.php After opening the file, you should be prompted to install a language server: Type \"iph\" (or tab-complete it) and hit enter. Once your compilation looks similar to the below, close and reopen emacs and open the file again. Now, if everything was successful you will be asked to select a project root. Note: the project root is needed by the language server in order to know where to start the project discovery from. Typically, this is the git repository root but since exceptions to this rule have caused us a lot of trouble in the past (monorepos come to mind), lsp-mode by default asks the user to manually confirm the project root the first time a project is opened. In this instance, select i . Completion # By default, lsp-mode uses company-mode as its completion frontend. When present, company-mode will be auto-configured and it will just work. For example, after adding a tag in ReactDOM.render with element . import React from 'react' ; import ReactDOM from 'react-dom' ; import './index.css' ; import App from './App' ; import reportWebVitals from './reportWebVitals' ; var element = React . createElement ( 'h1' , { className : 'greeting' }, 'Hello, world!' ); ReactDOM . render ( element , document . getElementById ( 'root' )); reportWebVitals (); Once you save the index.js file, the running instance of the server will update the web page and you'll see \"Hello World!\". Debugging React # To debug the client side React code, we'll need to install the Debugger for Chrome extension. Note: This tutorial assumes you have the Chrome browser installed. There are also debugger extensions for the Edge and Firefox browsers. Press M-x and type dap-chrome-setup . Set a breakpoint # To set a breakpoint in index.js , click on the gutter to the left of the line numbers. This will set a breakpoint which will be visible as a red circle. Configure the Chrome debugger # We need to initially configure the debugger . To do so, create a launch.json file in the .vscode/ subfolder of the project root with a configuration to launch the website: { \"version\" : \"0.2.0\" , \"configurations\" : [ { \"type\" : \"chrome\" , \"request\" : \"launch\" , \"name\" : \"Launch Chrome against localhost\" , \"url\" : \"http://localhost:3000\" , \"webRoot\" : \"${workspaceFolder}\" } ] } Ensure that your development server is running ( npm start ). Then type M-x dap-debug or use Debug -> Start menu. The source code where the breakpoint is set runs on startup before the debugger was attached, so we won't hit the breakpoint until we refresh the web page. Refresh the page and you should hit your breakpoint. You can step through your source code using M-x dap-next , inspect variables such as element , and see the call stack of the client side React application. The Debugger for Chrome extension README has lots of information on other configurations, working with sourcemaps, and troubleshooting. You can review it their README Live editing and debugging # If you are using webpack together with your React app, you can have a more efficient workflow by taking advantage of webpack's HMR mechanism which enables you to have live editing and debugging directly from Emacs. You can learn more in this Live edit and debug your React apps directly from Emacs(TO BE PORTED TO EMACS) blog post and the webpack Hot Module Replacement documentation(TO BE PORTED TO EMACS) . Linting # Linters analyze your source code and can warn about potential problems before running your application. The JavaScript language service included with Emacs has syntax error checking support by default, which you can see in action in the Errors List panel ( M-x lsp-treemacs-errors-list ). Try making a small error in your React source code and you'll see a red squiggle and an error in the Errors List panel. Linters can provide more sophisticated analysis, enforcing coding conventions and detecting anti-patterns. A popular JavaScript linter is ESLint . ESLint, when combined with the ESLint Emacs extension , provides a great in-product linting experience. First, install the ESLint command-line tool: npm install -g eslint Then install the ESLint language server by doing M-x lsp-install-server RET eslint RET . Once the ESLint extension is installed, you'll want to create an ESLint configuration file, .eslintrc.js . You can create one using M-x lsp-eslint-create-default-configuration . The command will prompt you to answer a series of questions in a separate window. Accept the defaults, and it will create a .eslintrc.js file in your project root that looks something like this: module . exports = { \"env\" : { \"browser\" : true , \"es2020\" : true }, \"extends\" : [ \"eslint:recommended\" , \"plugin:react/recommended\" ], \"parserOptions\" : { \"ecmaFeatures\" : { \"jsx\" : true }, \"ecmaVersion\" : 11 , \"sourceType\" : \"module\" }, \"plugins\" : [ \"react\" ], \"rules\" : { } }; ESLint will now analyze open files and shows a warning in index.js about 'App' being defined but never used. You can modify the ESLint rules in the .eslintrc.js file. Let's add an error rule for extra semi-colons: \"rules\" : { \"no-extra-semi\" : \"error\" } Now when you mistakenly have multiple semicolons on a line, you'll see an error (red squiggle) in the editor and error entry in the Problems panel. Popular Starter Kits # In this tutorial, we used the create-react-app generator to create a simple React application. There are lots of great samples and starter kits available to help build your first React application. TypeScript React # If you're curious about TypeScript and React, you can also create a TypeScript version of the create-react-app application. See the details at TypeScript-React-Starter on the TypeScript Quick Start site.","title":"React JavaScript Tutorial in Emacs"},{"location":"tutorials/reactjs-tutorial/#using-react-in-emacs","text":"React is a popular JavaScript library developed by Facebook for building web application user interfaces. The Emacs editor supports React.js IntelliSense and code navigation out of the box.","title":"Using React in Emacs"},{"location":"tutorials/reactjs-tutorial/#welcome-to-react","text":"We'll be using the create-react-app generator for this tutorial. To use the generator as well as to run the React application server, you'll need the Node.js JavaScript runtime and npm (Node.js package manager) installed. npm is included with Node.js, which you can download and install from Node.js downloads . Tip : To test that you have Node.js and npm correctly installed on your machine, you can type node --version and npm --version in a terminal or command prompt. You can now create a new React application by typing: npx create-react-app my-app where my-app is the name of the folder for your React application. It may take a few minutes to create it and to install its dependencies. Note : If you've previously installed create-react-app globally via npm install -g create-react-app , we recommend you uninstall the package using npm uninstall -g create-react-app to ensure that npx always uses the latest version. Let's quickly run our React application by navigating to the new folder and typing npm start to start the web server and to open the application in a browser: cd my-app npm start You should see the React logo and a link to \"Learn React\" on http://localhost:3000 in your browser. We'll leave the web server running while we look at the application with Emacs.","title":"Welcome to React"},{"location":"tutorials/reactjs-tutorial/#emacs-configuration","text":"Here is a minimal configuration to run this tutorial: ( package-initialize ) ( add-to-list 'package-archives ' ( \"melpa\" . \"http://melpa.org/packages/\" ) t ) ( setq package-selected-packages ' ( lsp-mode yasnippet lsp-treemacs helm-lsp projectile hydra flycheck company avy which-key helm-xref dap-mode zenburn-theme json-mode )) ( when ( cl-find-if-not #' package-installed-p package-selected-packages ) ( package-refresh-contents ) ( mapc #' package-install package-selected-packages )) ( load-theme 'zenburn t ) ( helm-mode ) ( require 'helm-xref ) ( define-key global-map [ remap find-file ] #' helm-find-files ) ( define-key global-map [ remap execute-extended-command ] #' helm-M-x ) ( define-key global-map [ remap switch-to-buffer ] #' helm-mini ) ( which-key-mode ) ( add-hook 'prog-mode-hook #' lsp ) ( setq gc-cons-threshold ( * 100 1024 1024 ) read-process-output-max ( * 1024 1024 ) company-idle-delay 0.0 company-minimum-prefix-length 1 create-lockfiles nil ) ;; lock files will kill `npm start' ( with-eval-after-load 'lsp-mode ( require 'dap-chrome ) ( add-hook 'lsp-mode-hook #' lsp-enable-which-key-integration ) ( yas-global-mode )) Tip: if you want to use M-. xref-find-definition in js buffers, add the following to your config: ( with-eval-after-load 'js ( define-key js-mode-map ( kbd \"M-.\" ) nil )) To open your React application in Emacs, open another terminal or command prompt window, navigate to the my-app folder and type: emacs my-app/src/index.js Tip : For optimal experience use either Emacs 27.1 or gccemacs .","title":"Emacs configuration"},{"location":"tutorials/reactjs-tutorial/#installing-the-typescript-language-server","text":"Emacs supports automatic language server installation, so the first time you run M-x lsp in a JavaScript file opened in it, you will be prompted for a language server to install. Select ts-ls .","title":"Installing the typescript language server"},{"location":"tutorials/reactjs-tutorial/#importing-the-project","text":"Then you have to select project root. Press i .","title":"Importing the project"},{"location":"tutorials/reactjs-tutorial/#syntax-highlighting-and-bracket-matching","text":"You'll notice that Emacs has syntax highlighting for the various source code elements and, if you put the cursor on a parenthesis, the matching bracket is also selected.","title":"Syntax highlighting and bracket matching"},{"location":"tutorials/reactjs-tutorial/#intellisense","text":"As you start typing in index.js , you'll see smart suggestions or completions. After you select a suggestion and type . , you see the types and methods on the object through IntelliSense . Emacs uses the TypeScript language service for its JavaScript code intelligence and it has a feature called Automatic Type Acquisition (ATA). ATA pulls down the npm Type Declaration files ( *.d.ts ) for the npm modules referenced in the package.json . If you select a method, you'll also get parameter help:","title":"IntelliSense"},{"location":"tutorials/reactjs-tutorial/#go-to-definition-peek-definition","text":"Through the TypeScript language service, Emacs can also provide type definition information in the editor through Go to Definition ( M-. ) or Peek Definition ( M-x lsp-ui-peek-find-definitions ). Put the cursor over the App , right click and select Go to definition . Note : Peek definition requires installing lsp-ui package which is not part of the default installation.","title":"Go to Definition, Peek definition"},{"location":"tutorials/reactjs-tutorial/#hello-world","text":"Let's update the sample application to \"Hello World!\". Add the link to declare a new H1 header and replace the tag in ReactDOM.render with element . import React from 'react' ; import ReactDOM from 'react-dom' ; import './index.css' ; import App from './App' ; import reportWebVitals from './reportWebVitals' ; var element = React . createElement ( 'h1' , { className : 'greeting' }, 'Hello, world!' ); ReactDOM . render ( element , document . getElementById ( 'root' )); reportWebVitals (); Once you save the index.js file, the running instance of the server will update the web page and you'll see \"Hello World!\".","title":"Hello World!"},{"location":"tutorials/reactjs-tutorial/#debugging-react","text":"To debug the client side React code, we'll need to install the Debugger for Chrome extension. Note: This tutorial assumes you have the Chrome browser installed. There are also debugger extensions for the Edge and Firefox browsers. Press M-x and type dap-chrome-setup .","title":"Debugging React"},{"location":"tutorials/reactjs-tutorial/#set-a-breakpoint","text":"To set a breakpoint in index.js , click on the gutter to the left of the line numbers. This will set a breakpoint which will be visible as a red circle.","title":"Set a breakpoint"},{"location":"tutorials/reactjs-tutorial/#configure-the-chrome-debugger","text":"We need to initially configure the debugger . To do so, create a launch.json file in the .vscode/ subfolder of the project root with a configuration to launch the website: { \"version\" : \"0.2.0\" , \"configurations\" : [ { \"type\" : \"chrome\" , \"request\" : \"launch\" , \"name\" : \"Launch Chrome against localhost\" , \"url\" : \"http://localhost:3000\" , \"webRoot\" : \"${workspaceFolder}\" } ] } Ensure that your development server is running ( npm start ). Then type M-x dap-debug or use Debug -> Start menu. The source code where the breakpoint is set runs on startup before the debugger was attached, so we won't hit the breakpoint until we refresh the web page. Refresh the page and you should hit your breakpoint. You can step through your source code using M-x dap-next , inspect variables such as element , and see the call stack of the client side React application. The Debugger for Chrome extension README has lots of information on other configurations, working with sourcemaps, and troubleshooting. You can review it their README","title":"Configure the Chrome debugger"},{"location":"tutorials/reactjs-tutorial/#live-editing-and-debugging","text":"If you are using webpack together with your React app, you can have a more efficient workflow by taking advantage of webpack's HMR mechanism which enables you to have live editing and debugging directly from Emacs. You can learn more in this Live edit and debug your React apps directly from Emacs(TO BE PORTED TO EMACS) blog post and the webpack Hot Module Replacement documentation(TO BE PORTED TO EMACS) .","title":"Live editing and debugging"},{"location":"tutorials/reactjs-tutorial/#linting","text":"Linters analyze your source code and can warn about potential problems before running your application. The JavaScript language service included with Emacs has syntax error checking support by default, which you can see in action in the Errors List panel ( M-x lsp-treemacs-errors-list ). Try making a small error in your React source code and you'll see a red squiggle and an error in the Errors List panel. Linters can provide more sophisticated analysis, enforcing coding conventions and detecting anti-patterns. A popular JavaScript linter is ESLint . ESLint, when combined with the ESLint Emacs extension , provides a great in-product linting experience. First, install the ESLint command-line tool: npm install -g eslint Then install the ESLint language server by doing M-x lsp-install-server RET eslint RET . Once the ESLint extension is installed, you'll want to create an ESLint configuration file, .eslintrc.js . You can create one using M-x lsp-eslint-create-default-configuration . The command will prompt you to answer a series of questions in a separate window. Accept the defaults, and it will create a .eslintrc.js file in your project root that looks something like this: module . exports = { \"env\" : { \"browser\" : true , \"es2020\" : true }, \"extends\" : [ \"eslint:recommended\" , \"plugin:react/recommended\" ], \"parserOptions\" : { \"ecmaFeatures\" : { \"jsx\" : true }, \"ecmaVersion\" : 11 , \"sourceType\" : \"module\" }, \"plugins\" : [ \"react\" ], \"rules\" : { } }; ESLint will now analyze open files and shows a warning in index.js about 'App' being defined but never used. You can modify the ESLint rules in the .eslintrc.js file. Let's add an error rule for extra semi-colons: \"rules\" : { \"no-extra-semi\" : \"error\" } Now when you mistakenly have multiple semicolons on a line, you'll see an error (red squiggle) in the editor and error entry in the Problems panel.","title":"Linting"},{"location":"tutorials/reactjs-tutorial/#popular-starter-kits","text":"In this tutorial, we used the create-react-app generator to create a simple React application. There are lots of great samples and starter kits available to help build your first React application.","title":"Popular Starter Kits"},{"location":"tutorials/reactjs-tutorial/#typescript-react","text":"If you're curious about TypeScript and React, you can also create a TypeScript version of the create-react-app application. See the details at TypeScript-React-Starter on the TypeScript Quick Start site.","title":"TypeScript React"}]} \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 4c0603ceb2..2683e5ab5d 100644 Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ