@ -1,3 +1,265 @@
# 23.03 (2023-03-31)
> Checkpoint: `5323020c3f02b178f2b6807f13d89bf7f40d3cce`
For the full log, check out the [git log ](https://github.com/helix-editor/helix/compare/22.12..23.03 ).
Breaking changes:
- Select diagnostic range in `goto_*_diag` commands (#4713, #5164 , #6193 )
- Remove jump behavior from `increment` /`decrement` (#4123, #5929 )
- Select change range in `goto_*_change` commands (#5206)
- Split file modification indicator from filename statusline elements (#4731, #6036 )
- Jump to symbol ranges in LSP goto commands (#5986)
Features:
- Dynamic workspace symbol picker (#5055)
- Soft-wrap (#5420, #5786 , #5893 , #6142 , #6440 )
- Initial support for LSP snippet completions (#5864, b1f7528, #6263 , bbf4800, 90348b8, f87299f, #6371 )
- Add a statusline element for showing the current version control HEAD (#5682)
- Display LSP type hints (#5420, #5934 , #6312 )
- Enable the Kitty keyboard protocol on terminals with support (#4939, #6170 , #6194 )
- Add a statusline element for the basename of the current file (#5318)
- Add substring matching syntax for the picker (#5658)
- Support LSP `textDocument/prepareRename` (#6103)
- Allow multiple runtime directories with priorities (#5411)
- Allow configuring whether to insert or replace completions (#5728)
Commands:
- `:pipe-to` which pipes selections into a shell command and ignores output (#4931)
- `merge_consecutive_selections` (`A-_`) combines all consecutive selections (#5047)
- `rotate_view_reverse` which focuses the previous view (#5356)
- `goto_declaration` (`gD`, requires LSP) which jumps to a symbol's declaration (#5646)
- `file_picker_in_current_buffer_directory` (#4666)
- `:character-info` which shows information about the character under the cursor (#4000)
- `:toggle-option` for toggling config options at runtime (#4085)
- `dap_restart` for restarting a debug session in DAP (#5651)
- `:lsp-stop` to stop the language server of the current buffer (#5964)
- `:reset-diff-change` for resetting a diff hunk to its original text (#4974)
Usability improvements:
- Remove empty detail section in completion menu when LSP doesn't send details (#4902)
- Pass client information on LSP initialization (#4904)
- Allow specifying environment variables for language servers in language config (#4004)
- Allow detached git worktrees to be recognized as root paths (#5097)
- Improve error message handling for theme loading failures (#5073)
- Print the names of binaries required for LSP/DAP in health-check (#5195)
- Improve sorting in the picker in cases of ties (#5169)
- Add theming for prompt suggestions (#5104)
- Open a file picker when using `:open` on directories (#2707, #5278 )
- Reload language config with `:config-reload` (#5239, #5381 , #5431 )
- Improve indent queries for python when the tree is errored (#5332)
- Picker: Open files without closing the picker with `A-ret` (#4435)
- Allow theming cursors by primary/secondary and by mode (#5130)
- Allow configuration of the minimum width for the line-numbers gutter (#4724, #5696 )
- Use filename completer for `:run-shell-command` command (#5729)
- Surround with line-endings with `ms<ret>` (#4571)
- Hide duplicate symlinks in file pickers (#5658)
- Tabulate buffer picker contents (#5777)
- Add an option to disable LSP (#4425)
- Short-circuit tree-sitter and word object motions (#5851)
- Add exit code to failed command message (#5898)
- Make `m` textobject look for pairs enclosing selections (#3344)
- Negotiate LSP position encoding (#5894)
- Display deprecated LSP completions with strikethrough (#5932)
- Add JSONRPC request ID to failed LSP/DAP request log messages (#6010, #6018 )
- Ignore case when filtering LSP completions (#6008)
- Show current language when no arguments are passed to `:set-language` (#5895)
- Refactor and rewrite all book documentation (#5534)
- Separate diagnostic picker message and code (#6095)
- Add a config option to bypass undercurl detection (#6253)
- Only complete appropriate arguments for typed commands (#5966)
- Discard outdated LSP diagnostics (3c9d5d0)
- Discard outdated LSP workspace edits (b6a4927)
- Run shell commands asynchronously (#6373)
- Show diagnostic codes in LSP diagnostic messages (#6378)
Fixes:
- Fix behavior of `auto-completion` flag for completion-on-trigger (#5042)
- Reset editor mode when changing buffers (#5072)
- Respect scrolloff settings in mouse movements (#5255)
- Avoid trailing `s` when only one file is opened (#5189)
- Fix erroneous indent between closers of auto-pairs (#5330)
- Expand `~` when parsing file paths in `:open` (#5329)
- Fix theme inheritance for default themes (#5218)
- Fix `extend_line` with a count when the current line(s) are selected (#5288)
- Prompt: Fix autocompletion for paths containing periods (#5175)
- Skip serializing JSONRPC params if params is null (#5471)
- Fix interaction with the `xclip` clipboard provider (#5426)
- Fix undo/redo execution from the command palette (#5294)
- Fix highlighting of non-block cursors (#5575)
- Fix panic when nooping in `join_selections` and `join_selections_space` (#5423)
- Fix selecting a changed file in global search (#5639)
- Fix initial syntax highlight layer sort order (#5196)
- Fix UTF-8 length handling for shellwords (#5738)
- Remove C-j and C-k bindings from the completion menu (#5070)
- Always commit to history when pasting (#5790)
- Properly handle LSP position encoding (#5711)
- Fix infinite loop in `copy_selection_on_prev_line` (#5888)
- Fix completion popup positioning (#5842)
- Fix a panic when uncommenting a line with only a comment token (#5933)
- Fix panic in `goto_window_center` at EOF (#5987)
- Ignore invalid file URIs sent by a language server (#6000)
- Decode LSP URIs for the workspace diagnostics picker (#6016)
- Fix incorrect usages of `tab_width` with `indent_width` (#5918)
- DAP: Send Disconnect if the Terminated event is received (#5532)
- DAP: Validate key and index exist when requesting variables (#5628)
- Check LSP renaming support before prompting for rename text (#6257)
- Fix indent guide rendering (#6136)
- Fix division by zero panic (#6155)
- Fix lacking space panic (#6109)
- Send error replies for malformed and unhandled LSP requests (#6058)
- Fix table column calculations for dynamic pickers (#5920)
- Skip adding jumplist entries for `:<n>` line number previews (#5751)
- Fix completion race conditions (#6173)
- Fix `shrink_selection` with multiple cursors (#6093)
- Fix indentation calculation for lines with mixed tabs/spaces (#6278)
- No-op `client/registerCapability` LSP requests (#6258)
- Send the STOP signal to all processes in the process group (#3546)
- Fix workspace edit client capabilities declaration (7bf168d)
- Fix highlighting in picker results with multiple columns (#6333)
Themes:
- Update `serika` (#5038, #6344 )
- Update `flatwhite` (#5036, #6323 )
- Update `autumn` (#5051, #5397 , #6280 , #6316 )
- Update `acme` (#5019, #5486 , #5488 )
- Update `gruvbox` themes (#5066, #5333 , #5540 , #6285 , #6295 )
- Update `base16_transparent` (#5105)
- Update `dark_high_contrast` (#5105)
- Update `dracula` (#5236, #5627 , #6414 )
- Update `monokai_pro_spectrum` (#5250, #5602 )
- Update `rose_pine` (#5267, #5489 , #6384 )
- Update `kanagawa` (#5273, #5571 , #6085 )
- Update `emacs` (#5334)
- Add `github` themes (#5353, efeec12)
- Dark themes: `github_dark` , `github_dark_colorblind` , `github_dark_dimmed` , `github_dark_high_contrast` , `github_dark_tritanopia`
- Light themes: `github_light` , `github_light_colorblind` , `github_light_dimmed` , `github_light_high_contrast` , `github_light_tritanopia`
- Update `solarized` variants (#5445, #6327 )
- Update `catppuccin` variants (#5404, #6107 , #6269 )
- Use curly underlines in built-in themes (#5419)
- Update `zenburn` (#5573)
- Rewrite `snazzy` (#3971)
- Add `monokai_aqua` (#5578)
- Add `markup.strikethrough` to existing themes (#5619)
- Update `sonokai` (#5440)
- Update `onedark` (#5755)
- Add `ayu_evolve` (#5638, #6028 , #6225 )
- Add `jellybeans` (#5719)
- Update `fleet_dark` (#5605, #6266 , #6324 , #6375 )
- Add `darcula-solid` (#5778)
- Remove text background from monokai themes (#6009)
- Update `pop_dark` (#5992, #6208 , #6227 , #6292 )
- Add `everblush` (#6086)
- Add `adwaita-dark` (#6042, #6342 )
- Update `papercolor` (#6162)
- Update `onelight` (#6192, #6276 )
- Add `molokai` (#6260)
- Update `ayu` variants (#6329)
- Update `tokyonight` variants (#6349)
- Update `nord` variants (#6376)
New languages:
- BibTeX (#5064)
- Mermaid.js (#5147)
- Crystal (#4993, #5205 )
- MATLAB/Octave (#5192)
- `tfvars` (uses HCL) (#5396)
- Ponylang (#5416)
- DHall (1f6809c)
- Sagemath (#5649)
- MSBuild (#5793)
- pem (#5797)
- passwd (#4959)
- hosts (#4950, #5914 )
- uxntal (#6047)
- Yuck (#6064, #6242 )
- GNU gettext PO (#5996)
- Sway (#6023)
- NASM (#6068)
- PRQL (#6126)
- reStructuredText (#6180)
- Smithy (#6370)
- VHDL (#5826)
- Rego (OpenPolicy Agent) (#6415)
- Nim (#6123)
Updated languages and queries:
- Use diff syntax for patch files (#5085)
- Add Haskell textobjects (#5061)
- Fix commonlisp configuration (#5091)
- Update Scheme (bae890d)
- Add indent queries for Bash (#5149)
- Recognize `c++` as a C++ extension (#5183)
- Enable HTTP server in `metals` (Scala) config (#5551)
- Change V-lang language server to `v ls` from `vls` (#5677)
- Inject comment grammar into Nix (#5208)
- Update Rust highlights (#5238, #5349 )
- Fix HTML injection within Markdown (#5265)
- Fix comment token for godot (#5276)
- Expand injections for Vue (#5268)
- Add `.bash_aliases` as a Bash file-type (#5347)
- Fix comment token for sshclientconfig (#5351)
- Update Prisma (#5417)
- Update C++ (#5457)
- Add more file-types for Python (#5593)
- Update tree-sitter-scala (#5576)
- Add an injection regex for Lua (#5606)
- Add `build.gradle` to java roots configuration (#5641)
- Add Hub PR files to markdown file-types (#5634)
- Add an external formatter configuration for Cue (#5679)
- Add injections for builders and writers to Nix (#5629)
- Update tree-sitter-xml to fix whitespace parsing (#5685)
- Add `Justfile` to the make file-types configuration (#5687)
- Update tree-sitter-sql and highlight queries (#5683, #5772 )
- Use the bash grammar and queries for env language (#5720)
- Add podspec files to ruby file-types (#5811)
- Recognize `.C` and `.H` file-types as C++ (#5808)
- Recognize plist and mobileconfig files as XML (#5863)
- Fix `select` indentation in Go (#5713)
- Check for external file modifications when writing (#5805)
- Recognize containerfiles as dockerfile syntax (#5873)
- Update godot grammar and queries (#5944, #6186 )
- Improve DHall highlights (#5959)
- Recognize `.env.dist` and `source.env` as env language (#6003)
- Update tree-sitter-git-rebase (#6030, #6094 )
- Improve SQL highlights (#6041)
- Improve markdown highlights and inject LaTeX (#6100)
- Add textobject queries for Elm (#6084)
- Recognize graphql schema file type (#6159)
- Improve highlighting in comments (#6143)
- Improve highlighting for JavaScript/TypeScript/ECMAScript languages (#6205)
- Improve PHP highlights (#6203, #6250 , #6299 )
- Improve Go highlights (#6204)
- Highlight unchecked sqlx functions as SQL in Rust (#6256)
- Improve Erlang highlights (cdd6c8d)
- Improve Nix highlights (fb4d703)
- Improve gdscript highlights (#6311)
- Improve Vlang highlights (#6279)
- Improve Makefile highlights (#6339)
- Remove auto-pair for `'` in OCaml (#6381)
- Fix indents in switch statements in ECMA languages (#6369)
- Recognize xlb and storyboard file-types as XML (#6407)
- Recognize cts and mts file-types as TypeScript (#6424)
- Recognize SVG file-type as XML (#6431)
- Add theme scopes for (un)checked list item markup scopes (#6434)
- Update git commit grammar and add the comment textobject (#6439)
- Recognize ARB file-type as JSON (#6452)
Packaging:
- Fix Nix flake devShell for darwin hosts (#5368)
- Add Appstream metadata file to `contrib/` (#5643)
- Increase the MSRV to 1.65 (#5570, #6185 )
- Expose the Nix flake's `wrapper` (#5994)
# 22.12 (2022-12-06)
This is a great big release filled with changes from a 99 contributors. A big _thank you_ to you all!