Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Tags: kakoune-lsp/kakoune-lsp

Tags

v18.2.0

Toggle v18.2.0's commit message
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.

v18.1.3

Toggle v18.1.3's commit message
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`.

v18.1.2

Toggle v18.1.2's commit message
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.

v18.1.1

Toggle v18.1.1's commit message
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.

v18.1.0

Toggle v18.1.0's commit message
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.

v18.0.3

Toggle v18.0.3's commit message
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.

v18.0.2

Toggle v18.0.2's commit message
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.

v18.0.1

Toggle v18.0.1's commit message
Fix error parsing a legacy `kak-lsp.toml` that doesn't have a `langua…

…ge_ids` section.

v18.0.0

Toggle v18.0.0's commit message
The `kak-lsp.toml` config file has been deprecated, as have been `lsp…

…_config`, `KAK_LSP_PROJECT_ROOT_*` and `KAK_LSP_FORCE_PROJECT_ROOT` as well as commandline flags `--config`, `--log` and `--timeout`.

This is in favor of new Kakoune options `lsp_servers`, `lsp_language_id`, `lsp_semantic_tokens`, `lsp_timeout`, `lsp_snippet_support` and `lsp_file_watch_support`.
In particular, the `lsp_servers` option makes it easier to
1. override servers only for specific filetypes, and
2. set server config dynamically (based on project etc.) via Kakoune commands and hooks.
For backwards compatibility, the new options are ignored if a `kak-lsp.toml` exists in the user's config directory (or is provided via `--config`).
By default, `lsp_servers` and `lsp_language_id` are populated via the hooks in the `lsp-filetype-.*` groups, feel free to remove them.
See the documentation of the respective options for details.
Thanks to Tobias Pisani for designing this config rework.

Breaking changes:
- The `--session` argument used to allow using a single kakoune-lsp server from multiple Kakoune sessions.
  This feature has been removed to allow supporting `rename-session` better;
  it may be added back if we find a need for it.
  The `--session` argument is now ignored, except when `kak-lsp` is started outside the editor.
  This means that you probably don't need to override the `lsp_cmd` option anymore.
  Additionally, `rename-session` no longer breaks kakoune-lsp by invalidating the `--session` argument.
- `lsp-stop-on-exit-disable` and `lsp-stop-on-exit-enable` no longer have an effect.
  Instead, the kakoune-lsp server will always stop running as soon as its associated Kakoune session exits.
- The default server timeout has been increased from 1800 seconds (30 minutes) to 18000 seconds (5 hours),
  to avoid potential delays from frequent restarts.

Additions:
- Log messages are now written to the `*debug*` buffer.
- New option `lsp_debug` to control log verbosity without restarting `kak-lsp`.
- New command `lsp-restart`.
- The `--kakoune` argument is no longer needed and has been deprecated.
  This simplifies the minimal configuration to `eval %sh{kak-lsp}; lsp-enable`.
- If the server supports LSP workspaceFolders, a single language server
  instance will be reused for all projects in a Kakoune session.
  The file where the language server was originally started from determines the (only) workspaceFolder we send to the language server.
- In language server definitions, the `command` field is now optional and defaults to the name of the language server.
- New faces `DiagnosticTagDeprecated` and `DiagnosticTagUnnecessary` for the LSP's diagnostic tags.

Fixes:
- On `rename-session`, the kakoune-lsp server for the old session will be shut down.
  This only works with Kakoune version >= v2024.05.09.
- `lsp-*` commands that require `lsp-enable`/`lsp-enable-window` now fail more explicitly.
- Fix a crash when requesting code actions from `rust-analyzer`.
- Fix a crash when running Rust unit tests via `rust-analyzer's` `lsp-code-lens`.
- `lsp-goto-document-symbol` now uses qualified names, to make sure that it shows all symbols in the current buffer.

v17.1.2

Toggle v17.1.2's commit message
Additions:

- Experimental LSP client capabilities can now be enabled via `kak-lsp.toml`.

Fixes:
- Fix crash on multiple language servers when one server doesn't support code actions.
- For consistency with our `root_path` project detection mechanism, the default config for Julia no longer supports the `JULIA_PROJECT` environment variable nor falls back on the global Julia environment.
- Fix build on Rust 1.80.