25.01
As always, a big thank you to all of the contributors! This release saw changes from 171 contributors.
Breaking changes:
- The
editor.lsp.display-messageskey now controls messages sent with the LSPwindow/showMessagenotification rather than progress messages. If you want to enable progress messages you should now enable theeditor.lsp.display-progress-messageskey instead. (#5535)
Features:
- Big refactor for
Pickers (#9647, #11209, #11216, #11211, #11343, #11406)- Use a table layout and allow filtering by column
- Reimplement
global_searchto allow changing the query dynamically
- Add an alternative "inline" display for LSP diagnostics (#6417, #11815)
- Support defining keybindings as macros (#4709)
- Continue line comments in
o/Oand on<ret>in insert mode (#10996, #12213, #12215) - Allow configuring and switching clipboard providers at runtime (#10839, b855cd0, 467fad5, 191b0f0)
- Add support for path completion (#2608)
- Support bindings with the Super (Cmd/Win/Meta) modifier (#6592)
- Support rendering and jumping between tabstops in snippet completions (#9801)
- Allow theming directory completions (#12205, #12295)
Commands:
- Add commands to move within snake_case or camelCase words (#8147)
- Add
search_selection_detect_word_boundaries(#12126)- This command takes the
*key in normal and select mode, replacingsearch_selectionwhich was moved toA-*.
- This command takes the
Usability improvements:
- Add
:editand:ealiases for:open(#11186, #11196) - Trim trailing newline from pipe command outputs when the input doesn't have a trailing newline (#11183, 4f63a46)
- Add
:mvalias for:move(#11256) - Return document display name instead of absolute path from the
%special register (#11275) - Track view position on a per-view instead of per-document basis (#10559)
- Improve scrolloff calculation to leave a gap in the middle (#11323)
- Show a popup for stderr printed by failed
:shcommands (#11239) - Add statusline errors when nothing is selected with
s,K,A-K(#11370) - Add
.svnas a workspace root marker (#11429) - Trim the end of
:shoutputs (#11161) - Show LSP
window/showMessagemessages in the statusline (#5535) - Support finding workspace directories via
.jjdirectories (#11685) - Join single-line comments with
join_selections(J) (#11742) - Show anonymous syntax tree nodes in
:tree-sitter-subtree(#11663, 38e8382) - Save an undo checkpoint before paste in insert mode (#8121)
- Only break on ASCII spaces in
:reflow(#12048) - Add a
default-yank-registerconfig option (#11430) - Show a statusline error for
:formatwhen a formatter is not available (#12183) - Change to the home directory with
:cdwith no arguments (#12042) - Change default comment token to
#for unrecognized files (#12080, #12266, bae6a58) - Trim all trailing whitespace on
insert_newline(#12177) - Change to the prior directory with
:cd -(#12194) - Allow parsing
-(with no modifiers) as a keybinding (#12191) - Improve opening statusline and error messages when opening duplicate files or directories (#12199)
- Trim trailing colons in paths passed on the argv (#9963)
- Show tree-sitter parser availability in
hx --health <lang>(#12228) - Show a preview block for colors in the LSP completion menu (#12299)
- Add infobox help for
surround_add,surround_replaceandsurround_delete(#12262)
Fixes:
- Respect document indentation settings in
format_selections(=) (#11169) - Avoid switching the current document to normal mode during an LSP
workspace/applyEditoperation (#11176) - Fix off-by-one in LSP
find_completion_range(#11266) - Prefer file-system mtime to local system time for detecting external modifications (#11142, #11352, #11358, #11361)
- Fix writing of hardlinks (#11340)
- Prevent language servers from being automatically restarted when stopped with
:lsp-stop(#11321) - Stable-sort LSP text edits (#11357)
- Fix determination of current language layer in documents with nested language injections (#11365)
- Fix a panic from
:moveing a file to a new extension which starts a language server (#11387) - Fix a panic from duplicating the diff gutter (#11092)
- Keep cursor position when exactly replacing text (#5930)
- Fix a panic from
jump_backwardon a newly opened split (#11508) - Fix a panic from language servers sending an unknown diagnostic severity (#11569)
- Fix a panic when drawing at the edge of the screen (#11737)
- Fix git repo detection on symlinks (#11732)
- Fix a panic from a language server sending an out-of-range active signature index in
textDocument/signatureHelp(#11825) - Fix a panic from using
C-kin a prompt ending in a multi-byte character (#12237) - Expand tildes in paths passed to
:read(#12271) - Respect per-language
workspace-lsp-rootsconfiguration when opening new documents (#12223) - Consistently replace line-endings in paste/replace commands (c262fe4)
- Fix formatting in error statusline messages when inspecting variables in DAP (#12354)
- Fix invisible printing of headers in
--healthoutput on light terminals (#12355) - Accept integers serialized as floats in the JSONRPC
idfield (#12376)
Themes:
- Bring
kanagawacolors better in line with neovim version (#11187, #11270) - Add
ao(#11063) - Update
dark_plus(#11415) - Add
iceberg-lightandiceberg-dark(#10674) - Update everforest themes (#11459)
- Update gruvbox themes (#11477)
- Change primary selection cursor color for
naysayer(#11617) - Style picker column names in
horizon-dark(#11649) - Style picker column names in Darcula themes (#11649)
- Update diagnostics colors in
snazzy(#11731) - Update bogster themes (#11353)
- Highlight
keyword.storageinonedark(#11802) - Add
ui.virtual.jump-labeltoserika-dark(#11911) - Add
adwaita-light(#10869) - Add seoul256 themes (#11466)
- Add yo themes (#11703)
- Add
eiffel(#11679) - Add
carbonfox(#11558) - Set tags color in monokai themes (#11917)
- Improve readability of spacebones picker selection (#12064)
- Update modus themes (#11949)
- Use bold for statusline mode indicator in
onedarker(#11958) - Update hex themes, add a new hex theme (#10849)
- Add
sunset(#12093) - Add bufferline highlighting for flexoki themes (#12146) …