71b6cc4d17
This is a basic example of a remappable command specific to a single Component. It could be remapped like so: ```toml [keys.buffer-picker] C-d = "close_buffer_in_buffer_picker" ``` This has some rough edges: * Can we namespace the commands so they don't all have to be very long and specific about which component they work for? * How can we make this work for generics? * We can't define commands that operate on a `Picker<_>` for example. This example only works because we're using a `Picker<BufferMeta>`. * For Pickers and Menus we could use a `Vec<Box<dyn Item>>` and drop the generics but that would lose static dispatch. * Could we separate the part that needs generics into a different struct and have the functions operate on that? |
||
---|---|---|
.cargo | ||
.github | ||
book | ||
contrib | ||
docs | ||
helix-core | ||
helix-dap | ||
helix-loader | ||
helix-lsp | ||
helix-parsec | ||
helix-term | ||
helix-tui | ||
helix-vcs | ||
helix-view | ||
runtime | ||
xtask | ||
.envrc | ||
.gitattributes | ||
.gitignore | ||
.ignore | ||
base16_theme.toml | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
default.nix | ||
flake.lock | ||
flake.nix | ||
grammars.nix | ||
languages.toml | ||
LICENSE | ||
logo_dark.svg | ||
logo_light.svg | ||
logo.svg | ||
README.md | ||
rust-toolchain.toml | ||
rustfmt.toml | ||
screenshot.png | ||
shell.nix | ||
theme.toml | ||
VERSION |
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.
Features
- Vim-like modal editing
- Multiple selections
- Built-in language server support
- Smart, incremental syntax highlighting and code editing via tree-sitter
It's a terminal-based editor first, but I'd like to explore a custom renderer (similar to Emacs) in wgpu or skulpin.
Note: Only certain languages have indentation definitions at the moment. Check
runtime/queries/<lang>/
for indents.scm
.
Installation
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 @JakeHL for designing the logo!