No description
Find a file
Michael Davis 3d7e2730e7
Read language servers from config in :lsp-restart
`: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.
2025-02-20 12:50:09 -05:00
.cargo Add hook/event system 2024-01-23 11:20:19 +09:00
.github Remove unused dependencies 2025-02-13 08:41:46 -05:00
book Replace 'pkgbuild-language-server' with 'termux-language-server' 2025-02-12 10:51:07 -05:00
contrib Fix Bash completion space regression (#12828) 2025-02-10 10:42:45 -06:00
docs Document installation of rust-analyzer via rustup (#12618) 2025-02-01 19:43:20 -06:00
helix-core build(deps): bump the rust-dependencies group with 3 updates (#12903) 2025-02-17 17:36:50 -06:00
helix-dap DAP: Drain pending requests on recv failure 2025-02-04 09:09:54 -05:00
helix-event Migrate helix-event to foldhash 2025-02-17 17:35:00 -05:00
helix-loader Remove unused dependencies 2025-02-13 08:41:46 -05:00
helix-lsp Avoid cloning configured env vars when starting a language server 2025-02-19 10:30:06 -05:00
helix-lsp-types Remove unused dependencies 2025-02-13 08:41:46 -05:00
helix-parsec fix(clippy): clippy 1.83 lints (#12150) 2024-12-02 08:23:32 -06:00
helix-stdx build(deps): bump the rust-dependencies group with 4 updates (#12832) 2025-02-11 14:53:29 +09:00
helix-term Read language servers from config in :lsp-restart 2025-02-20 12:50:09 -05:00
helix-tui Remove unused dependencies 2025-02-13 08:41:46 -05:00
helix-vcs build(deps): bump the rust-dependencies group with 4 updates (#12766) 2025-02-03 17:37:46 -06:00
helix-view Use custom titles for register select info boxes 2025-02-19 10:29:15 -05:00
runtime Improve jump label colors for github_light theme (#12907) 2025-02-18 08:40:42 -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 3 updates (#12903) 2025-02-17 17:36:50 -06:00
Cargo.toml build(deps): bump the rust-dependencies group with 3 updates (#12903) 2025-02-17 17:36:50 -06:00
CHANGELOG.md Fix typos (#12690) 2025-02-02 18:58:29 -06: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 Fix typos (#12690) 2025-02-02 18:58:29 -06:00
languages.toml languages/xml: add mpd & smil extensions (#12916) 2025-02-19 10:58:29 -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!