855568fa34
fsync(2) is a somewhat expensive operation that flushes writes to the underlying disk/SSD. It's typically used by databases to ensure that writes survive very hard failure scenarios like your cat kicking the plug out of the wall. Synchronizing isn't automatically done by `flush`ing (from the `std::io::Write` or `tokio::io::AsyncWriteExt` traits). From the [`tokio::fs::File`] moduledocs: > To ensure that a file is closed immediately when it is dropped, you > should call `flush` before dropping it. Note that this does not ensure > that the file has been fully written to disk; the operating system > might keep the changes around in an in-memory buffer. See the > `sync_all` method for telling the OS to write the data to disk. [`tokio::fs::File`]: https://docs.rs/tokio/latest/tokio/fs/struct.File.html |
||
---|---|---|
.cargo | ||
.github | ||
book | ||
contrib | ||
docs | ||
helix-core | ||
helix-dap | ||
helix-event | ||
helix-loader | ||
helix-lsp | ||
helix-parsec | ||
helix-stdx | ||
helix-term | ||
helix-tui | ||
helix-vcs | ||
helix-view | ||
runtime | ||
xtask | ||
.envrc | ||
.gitattributes | ||
.gitignore | ||
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 |
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 @jakenvac for designing the logo!