VimPlugin: lsp: Difference between revisions

From wikinotes
(Created page with "Neovim's builtin lsp client. = Documentation = <blockquote> {| class="wikitable" |- | <code>:h lsp</code> || https://neovim.io/doc/user/lsp.html |- |} </blockquote><!-- Documentation -->")
 
 
(9 intermediate revisions by the same user not shown)
Line 7: Line 7:
| <code>:h lsp</code> || https://neovim.io/doc/user/lsp.html
| <code>:h lsp</code> || https://neovim.io/doc/user/lsp.html
|-
|-
| avail lsp's || https://microsoft.github.io/language-server-protocol/implementors/servers/
|}
|}
</blockquote><!-- Documentation -->
</blockquote><!-- Documentation -->
= Configuration =
<blockquote>
== Language Install ==
<blockquote>
=== Vanilla ===
<blockquote>
* install an lsp using your OS (ex. <code>pacman -S gopls</code>
* enable lsp (ex. <code>lua require('lspconfig').gopls.setup{on_attach = custom_lsp_attach}</code>)
</blockquote><!-- Vanilla -->
=== lspconfig ===
<blockquote>
[[VimPlugin: nvim-lspconfig]] contains several pre-made LSP configurations.<br>
You'll still need to install the LSP provider.
</blockquote><!-- lspconfig -->
=== Mason ===
<blockquote>
[[VimPlugin: mason]] can automate installing LSPs.<br>
Use the <code>:Mason</code> command to see installed.
</blockquote><!-- Mason -->
</blockquote><!-- Language Install -->
== Disable Inline Linter Errors ==
<blockquote>
<syntaxhighlight lang="lua">
# neovim 6+
vim.diagnostic.config({virtual_text = false})
# old way
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
    vim.lsp.diagnostic.on_publish_diagnostics, {
        virtual_text = false
    }
)
</syntaxhighlight>
</blockquote><!-- Disable Inline Messages -->
Note that [[VimPlugin: Ale]] also has inline diagnostics.
</blockquote><!-- Configuration -->

Latest revision as of 23:22, 6 February 2023

Neovim's builtin lsp client.

Documentation

:h lsp https://neovim.io/doc/user/lsp.html
avail lsp's https://microsoft.github.io/language-server-protocol/implementors/servers/

Configuration

Language Install

Vanilla

  • install an lsp using your OS (ex. pacman -S gopls
  • enable lsp (ex. lua require('lspconfig').gopls.setup{on_attach = custom_lsp_attach})

lspconfig

VimPlugin: nvim-lspconfig contains several pre-made LSP configurations.
You'll still need to install the LSP provider.

Mason

VimPlugin: mason can automate installing LSPs.
Use the :Mason command to see installed.

Disable Inline Linter Errors

# neovim 6+
vim.diagnostic.config({virtual_text = false})

# old way
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
    vim.lsp.diagnostic.on_publish_diagnostics, {
        virtual_text = false
    }
)

Note that VimPlugin: Ale also has inline diagnostics.