![]() `:lsp-stop` should consider only the set of active language servers for a document. `:lsp-restart` though may be used to start up a language server that crashed or was manually stopped, so it needs to consider the language servers in config instead. This change inlines the `valid_lang_servers` function into `:lsp-stop` and `:lsp-restart` and changes `:lsp-restart` to check the doc's config rather than active language servers. `:lsp-restart` now also does not need to clone the language server names as strings since it borrows from the config and arguments rather than `Document`. The completer has also been split into two - one matching active language servers, used by `:lsp-stop`, and the other matching configured language servers, used by `:lsp-restart`. This also removes the part of `:lsp-restart` which bailed if a language server failed to be restarted (for example because it is not installed). There might be multiple language servers configured for a language and only one installed. In that case the `:lsp-restart` should be considered successful even if not all servers could be started. Bailing prevented any language servers which could start from being attached to the document. Instead errors are collected and emitted at the end. |
||
---|---|---|
.cargo | ||
.github | ||
book | ||
contrib | ||
docs | ||
helix-core | ||
helix-dap | ||
helix-event | ||
helix-loader | ||
helix-lsp | ||
helix-lsp-types | ||
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.svg | ||
logo_dark.svg | ||
logo_light.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
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
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!