Tags: kakoune-lsp/kakoune-lsp
Tags
Breaking changes:
- Loading the plugin (`eval %sh{kak-lsp}`) no longer adds to your `modelinefmt` option.
We recommend adding the following to your config, which restores the old behavior,
notably adding function names (breadcrumbs) in the modeline:
```kakrc
set-option global modelinefmt "%opt{lsp_modeline} %opt{modelinefmt}"
```
- The goto-mode mappings (`gd`, `gr` and `gy`) are no longer added by default. We recommend you add them back with
```kakrc
map global goto d <esc>:lsp-definition<ret> -docstring 'LSP definition'
map global goto r <esc>:lsp-references<ret> -docstring 'LSP references'
map global goto y <esc>:lsp-type-definition<ret> -docstring 'LSP type definition'
```
Additions:
- Default configuration for FSharp, Odin and Lean.
- `lsp-definition` (and `lsp-type-definition` etc.), `lsp-highlight-references`, `lsp-goto-document-symbol` now place the cursor at the beginning of the target selection instead of at the end (#859).
- Support for fetching Lean goals with `$/lean/plainGoal`.
- Command prompt completion for `lsp-execute-command`.
- `lsp-document-symbol` moves the cursor in the `*goto*` buffer to the symbol that corresponds to the main cursor position.
- `lsp-diagnostics` moves the cursor in the `*diagnostics*` buffer to the diagnostic nearest to the main cursor.
- `lsp-hover` now shows diagnostics before hover info (#819).
- `lsp-diagnostic-object` can now look for `info` and `hint` level diagnostics (#844).
- When multiple servers provide code actions, `lsp-code-actions` will now prefix code action titles with `[$server_name] `, to make it easy to filter.
Fixes:
- Actually use cmake-language-server for `cmake` type files.
- Fixed Python root resolution (removed `requirements.txt`, added `poetry.lock`) (#857).
Additions:
- For some languages like Rust, symbol kinds as shown by `lsp-document-symbol` or `lsp-workspace-symbol-incr` are now translated to the native keywords (e.g. from `Function` to `fn`).
This is achieved via a configuration knob `[<server>.symbol_kinds]` in the `lsp_servers` option.
- Breadcrumbs in the modeline now show the symbol kind if `[<server>.symbol_kinds]` is configured.
- The `*diagnostics*` buffer created by `lsp-diagnostics` now shows one
diagnostic item per line, even when the diagnostic text has multiple lines.
Use `lsp-hover{,-buffer}` for multiline versions.
- Tweak the default configuration for `jdtls` to support their flavor of `workspace/didChangeConfiguration`.
Fixes:
- Fix crashes when receiving invalid 'lsp_servers' options or invalid text ranges from the language server.
Fixes: - Use `dart language-server` instead of dart analysis server. - Use `rust-analyzer` from path instead of `$(rustup which rust-analyzer)`. - Fix error when `lsp-rename` is used with `lsp-enable-window`. - Fix `lsp-object` when multiple language servers are active but some don't support `textDocument/documentSymbol`. - Fix a regression from 18.0.0 causing crashes on some historical configurations. - Prior versions would reuse a single language server instance across files with different project roots if the server supports `workspaceFolders`. This caused problems when using `lua-language-server` on multiple projects with different server-specific configuration. The `lsp_servers` option has learned a new config option `single_instance`, to explicitly control whether the given server is reused across project roots, overriding the detection based on `workspaceFolders`. Additions: - Add diagnostic code, description, source in `lsp-diagnostics` and `lsp-hover`.
Fixes: - Fixed a regression from 18.1.1 causing the wrong language ID to be sent for JSX/TSX files. - Silence errors in `*debug*` buffer when `lsp-disable` is used with optional hooks such as inlay hints. - `lsp-disable; lsp-enable` no longer stomps auto hover hooks set by the user.
Fixes: - Fixed a regression from 18.1.0 that caused crashes with some legacy configurations. - Fixed a regression from 18.0.0 that caused crashes when a `*-sync` request was used before `lsp-enable`. - Fixed a regression from 14.1.0 that caused `lsp-rename` to corrupt files containing multibyte characters. - Fixed a crash after a server restart when visiting files that don't exist on disk.
Additions: - Default configuration for `typst`, using `tinymist`. - Improve default configuration for HTML/CSS/JSON language servers, fixing `lsp-formatting` and others. - Further improve performance on systems where `TMPDIR` is not on `tmpfs`. - Remove shell calls from most request sending, improving performance on some platforms. - We used to send SIGKILL to language servers that fail to shutdown promptly. This code has been removed, giving the servers arbitrary amounts of time to exit. - Fail properly if a crashed session failed to clean up. Fixes: - Fix a race condition that would cause `kak-lsp` to fail to restart. - Fix potential race conditions where successive LSP requests might redundantly start the `kak-lsp` server. - Fix `kak-lsp` shutdown due to timeout potentially hanging the Kakoune session. - Fix a race condition in `lsp-disable; lsp-enable` by making `lsp-disable` wait until the exiting `kak-lsp` server is fully detached from the Kakoune session.
Yet another release to fix regressions present in the 18.0.* series: - Stop writing temporary files to `/tmp` on every LSP request since `/tmp` might not be mounted as `tmpfs`. - Work around a case where an unnecessary `KakEnd` hook in user configuration would cause delay when exiting the editor. - Fix crash when the `language` table is used in the `kak-lsp.toml` file (both of which are deprecated). - Fix crashes in `lsp-selection-range` and `lsp-show-message-request-next`. - Fix default configuration for Julia.
Breaking changes:
- The `-v` parameter is now ignored because, it pollutes the `*debug*` buffer since version 18.0.0.
Use the `lsp_debug` option instead. It's only meant to be set temporarily, for debugging.
For the case where `kak-lsp` is started outside the editor, an equivalent `--debug` command line flag has been added.
Fixes:
- Fix startup error on HTML files.
- Fix a regression in `lsp-workspace-symbol{,-incr}` commands.
- Fix crash due to a regression in `lsp-highlight-references`.
- Demote a number of logs to keep the `*debug*` buffer clean. Only errors, warnings and occasional info logs should be shown.
- The info box shown by `lsp-show-message-{error,warning,info}` is no longer created in the toolsclient but in the most recently used client.
- Fix missing error messages when LSP commands are run from either a scratch buffer or a buffer where the server is not installed.
Additions
- Further reduce the number of shell calls caused by hooks, in addition to the work done on this in version 18.0.0.
- When crashing via a Rust panic, the process is now aborted and creates a coredump.
Also, crashes are now shown in an info box.
PreviousNext