@@ -1,3 +1,265 @@
1+# 23.03 (2023-03-31)
2+
3+> Checkpoint: `5323020c3f02b178f2b6807f13d89bf7f40d3cce`
4+
5+For the full log, check out the [git log](https://github.com/helix-editor/helix/compare/22.12..23.03).
6+
7+Breaking changes:
8+
9+- Select diagnostic range in `goto_*_diag` commands (#4713, #5164, #6193)
10+- Remove jump behavior from `increment`/`decrement` (#4123, #5929)
11+- Select change range in `goto_*_change` commands (#5206)
12+- Split file modification indicator from filename statusline elements (#4731, #6036)
13+- Jump to symbol ranges in LSP goto commands (#5986)
14+
15+Features:
16+
17+- Dynamic workspace symbol picker (#5055)
18+- Soft-wrap (#5420, #5786, #5893, #6142, #6440)
19+- Initial support for LSP snippet completions (#5864, b1f7528, #6263, bbf4800, 90348b8, f87299f, #6371)
20+- Add a statusline element for showing the current version control HEAD (#5682)
21+- Display LSP type hints (#5420, #5934, #6312)
22+- Enable the Kitty keyboard protocol on terminals with support (#4939, #6170, #6194)
23+- Add a statusline element for the basename of the current file (#5318)
24+- Add substring matching syntax for the picker (#5658)
25+- Support LSP `textDocument/prepareRename` (#6103)
26+- Allow multiple runtime directories with priorities (#5411)
27+- Allow configuring whether to insert or replace completions (#5728)
28+
29+Commands:
30+
31+- `:pipe-to` which pipes selections into a shell command and ignores output (#4931)
32+- `merge_consecutive_selections` (`A-_`) combines all consecutive selections (#5047)
33+- `rotate_view_reverse` which focuses the previous view (#5356)
34+- `goto_declaration` (`gD`, requires LSP) which jumps to a symbol's declaration (#5646)
35+- `file_picker_in_current_buffer_directory` (#4666)
36+- `:character-info` which shows information about the character under the cursor (#4000)
37+- `:toggle-option` for toggling config options at runtime (#4085)
38+- `dap_restart` for restarting a debug session in DAP (#5651)
39+- `:lsp-stop` to stop the language server of the current buffer (#5964)
40+- `:reset-diff-change` for resetting a diff hunk to its original text (#4974)
41+
42+Usability improvements:
43+
44+- Remove empty detail section in completion menu when LSP doesn't send details (#4902)
45+- Pass client information on LSP initialization (#4904)
46+- Allow specifying environment variables for language servers in language config (#4004)
47+- Allow detached git worktrees to be recognized as root paths (#5097)
48+- Improve error message handling for theme loading failures (#5073)
49+- Print the names of binaries required for LSP/DAP in health-check (#5195)
50+- Improve sorting in the picker in cases of ties (#5169)
51+- Add theming for prompt suggestions (#5104)
52+- Open a file picker when using `:open` on directories (#2707, #5278)
53+- Reload language config with `:config-reload` (#5239, #5381, #5431)
54+- Improve indent queries for python when the tree is errored (#5332)
55+- Picker: Open files without closing the picker with `A-ret` (#4435)
56+- Allow theming cursors by primary/secondary and by mode (#5130)
57+- Allow configuration of the minimum width for the line-numbers gutter (#4724, #5696)
58+- Use filename completer for `:run-shell-command` command (#5729)
59+- Surround with line-endings with `ms<ret>` (#4571)
60+- Hide duplicate symlinks in file pickers (#5658)
61+- Tabulate buffer picker contents (#5777)
62+- Add an option to disable LSP (#4425)
63+- Short-circuit tree-sitter and word object motions (#5851)
64+- Add exit code to failed command message (#5898)
65+- Make `m` textobject look for pairs enclosing selections (#3344)
66+- Negotiate LSP position encoding (#5894)
67+- Display deprecated LSP completions with strikethrough (#5932)
68+- Add JSONRPC request ID to failed LSP/DAP request log messages (#6010, #6018)
69+- Ignore case when filtering LSP completions (#6008)
70+- Show current language when no arguments are passed to `:set-language` (#5895)
71+- Refactor and rewrite all book documentation (#5534)
72+- Separate diagnostic picker message and code (#6095)
73+- Add a config option to bypass undercurl detection (#6253)
74+- Only complete appropriate arguments for typed commands (#5966)
75+- Discard outdated LSP diagnostics (3c9d5d0)
76+- Discard outdated LSP workspace edits (b6a4927)
77+- Run shell commands asynchronously (#6373)
78+- Show diagnostic codes in LSP diagnostic messages (#6378)
79+
80+Fixes:
81+
82+- Fix behavior of `auto-completion` flag for completion-on-trigger (#5042)
83+- Reset editor mode when changing buffers (#5072)
84+- Respect scrolloff settings in mouse movements (#5255)
85+- Avoid trailing `s` when only one file is opened (#5189)
86+- Fix erroneous indent between closers of auto-pairs (#5330)
87+- Expand `~` when parsing file paths in `:open` (#5329)
88+- Fix theme inheritance for default themes (#5218)
89+- Fix `extend_line` with a count when the current line(s) are selected (#5288)
90+- Prompt: Fix autocompletion for paths containing periods (#5175)
91+- Skip serializing JSONRPC params if params is null (#5471)
92+- Fix interaction with the `xclip` clipboard provider (#5426)
93+- Fix undo/redo execution from the command palette (#5294)
94+- Fix highlighting of non-block cursors (#5575)
95+- Fix panic when nooping in `join_selections` and `join_selections_space` (#5423)
96+- Fix selecting a changed file in global search (#5639)
97+- Fix initial syntax highlight layer sort order (#5196)
98+- Fix UTF-8 length handling for shellwords (#5738)
99+- Remove C-j and C-k bindings from the completion menu (#5070)
100+- Always commit to history when pasting (#5790)
101+- Properly handle LSP position encoding (#5711)
102+- Fix infinite loop in `copy_selection_on_prev_line` (#5888)
103+- Fix completion popup positioning (#5842)
104+- Fix a panic when uncommenting a line with only a comment token (#5933)
105+- Fix panic in `goto_window_center` at EOF (#5987)
106+- Ignore invalid file URIs sent by a language server (#6000)
107+- Decode LSP URIs for the workspace diagnostics picker (#6016)
108+- Fix incorrect usages of `tab_width` with `indent_width` (#5918)
109+- DAP: Send Disconnect if the Terminated event is received (#5532)
110+- DAP: Validate key and index exist when requesting variables (#5628)
111+- Check LSP renaming support before prompting for rename text (#6257)
112+- Fix indent guide rendering (#6136)
113+- Fix division by zero panic (#6155)
114+- Fix lacking space panic (#6109)
115+- Send error replies for malformed and unhandled LSP requests (#6058)
116+- Fix table column calculations for dynamic pickers (#5920)
117+- Skip adding jumplist entries for `:<n>` line number previews (#5751)
118+- Fix completion race conditions (#6173)
119+- Fix `shrink_selection` with multiple cursors (#6093)
120+- Fix indentation calculation for lines with mixed tabs/spaces (#6278)
121+- No-op `client/registerCapability` LSP requests (#6258)
122+- Send the STOP signal to all processes in the process group (#3546)
123+- Fix workspace edit client capabilities declaration (7bf168d)
124+- Fix highlighting in picker results with multiple columns (#6333)
125+
126+Themes:
127+
128+- Update `serika` (#5038, #6344)
129+- Update `flatwhite` (#5036, #6323)
130+- Update `autumn` (#5051, #5397, #6280, #6316)
131+- Update `acme` (#5019, #5486, #5488)
132+- Update `gruvbox` themes (#5066, #5333, #5540, #6285, #6295)
133+- Update `base16_transparent` (#5105)
134+- Update `dark_high_contrast` (#5105)
135+- Update `dracula` (#5236, #5627, #6414)
136+- Update `monokai_pro_spectrum` (#5250, #5602)
137+- Update `rose_pine` (#5267, #5489, #6384)
138+- Update `kanagawa` (#5273, #5571, #6085)
139+- Update `emacs` (#5334)
140+- Add `github` themes (#5353, efeec12)
141+ - Dark themes: `github_dark`, `github_dark_colorblind`, `github_dark_dimmed`, `github_dark_high_contrast`, `github_dark_tritanopia`
142+ - Light themes: `github_light`, `github_light_colorblind`, `github_light_dimmed`, `github_light_high_contrast`, `github_light_tritanopia`
143+- Update `solarized` variants (#5445, #6327)
144+- Update `catppuccin` variants (#5404, #6107, #6269)
145+- Use curly underlines in built-in themes (#5419)
146+- Update `zenburn` (#5573)
147+- Rewrite `snazzy` (#3971)
148+- Add `monokai_aqua` (#5578)
149+- Add `markup.strikethrough` to existing themes (#5619)
150+- Update `sonokai` (#5440)
151+- Update `onedark` (#5755)
152+- Add `ayu_evolve` (#5638, #6028, #6225)
153+- Add `jellybeans` (#5719)
154+- Update `fleet_dark` (#5605, #6266, #6324, #6375)
155+- Add `darcula-solid` (#5778)
156+- Remove text background from monokai themes (#6009)
157+- Update `pop_dark` (#5992, #6208, #6227, #6292)
158+- Add `everblush` (#6086)
159+- Add `adwaita-dark` (#6042, #6342)
160+- Update `papercolor` (#6162)
161+- Update `onelight` (#6192, #6276)
162+- Add `molokai` (#6260)
163+- Update `ayu` variants (#6329)
164+- Update `tokyonight` variants (#6349)
165+- Update `nord` variants (#6376)
166+
167+New languages:
168+
169+- BibTeX (#5064)
170+- Mermaid.js (#5147)
171+- Crystal (#4993, #5205)
172+- MATLAB/Octave (#5192)
173+- `tfvars` (uses HCL) (#5396)
174+- Ponylang (#5416)
175+- DHall (1f6809c)
176+- Sagemath (#5649)
177+- MSBuild (#5793)
178+- pem (#5797)
179+- passwd (#4959)
180+- hosts (#4950, #5914)
181+- uxntal (#6047)
182+- Yuck (#6064, #6242)
183+- GNU gettext PO (#5996)
184+- Sway (#6023)
185+- NASM (#6068)
186+- PRQL (#6126)
187+- reStructuredText (#6180)
188+- Smithy (#6370)
189+- VHDL (#5826)
190+- Rego (OpenPolicy Agent) (#6415)
191+- Nim (#6123)
192+
193+Updated languages and queries:
194+
195+- Use diff syntax for patch files (#5085)
196+- Add Haskell textobjects (#5061)
197+- Fix commonlisp configuration (#5091)
198+- Update Scheme (bae890d)
199+- Add indent queries for Bash (#5149)
200+- Recognize `c++` as a C++ extension (#5183)
201+- Enable HTTP server in `metals` (Scala) config (#5551)
202+- Change V-lang language server to `v ls` from `vls` (#5677)
203+- Inject comment grammar into Nix (#5208)
204+- Update Rust highlights (#5238, #5349)
205+- Fix HTML injection within Markdown (#5265)
206+- Fix comment token for godot (#5276)
207+- Expand injections for Vue (#5268)
208+- Add `.bash_aliases` as a Bash file-type (#5347)
209+- Fix comment token for sshclientconfig (#5351)
210+- Update Prisma (#5417)
211+- Update C++ (#5457)
212+- Add more file-types for Python (#5593)
213+- Update tree-sitter-scala (#5576)
214+- Add an injection regex for Lua (#5606)
215+- Add `build.gradle` to java roots configuration (#5641)
216+- Add Hub PR files to markdown file-types (#5634)
217+- Add an external formatter configuration for Cue (#5679)
218+- Add injections for builders and writers to Nix (#5629)
219+- Update tree-sitter-xml to fix whitespace parsing (#5685)
220+- Add `Justfile` to the make file-types configuration (#5687)
221+- Update tree-sitter-sql and highlight queries (#5683, #5772)
222+- Use the bash grammar and queries for env language (#5720)
223+- Add podspec files to ruby file-types (#5811)
224+- Recognize `.C` and `.H` file-types as C++ (#5808)
225+- Recognize plist and mobileconfig files as XML (#5863)
226+- Fix `select` indentation in Go (#5713)
227+- Check for external file modifications when writing (#5805)
228+- Recognize containerfiles as dockerfile syntax (#5873)
229+- Update godot grammar and queries (#5944, #6186)
230+- Improve DHall highlights (#5959)
231+- Recognize `.env.dist` and `source.env` as env language (#6003)
232+- Update tree-sitter-git-rebase (#6030, #6094)
233+- Improve SQL highlights (#6041)
234+- Improve markdown highlights and inject LaTeX (#6100)
235+- Add textobject queries for Elm (#6084)
236+- Recognize graphql schema file type (#6159)
237+- Improve highlighting in comments (#6143)
238+- Improve highlighting for JavaScript/TypeScript/ECMAScript languages (#6205)
239+- Improve PHP highlights (#6203, #6250, #6299)
240+- Improve Go highlights (#6204)
241+- Highlight unchecked sqlx functions as SQL in Rust (#6256)
242+- Improve Erlang highlights (cdd6c8d)
243+- Improve Nix highlights (fb4d703)
244+- Improve gdscript highlights (#6311)
245+- Improve Vlang highlights (#6279)
246+- Improve Makefile highlights (#6339)
247+- Remove auto-pair for `'` in OCaml (#6381)
248+- Fix indents in switch statements in ECMA languages (#6369)
249+- Recognize xlb and storyboard file-types as XML (#6407)
250+- Recognize cts and mts file-types as TypeScript (#6424)
251+- Recognize SVG file-type as XML (#6431)
252+- Add theme scopes for (un)checked list item markup scopes (#6434)
253+- Update git commit grammar and add the comment textobject (#6439)
254+- Recognize ARB file-type as JSON (#6452)
255+
256+Packaging:
257+
258+- Fix Nix flake devShell for darwin hosts (#5368)
259+- Add Appstream metadata file to `contrib/` (#5643)
260+- Increase the MSRV to 1.65 (#5570, #6185)
261+- Expose the Nix flake's `wrapper` (#5994)
262+
1263# 22.12 (2022-12-06)
2264
3265This is a great big release filled with changes from a 99 contributors. A big _thank you_ to you all!