mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-09-06 02:11:33 +00:00
docs: add LSP rework to release notes
This commit is contained in:
parent
15b508a19b
commit
fe55af7f7c
1 changed files with 55 additions and 0 deletions
|
@ -28,6 +28,61 @@
|
||||||
align with the "hunks" themed mapping and avoid conflict with the new [neogit]
|
align with the "hunks" themed mapping and avoid conflict with the new [neogit]
|
||||||
group.
|
group.
|
||||||
|
|
||||||
|
- Language modules are reworked to allow more flexible and close-to-neovim-API
|
||||||
|
configs. LSP configuration options are removed from `vim.languages` and should
|
||||||
|
be done via `vim.lsp.servers`.
|
||||||
|
|
||||||
|
## Language module LSP rework
|
||||||
|
|
||||||
|
in nvf v0.8, language modules are overhauled, with a few goals in mind:
|
||||||
|
|
||||||
|
1. get rid of our rigid "hard-coded" lua scripts, in favor of the more flexible
|
||||||
|
`setupOpts` styled options
|
||||||
|
2. have our new API stick closer to lua APIs, in this case `vim.lsp.config`
|
||||||
|
3. allow enabling multile LSPs per-language
|
||||||
|
|
||||||
|
This is, however, a big change, so breaking changes are inevitable. The most
|
||||||
|
important change is the removal of `vim.languages.<lang>.lsp.package` - you now
|
||||||
|
need to modify `vim.lsp.servers.<server>.cmd`, copying over any additional
|
||||||
|
arguments - these can be found in the source code files of the respective
|
||||||
|
language.
|
||||||
|
|
||||||
|
> [!NOTE] The `<server>` mentioned here is the name of the language server, as
|
||||||
|
> shown in `vim.languages.<lang>.lsp.servers`. This is NOT the name of the
|
||||||
|
> language.
|
||||||
|
|
||||||
|
Here's a quick overview at what the new language module, looks like:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
vim.languages.python = {
|
||||||
|
enable = true;
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
# You can now enable multiple LSPs per language
|
||||||
|
servers = ["pyright" "python-lsp-server"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# vim.lsp.servers is a wrapper for the lua API vim.lsp.config
|
||||||
|
# (see :help vim.lsp.config)
|
||||||
|
vim.lsp.servers = {
|
||||||
|
pyright = {
|
||||||
|
# `vim.languages.<lang>.lsp.package` is now removed, you have to
|
||||||
|
# modify the cmd field, and remember to copy over the arguments!
|
||||||
|
cmd = [(getExe pkgs.myCustomPyright) "--stdio"];
|
||||||
|
};
|
||||||
|
|
||||||
|
python-lsp-server = {
|
||||||
|
# server specific settings
|
||||||
|
settings = {
|
||||||
|
pylsp.signature.line_length = 100;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
[NotAShelf](https://github.com/notashelf):
|
[NotAShelf](https://github.com/notashelf):
|
||||||
|
|
||||||
[typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim
|
[typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue