A post-modern modal text editor.
 
 
 
 
 
Go to file
Michael Davis 23b424a46d
stdx: Add floor/ceil char boundary functions to RopeSliceExt
These functions mimic `str::floor_char_boundary` and
`str::floor_char_boundary` (currently unstable under
`round_char_boundary`). They're useful for correcting a byte index
which may not lie on a character boundary. For example you might limit
a search within a slice to some fixed number of bytes. The fixed number
might not lie on a boundary though so it needs to be corrected to
either the earlier (floor) or later (ceil) boundary.
2025-01-26 11:10:24 -05:00
.cargo Add hook/event system 2024-01-23 11:20:19 +09:00
.github CI: Cache tree-sitter grammars in all jobs 2025-01-23 09:47:51 -05:00
book Update install.md: fix link to lang server install instructions (#12675) 2025-01-26 14:21:13 +09:00
contrib Add changelog notes for 25.01.1 (#12560) 2025-01-19 14:50:39 -06:00
docs release docs: Fix `git push` command for the release tag 2024-12-22 09:48:32 -05:00
helix-core perf(syntax): short-circuit if name matches `language_id` (#12407) 2025-01-23 17:49:14 -06:00
helix-dap build(deps): bump the rust-dependencies group with 6 updates (#11924) 2024-10-23 22:34:20 +09:00
helix-event Add support for path completion (#2608) 2024-11-21 21:12:36 -06:00
helix-loader fix(lints): clippy 1.84 2025-01-23 15:18:16 -05:00
helix-lsp feat: specify custom lang server(s) for `:lsp-stop` and `:lsp-restart` (#12578) 2025-01-23 18:14:35 -06:00
helix-lsp-types build(deps): bump the rust-dependencies group with 5 updates (#12614) 2025-01-21 08:59:05 -06:00
helix-parsec fix(clippy): clippy 1.83 lints (#12150) 2024-12-02 08:23:32 -06:00
helix-stdx stdx: Add floor/ceil char boundary functions to RopeSliceExt 2025-01-26 11:10:24 -05:00
helix-term fix: `goto_file_impl` incorrect use of `slice` instead of `byte_slice` (#12673) 2025-01-25 12:38:35 -06:00
helix-tui tui buffer: Handle multi-width graphemes in set_string_anchored 2025-01-23 18:12:20 -05:00
helix-vcs build(deps): bump the rust-dependencies group with 5 updates (#12614) 2025-01-21 08:59:05 -06:00
helix-view fix(lints): clippy 1.84 2025-01-23 15:18:16 -05:00
runtime Small refinements for modus themes (#12670) 2025-01-25 20:30:43 +09:00
xtask minor: Setup default keymap directly in xtask docgen 2024-12-28 21:42:09 -05:00
.envrc direnv: Watch the rust-toolchain file (#8921) 2023-11-29 11:01:12 +09:00
.gitattributes Add .gitattributes (#3318) 2022-08-03 08:21:51 -05:00
.gitignore fix: added .DS_Store to gitignore 2024-11-20 16:18:42 -06:00
CHANGELOG.md Add changelog notes for 25.01.1 (#12560) 2025-01-19 14:50:39 -06:00
Cargo.lock feat: passing multile of the same files in the arguments places a cursor at each position (#12192) 2025-01-23 14:04:02 -06:00
Cargo.toml build(deps): bump the rust-dependencies group with 5 updates (#12614) 2025-01-21 08:59:05 -06:00
LICENSE Add the LICENSE file. 2021-05-11 01:44:00 +09:00
README.md Fix repology badge (#11895) 2024-10-16 01:52:50 +09:00
base16_theme.toml base16_default: add styles to newer unthemed features (#10858) 2024-06-23 10:07:13 +09:00
default.nix Expose all flake outputs through flake-compat (#10673) 2024-05-07 01:33:59 +09:00
flake.lock flake: Revert update of nixpkgs 2025-01-25 13:52:14 -05:00
flake.nix Make git revision available for nix flake builds (#12331) 2024-12-25 11:26:53 -06:00
grammars.nix Make nix flake respect unused grammars (#9326) 2024-01-14 15:11:40 +01:00
languages.toml Update tree-sitter-elixir 2025-01-24 12:37:48 -05:00
logo.svg Reduce logo sizes even more (#9211) 2024-01-02 23:16:37 +01:00
logo_dark.svg Reduce logo sizes even more (#9211) 2024-01-02 23:16:37 +01:00
logo_light.svg Reduce logo sizes even more (#9211) 2024-01-02 23:16:37 +01:00
rust-toolchain.toml chore(msrv): bump MSRV from 1.70 to 1.76 2024-11-22 01:17:08 -08:00
rustfmt.toml Add rustfmt.toml to force formatting to use rustfmt defaults 2021-07-23 18:11:22 +09:00
screenshot.png update screenshot (#1879) 2022-03-30 00:16:57 +09:00
shell.nix build(nix): update flake deps, add default.nix file 2022-06-21 17:39:30 -05:00
theme.toml Allow theming directory prompt completions (#12205) 2024-12-17 21:13:42 -06:00

README.md

Helix

Build status GitHub Release Documentation GitHub contributors Matrix Space

Screenshot

A Kakoune / Neovim inspired editor, written in Rust.

The editing model is very heavily based on Kakoune; during development I found myself agreeing with most of Kakoune's design decisions.

For more information, see the website or documentation.

All shortcuts/keymaps can be found in the documentation on the website.

Troubleshooting

Features

  • Vim-like modal editing
  • Multiple selections
  • Built-in language server support
  • Smart, incremental syntax highlighting and code editing via tree-sitter

Although it's primarily a terminal-based editor, I am interested in exploring a custom renderer (similar to Emacs) using wgpu or skulpin.

Note: Only certain languages have indentation definitions at the moment. Check runtime/queries/<lang>/ for indents.scm.

Installation

Installation documentation.

Packaging status

Contributing

Contributing guidelines can be found here.

Getting help

Your question might already be answered on the FAQ.

Discuss the project on the community Matrix Space (make sure to join #helix-editor:matrix.org if you're on a client that doesn't support Matrix Spaces yet).

Credits

Thanks to @jakenvac for designing the logo!