A post-modern modal text editor. https://helix-editor.com
Find a file
Michael Davis 060255344c syntax: Lookup up (#set! injection.language "name") props by ID
This splits the `InjectionLanguageMarker::Name` into two: one that
preforms the previous behavior (using the language configurations'
`injection_regex` fields and performing a match) and a new variant that
looks up directly by `language_id` with equality.

The old variant is used when capturing the injection language like we
do in the markdown queries for codefences. That captured text is part of
the document being highlighted so we might need a regex to recognize a
language like JavaScript as either "js" or "javascript". But the text
passed in the `(#set! injection.language "name")` property can be
looked up directly. This property is in the query code so there's no
need to be flexible in what we accept: we can require that the
`(#set! injection.language ..)` properties refer to languages by their
configured ID. This should save a noticeable amount of work for the
common case of injections: `(#set! injection.language)` is used much
more often than `@injection.language`.
2025-01-23 11:01:35 +09:00
.cargo Add hook/event system 2024-01-23 11:20:19 +09:00
.github Generate a .deb file (#12453) 2025-01-16 17:37:53 -06:00
book Generate a .deb file (#12453) 2025-01-16 17:37:53 -06: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 syntax: Lookup up (#set! injection.language "name") props by ID 2025-01-23 11:01:35 +09: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 build(deps): bump the rust-dependencies group with 3 updates (#12437) 2025-01-06 19:34:21 -05:00
helix-lsp build(deps): bump the rust-dependencies group with 6 updates 2025-01-13 23:09:54 +00: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 Fix slicing panic in path completion variable expansion (#12556) 2025-01-16 18:10:30 -06:00
helix-term minor: Rename '*' at eof integration test to be more specific 2025-01-21 09:08:36 -05:00
helix-tui Use a workspace dependency for bitflags 2025-01-13 18:26:31 -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 Remove unused variant from FormatterError 2025-01-17 11:00:37 -05:00
runtime Bump Spade grammar (#12583) 2025-01-18 09:43:45 -06: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
base16_theme.toml base16_default: add styles to newer unthemed features (#10858) 2024-06-23 10:07:13 +09:00
Cargo.lock build(deps): bump the rust-dependencies group with 5 updates (#12614) 2025-01-21 08:59:05 -06:00
Cargo.toml build(deps): bump the rust-dependencies group with 5 updates (#12614) 2025-01-21 08:59:05 -06:00
CHANGELOG.md Add changelog notes for 25.01.1 (#12560) 2025-01-19 14:50:39 -06:00
default.nix Expose all flake outputs through flake-compat (#10673) 2024-05-07 01:33:59 +09:00
flake.lock Bump flake dependencies 2024-10-21 11:27:46 +09: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 Fix indent unit of git-rebase config (#12617) 2025-01-21 08:14:04 -06:00
LICENSE Add the LICENSE file. 2021-05-11 01:44:00 +09: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
README.md Fix repology badge (#11895) 2024-10-16 01:52:50 +09: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

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!