You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
helix/CHANGELOG.md

8.2 KiB

0.4.0 (2021-08-13)

Two months have passed, so this is another big release. A big thank you to all the contributors and package maintainers!

Helix has popped up in Arch, Manjaro, Nix, MacPorts and Parabola and Termux repositories!

A large scale refactor landed that allows us to support zero width (empty) selections in the future as well as resolves many bugs and edge cases.

  • Multi-key remapping! Key binds now support much more complex usecases (#454)
  • Pending keys are shown in the statusline (#515)
  • Object selection / textobjects. mi( to select text inside parentheses (#385)
  • Autoinfo: whichkey-like popups which show available sub-mode shortcuts (#316)
  • Added WORD movements (W/B/E) (#390)
  • Vertical selections (repeat selection above/below) (#462)
  • Selection rotation via ( and ) (66a90130)
  • Selection contents rotation via Alt-( and Alt-) (02cba2a)
  • Completion behavior improvements (f917b5a4, 627b899)
  • Fixed a language server crash (385a6b5a)
  • Case change commands (\``, ~, <a-~>`) (#441)
  • File pickers (including goto) now provide a preview! (#534)
  • Injection query support. Rust macro calls and embedded languages are now properly highlighted (#430)
  • Formatting is now asynchronous, and the async job infrastructure has been improved (#285)
  • Grammars are now compiled as separate shared libraries and loaded on-demand at runtime (#432)
  • Code action support (#478)
  • Mouse support (#509, #548)
  • Native Windows clipboard support (#373)
  • Themes can now use color palettes (#393)
  • :reload command (#374)
  • Ctrl-z to suspend (#464)
  • Language servers can now be configured with a custom JSON config (#460)
  • Comment toggling now uses a language specific comment token (#463)
  • Julia support (#413)
  • Java support (#448)
  • Prompts have an (in-memory) history (63e54e30)

0.4.0 (2021-06-27)

Another big release.

Highlights:

  • Indentation is now automatically detected from file heuristics. (#245)
  • Support for other line endings (CRLF). Significantly improved Windows support. (#224)
  • Encodings other than UTF-8 are now supported! (#228)
  • Key bindings can now be configured via a config.toml file (#268)
  • Theme can now be configured and changed at runtime (please feel free to contribute more themes!) (#267)
  • System clipboard yank/paste is now supported! (#310)
  • Surround commands were implemented (#320)

Features:

  • File picker can now be repeatedly filtered (#232)
  • LSP progress is now received and rendered as a spinner (#234)
  • Current line number can now be themed (#260)
  • Arrow keys & home/end now work in insert mode (#305)
  • Cursors and selections can now be themed (#325)
  • Language servers are now gracefully shut down before hx exits (#287)
  • :show-directory/:change-directory (#335)
  • File picker is now sorted by access time (before filtering) (#336)
  • Code is being migrated from helix-term to helix-view (prerequisite for alternative frontends) (#366)
  • x and X merged (f41688d9)

Fixes:

  • The IME popup is now correctly positioned (#273)
  • A bunch of bugs regarding o/O behavior (#281)
  • ~ expansion now works in file completion (#284)
  • Several UI related overflow crashes (#318)
  • Fix a test failure occuring only on test --release (4f108ab1)
  • Prompts now support unicode input (#295)
  • Completion documentation no longer overlaps the popup (#322)
  • Fix a crash when trying to select ^ (9c534614)
  • Prompt completions are now paginated (39dc09e6)
  • Goto did not work on Windows (503ca112)

0.2.1

Includes a fix where wq/wqa could exit before file saving completed.

0.2.0

Enough has changed to bump the version. We're skipping 0.1.x because previously the CLI would always report version as 0.1.0, and we'd like to distinguish it in bug reports..

  • The runtime/ directory is now properly detected on binary releases and on cargo run. ~/.config/helix/runtime can also be used.

  • Registers can now be selected via " (for example "ay)

  • Support for Nix files was added

  • Movement is now fully tested and matches kakoune implementation

  • A per-file LSP symbol picker was added to space+s

  • Selection can be replaced with yanked text via R

  • 1g now correctly goes to line 1

  • ctrl-i now correctly jumps backwards in history

  • A small memory leak was fixed, where we tried to reuse tree-sitter query cursors, but always allocated a new one

  • Auto-formatting is now only on for certain languages

  • The root directory is now provided in LSP initialization, fixing certain language servers (typescript)

  • LSP failing to start no longer panics

  • Elixir language queries were fixed

0.0.10

Keymaps:

  • Add mappings to jump to diagnostics

  • Add gt/gm/gb mappings to jump to top/middle/bottom of screen

  • ^ and $ are now gh, gl

  • The runtime/ can now optionally be embedded in the binary

  • Haskell syntax added

  • Window mode (ctrl-w) added

  • Show matching bracket (vim's matchbrackets)

  • Themes now support style modifiers

  • First user contributed theme

  • Create a document if it doesn't exist yet on save

  • Detect language on a new file on save

  • Panic fixes, lots of them