Release 22.08 Highlights
Helix is a modal text editor with built-in support for multiple selections, Language Server Protocol (LSP), tree-sitter, and experimental support for Debug Adapter Protocol (DAP).
Today marks the 22.08 release, a release with plenty of fixes and new features. A big thank you to our contributors! This release had 87 contributors. 🎉
Let's check out the highlighted features for 22.08.
Indent guides
Indent guides provide a visual representation for the current indentation
level. Enable indent guides with the editor.indent-guides.render
key.
The character used as a guide is also customizable.
Cursorline
The cursorline is a horizontal highlighted bar that follows your cursor.
Cursorlines may be themed for the primary and all secondary cursors and
can be enabled or disabled separate from theming with the editor.cursorline
option.
Mode colors
The mode indicator in the statusline may now be styled based on the current
mode. This feature may be enabled with the editor.color-modes
option and
colors may be configured using ui.statusline.{insert,normal,select}
keys
in themes.
Configurable statusline
The statusline may now be configured in the editor.statusline
section
of the config. Elements may be placed on the left, center or right of
the statusline with a configurable separator and spacers. Two new elements
may now also be added to your statusline: file-line-ending
and
position-percentage
.
LSP signature help
Signature help provides documentation as you type the arguments to a function call and tracks which function parameter is currently being entered. Signature help is enabled by default.
LSP document highlight
The document highlight request (Space-h
) creates a selection for all
instances of the symbol under the primary cursor. Helix has robust support for
multiple selections, so you may edit all selections simultaneously (for
example with c
) or cycle between selections ((
/)
).
LSP diagnostics pickers
The new buffer and workspace diagnostics pickers may be used to jump to
Language Server diagnostics like warnings and errors. Use Space-g
to
open the picker with diagnostics for the current buffer and Space-G
to view all diagnostics in a workspace.
Jumplist picker
The jumplist saves a history of selections. Save selections with C-s
and jump
forward with C-i
and backward with C-o
. The jumplist is a powerful tool,
especially when working with Language Server goto-definition or global search
which both save to the jumplist automatically.
22.08 adds a new picker that can be used to jump across entries in the jumplist.
The preview pane shows the line of the saved primary selection. Bring up the
jumplist picker with Space-j
.
External formatters
Many Language Servers provide format-on-save capabilities. For languages without Language Servers or for Language Servers that do not implement formatting, an external formatter binary may now be configured. The document is passed through the formatter's stdin and replaced with the formatted output from stdout.
An external formatter may also be used when you prefer the formatting from an
external tool over formatting provided by a Language Server. For example if you
configure black
for formatting Python, formatting will be accomplished with
black
rather than pylsp
.
Bracketed paste
Bracketed paste is terminal emulator feature that allows terminal programs to
recognize paste sequences and handle the pasted text. Without bracketed paste
support, text pasted with operating-system level paste (C-v
) looked to Helix
like text that was entered very quickly which lead to some odd side-effects
like awkward indentation or mysteriously appearing auto-pair characters.
22.08 adds support for bracketed paste, so now all pastes into Helix from
terminal emulators that support bracketed paste work as if you had pressed
Space-p
in normal mode. In the above cast, the entire text of Moby-Dick
is pasted with C-v
in insert mode instantly.
Wrapping up
These changes are just the highlights. Check out the full changelog to see all that's changed since 22.05. Release binaries can be found on the release page.
Be ready for more exciting changes in Helix 22.10 expected in October! Contribute and follow along with development in the Helix GitHub repository and be sure to join in on discussions in the Matrix channel.