Helix 25.01

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-messages key now controls messages sent with the LSP window/showMessage notification rather than progress messages. If you want to enable progress messages you should now enable the editor.lsp.display-progress-messages key instead. (#5535)

Features:

  • Big refactor for Pickers (#9647, #11209, #11216, #11211, #11343, #11406)
    • Use a table layout and allow filtering by column
    • Reimplement global_search to 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/O and 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, replacing search_selection which was moved to A-*.

Usability improvements:

  • Add :edit and :e aliases for :open (#11186, #11196)
  • Trim trailing newline from pipe command outputs when the input doesn't have a trailing newline (#11183, 4f63a46)
  • Add :mv alias 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 :sh commands (#11239)
  • Add statusline errors when nothing is selected with s, K, A-K (#11370)
  • Add .svn as a workspace root marker (#11429)
  • Trim the end of :sh outputs (#11161)
  • Show LSP window/showMessage messages in the statusline (#5535)
  • Support finding workspace directories via .jj directories (#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-register config option (#11430)
  • Show a statusline error for :format when a formatter is not available (#12183)
  • Change to the home directory with :cd with 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_replace and surround_delete (#12262)

Fixes:

  • Respect document indentation settings in format_selections (=) (#11169)
  • Avoid switching the current document to normal mode during an LSP workspace/applyEdit operation (#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_backward on 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-k in a prompt ending in a multi-byte character (#12237)
  • Expand tildes in paths passed to :read (#12271)
  • Respect per-language workspace-lsp-roots configuration 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 --health output on light terminals (#12355)
  • Accept integers serialized as floats in the JSONRPC id field (#12376)

Themes:

  • Bring kanagawa colors better in line with neovim version (#11187, #11270)
  • Add ao (#11063)
  • Update dark_plus (#11415)
  • Add iceberg-light and iceberg-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.storage in onedark (#11802)
  • Add ui.virtual.jump-label to serika-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) …
View original

Upgraded? How did it go?

Discussion