Skip to content

Releases: kakoune-lsp/kakoune-lsp

v17.0.1

06 Apr 21:17
Compare
Choose a tag to compare

17.0.1 - 2024-04-06

Small patch release to fix a regression.

Fixes:

  • Fix startup error when both lsp.kak and Kakoune's jump.kak are autoloaded.

v17.0.0

04 Apr 21:15
Compare
Choose a tag to compare

17.0.0 - 2024-04-04

Breaking changes:

  • New default server for Nix, nil, replacing rnix-lsp.
  • The gopls usePlaceholders setting now defaults to true in the default config, make sure to either add a mapping for lsp-snippets-select-next-placeholders or disable snippets.
  • gopls default config has been changed so inlay (type) hints require no gopls-specific knobs to turn on. As with other servers, inlay hints are only requested when lsp-inlay-hints-enabled is used.
  • The default config for HTML/CSS/JSON has been updated to use vscode-{html,css,json}-language-server as server command instead of vscode-{html,css,json}-languageserver.
  • Support for watching files (workspace/didChangeWatchedFiles) is now disabled by default to avoid performance problems.
  • Inlay code lenses (used by OCaml and Haskell language servers) are now shown after the referenced line. This requires Kakoune version >= 2024.
  • lsp-auto-hover-enable no longer takes an argument; that functionality has been moved to lsp-auto-hover-buffer-enable, and it no longer magically spawns a client.
  • Removed lsp-connect experimental command.

Additions:

  • New commands jump-{next,previous} (which have also been added to Kakoune) replace and deprecate lsp-{next,previous}.
  • lsp-document-symbol no longer renders the same filename in every single line. Commands like jump-next and <ret> still work as before.
  • New option lsp_hover_max_info_lines replaces and deprecates lsp_hover_max_lines which now defaults to -1 which means lsp_hover_max_info_lines is used to control lines of information in the hover box.
  • New option lsp_hover_max_diagnostic_lines to limit the lines for diagnostics in the hover box.

Fixes:

  • Fix gopls code actions like "Extract function".
  • Various improvements to compatibility with old Kakoune.

v16.0.0

20 Feb 19:02
Compare
Choose a tag to compare

16.0.0 - 2024-02-20

Both the kak-lsp project and GitHub organization have been renamed to kakoune-lsp. The binary and config file paths are unchanged. Distributors are encouraged to update the package name.

Breaking changes:

  • kakoune-lsp now requires Kakoune version >= v2022.10.31 for commands that use a menu, like code actions.

Additions:

  • The modeline shows breadcrumbs like somemodule > someclass > somefunction to indicate the symbol around the main cursor.
  • lsp-document-symbols now renders symbols in a tree.
  • lsp_auto_show_code_actions (which renders a lightbulb in the modeline) now defaults to true.
  • lsp-code-lens can now run the test at cursor with rust-analyzer.

Fixes:

  • lsp-inlay-diagnostics no longer jump around when the cursor is moved over the diagnostics. To use this feature, use Kakoune version >= 2024 (not yet release, consider building from source).
  • When LSP integration is enabled, then disabled and enabled again, the KakEnd hook failed to ask the server to exit, which has been fixed.
  • lsp-auto-hover-enable now only re-renders hover info when the main selection changes. This means that :info is no longer shadowed immediately by auto hover.
  • Completion snippets (accessed via lsp-snippets-select-next-placeholders) can now be nested, making it possible to cycle through the arguments of nested function calls.
  • In some cases, selecting completions provided by rust-analyzer would labels with extra characters (like self.some_method(…)) which has been fixed.
  • completionItem.additionalTextEdits are now applied also when the server does not support completionItem/resolve.
  • Snippet metacharacters are now properly escaped, removing spurious backslashes from inserted completions.

v15.0.1

11 Dec 09:16
Compare
Choose a tag to compare

15.0.1 - 2023-12-11

Additions:

  • Default configuration for Markdown via marksman.
  • Default configuration for Java via jdtls.

Fixes:

  • Fix regression in "lsp-show-message-error" and friends.

v15.0.0

15 Nov 09:03
Compare
Choose a tag to compare

15.0.0 - 2023-11-15

Additions:

  • Support multiple language servers per filetype (#17).
  • The kak-lsp.toml format for specifying language servers has changed. The old format is still supported (#686).
  • lsp-goto-document-symbol learned to show a preview of the jump target.
  • Default configuration for PureScript and Scala.

Fixes:

  • A regression broke resolving completion item documentation when cycling through completion candidates, which has been fixed (#674).
  • New command lsp-declaration, implementing textDocument/declaration.

v14.2.0

12 Feb 23:17
Compare
Choose a tag to compare

14.2.0 - 2023-02-13

Additions:

  • Default configuration for CMake.
  • If there are no code actions in the main selection, lsp-code-actions will show code actions from anywhere on a selected line, to make it easier to perform quick-fixes.
  • If requested by the language server, kak-lsp will recursively watch the entire root directory for file changes and forward them to the server via workspace/didChangeWatchedFiles (#649).
  • kak-lsp now asks the server to cancel stale requests (#666).
  • lsp-did-change is async again, which can improve performance (#667).
  • kak-lsp is published to crates.io for easy installation (#660).

Fixes:

  • Fix race conditions when spinning up a new server in "kak-lsp --request" (#654), and in "lsp-hover-buffer" (#664).
  • Send inlay hints and semantic tokens only after buffer changes (#663).

v14.1.0

26 Oct 10:13
Compare
Choose a tag to compare

14.1.0 - 2022-10-26

Additions:

  • Default language server for protobuf.
  • Added support for codeAction/resolve, which allows to use code actions sent by Deno for example.
  • The recommended mappings have been augmented by new command lsp-diagnostic-object to jump to next/previous diagnostics.
  • lsp-auto-signature-help-enable now shows an info box by default, and formats the active parameter in a bold font.
  • lsp-definition and friends now select the symbol name instead of merely placing the cursor at symbol start. Same for lsp-find-error.
  • lsp-highlight-references now selects all references in the current buffer.
  • New lsp-inlay-code-lenses-enable command allows to render code lenses as virtual text (#623).
  • The support for filterText in completions no longer depends on an out-of-tree Kakoune feature.

Fixes:

  • Fix lags due to rust-analyzer sending a ton of progress reports.
  • lsp-rename will now write hidden buffers that are affected by the rename, to give the language server and other external tools a more consistent view of affected files.
  • Suppress "language server not initialized" errors that originate from hooks.
  • Fix a glitch when a line has both a code lens and an inline diagnostic.
  • When talking to servers that don't support UTF-8 byte-offsets, kak-lsp now adheres to the LSP specification by treating column-offsets as UTF-16 Code Units instead of Unicode Code Points.

v14.0.0

29 Aug 14:18
Compare
Choose a tag to compare

14.0.0 - 2022-08-29

This is a small bug fix release but it also includes updates to the default config.

Breaking changes:

  • typescript-language-server replaces flow as default language server for JavaScript.
  • crystalline replaces scry as default language server for Crystal.
  • The user mode mapping for s now runs lsp-goto-document-symbol instead of lsp-signature-help. The old mapping (<c-o>) has been removed.

Fixes:

  • lsp-find-error and code lenses were broken in 13.0.0, which has been fixed.
  • The server-specific configuration for the solargraph Ruby language server has been fixed.
  • The new command lsp-goto-document-symbol (which replaced the old <c-o> binding) can now handle nested symbols.

v13.0.0

11 Aug 08:01
Compare
Choose a tag to compare

13.0.0 - 2022-08-11

Here are some notable changes. See the git log for a full list of changes.

Breaking changes:

  • Completion snippet support is now enabled again in the default config.
  • The default object mode mappings have been removed. Users are expected to add their preferred mappings. The README now has a section with recommended mappings.

Additions:

  • Default configuration for Elvish and Clojure.
  • On macOS, the config file is now read from $XDG_CONFIG_HOME/kak-lsp/kak-lsp.toml. The old location (~/Library/Preferences/kak-lsp/kak-lsp.toml) is used as a fallback (#293).
  • Added shim support for workspace/WorkspaceFolders, which fixes interaction with bash-language-server.
  • Some errors are shown directly in the editor, unless the error was triggered by a hook.
  • lsp-document-symbol now indents nested symbols.

Fixes:

  • Completions with snippets now interact properly with Kakoune's completion engine (#616).
  • Fixed default configuration for HTML/CSS/JSON following the upstream renaming of the binaries.
  • lsp-enable-window no longer adds a redundant global NormalKey hook (introduced in 12.1.0)
  • kak-lsp now avoids sending unsupported requests to the server.

v12.2.1

08 May 09:04
Compare
Choose a tag to compare

12.2.1 - 2022-05-08

Fixes:

  • lsp-code-lens failed to run code lenses which has been fixed.