Releases: kakoune-lsp/kakoune-lsp
Releases Β· kakoune-lsp/kakoune-lsp
v17.0.1
v17.0.0
17.0.0 - 2024-04-04
Breaking changes:
- New default server for Nix,
nil
, replacingrnix-lsp
. - The
gopls
usePlaceholders
setting now defaults to true in the default config, make sure to either add a mapping forlsp-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 whenlsp-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 ofvscode-{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 tolsp-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 deprecatelsp-{next,previous}
. lsp-document-symbol
no longer renders the same filename in every single line. Commands likejump-next
and<ret>
still work as before.- New option
lsp_hover_max_info_lines
replaces and deprecateslsp_hover_max_lines
which now defaults to-1
which meanslsp_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
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 withrust-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 (likeself.some_method(β¦)
) which has been fixed. completionItem.additionalTextEdits
are now applied also when the server does not supportcompletionItem/resolve
.- Snippet metacharacters are now properly escaped, removing spurious backslashes from inserted completions.
v15.0.1
v15.0.0
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
, implementingtextDocument/declaration
.
v14.2.0
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:
v14.1.0
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 forlsp-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
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
replacesflow
as default language server for JavaScript.crystalline
replacesscry
as default language server for Crystal.- The user mode mapping for
s
now runslsp-goto-document-symbol
instead oflsp-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
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 withbash-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 globalNormalKey
hook (introduced in 12.1.0)- kak-lsp now avoids sending unsupported requests to the server.
v12.2.1
12.2.1 - 2022-05-08
Fixes:
lsp-code-lens
failed to run code lenses which has been fixed.