Additions:
- Show lightbulb in modeline when code actions are available and
lsp_auto_show_code_actions
is set (#538). - Sequences of text edits (like from
lsp-code-actions
orlsp-formatting
) will create just one undo entry (#533). - Fix go-to-defintion for files containing invalid UTF-8 (#535).
Bug fixes:
- Fix default server-specific configuration for
pyls
(regressed in 11.0.0). - Use the LineNumbers face for the flag-lines highlighter that shows diagnostics, to work better with non-default backgrounds (#524).
- Fix applying sequences of text edits, like from
lsp-code-actions
orlsp-formatting
(#527).- Also, do not drop trailing newline from text edits (e9af1aa).
- Quoting and escaping fixes for diagnostics and hover info.
This is mostly a bug fix release but also includes Markdown rendering and enhanced inlay diagnostics.
Breaking changes:
- The face
LineFlagErrors
has been renamed toLineFlagError
, for consistency with other faces (#516).
Bug fixes:
- Fix example server configuration for
lua-language-server
. - Fix completion of tokens containing non-word-characters, such as Ruby attributes, Ruby symbols and Rust lifetimes (#378, #510).
lsp-highlight-references
clears highlights on failure, improving the behavior when%opt{lsp_auto_highlight_references}
is set to true (#457).- Fix jumping to locations when Kakoune working directory is different from project root (#517).
- Fix jumping to locations with absolute paths (#519).
- Diagnostics of level "info" and "hint" are no longer shown as "warning", and are given distinct faces (#516).
find-next-error
will skip over "info" and "hint" diagnostics.
- Fix adjacent insertion text edits, for example as sent by rust-analyzer as code actions (#512).
- The default
kak-lsp.toml
recognizes.git
and.hg
as project root markers for C/C++ files. This makeslsp-references
work better out-of-the-box for projects like Kakoune that don't need acompile_commands.json
.
Additions:
- Render Markdown from hover and from completions in info box. You can set custom faces to highlight different syntax elements (#73, #513).
- Some servers like
pyls
send that info in plaintext but label it as Markdown. Work around this with a new configuration optionworkaround_server_sends_plaintext_labeled_as_markdown
in the defaultkak-lsp.toml
to force plaintext rendering.
- Some servers like
- Multiple inlay diagnostics on a single line are coalesced (#515).
Breaking changes:
- Two incompatible changes to the configuration format - see the updated
kak-lsp.toml
for examples.semantic_tokens
syntax has changed, allowing for more fine-grained face configuration (#488)settings
replacesinitialization_options
for server-specific settings (#511)
- Snippet support has been disabled by default, as a workaround for conflicts with Kakoune's built-in completion (#282).
lsp-show-message
, which handleswindow/showMessage
requests from the server has been removed. See below for the replacement.- Hidden commands
lsp-next-match
andlsp-previous-match
were removed in favor oflsp-next-location
andlsp-previous-location
(#466). haskell-language-server
is the new default language server for Haskell, replacinghaskell-ide-engine
.
Additions:
- Finish support for
workspace/configuration
(#234). %opt{lsp_config}
allows to set server-specific settings dynamically (#500).- Default configuration for Julia (#502).
lsp-show-message
has been replaced by four separate commandslsp-show-message-{error,warning,info,log}
. The new default implementations log the given messages from the language server to the debug buffer. Important messages are shown in%opt{toolsclient}
.- The new command
lsp-show-code-actions
can be overridden to customize the default menu behavior oflsp-code-actions
(#367). - New commands
lsp-{next,previous}-location
generalizegrep-next-match
,lsp-next-match
and friends (#466). - New option
lsp_location_format
to customize the ":"-style location patterns thatlsp-{next,previous}-location
can match (#466).
Bug fixes:
- Fix renaming of Rust lifetimes (#474).
- The suggested config for
rust-analyzer
was fixed for the case thatrustup
is installed butrust-analyzer
is not installed viarustup
. - Fix spurious cursor movement on
lsp-rename
andlsp-rename-prompt
(#504). - Fix responses to
workspace/configuration
in case there are no initialization options set (#509).
Deprecations:
%opt{lsp_server_initialization_options}
and%opt{lsp_server_configuration}
are deprecated in favor of setting[language.<filetype>.settings]
in%opt{lsp_config}
(#500).lsp-{goto,symbols}-{next,previous}-match
are deprecated in favor of commands likelsp-next-location *goto*
and similar (#466).
This is a small release with a useful fix to lsp-rename
(#481).
Breaking changes:
- The semantic highlighting feature has been removed. It is superseded by semantic tokens which are officially part of LSP 3.16.
- Buffers
*goto*
,*symbols*
,*diagnostics*
are given thelsp-goto
filetype instead ofgrep
ormake
(#454). ocamllsp
replaces the discontinuedocaml-language-server
as default language server for OCaml (#471).
Additions:
lsp-rename-prompt
is added to to thelsp
user mode, mapped toR
(#441).- Default configuration for CSS variants "less" and "scss" (#473).
kak-lsp
sends the configured offset encoding to the language server (see https://clangd.llvm.org/extensions.html#utf-8-offsets), which still defaults toutf-16
.lua-language-server
was added as default language server for Lua.
Bug fixes:
- Fix edits (by
lsp-rename
and friends) to files that were not opened as Kakoune buffers (#481). lsp-show-{diagnostics,goto-choices,document-symbols}
no longercd
to the project root (#454).- Fix error when the documentation part of a completion item starts with a dash (
-
) (#460). - Fix completions of non-ASCII characters for some textEdit completions (#455).
- Fix
lsp-rename
withpyright
(#468). - Treat snippets containing
<
literally, instead of as Kakoune key names (#470) - Nested entries in
lsp_server_initialization_options
likea.b=1
are sent to language servers as{"a":{"b":1}}
instead of{"a.b":1}
, matching the treatment oflsp_server_configuration
(#480). - Fix a case where
lua-language-server
would hang (#479) becausekak-lsp
didn't supportworkspace/configuration
; basic support has been added.
For release notes on v9.0.0 and older see https://github.com/kak-lsp/kak-lsp/releases.