forked from helix-editor/helix
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rewrite and refactor all documentation
- Loading branch information
1 parent
2c6bf6f
commit 3901d60
Showing
12 changed files
with
419 additions
and
321 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
# Commands | ||
|
||
Command mode can be activated by pressing `:`, similar to Vim. Built-in commands: | ||
Command mode, similar to Vim, can be activated by pressing `:`. The built-in commands are: | ||
|
||
{{#include ./generated/typable-cmd.md}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Guides | ||
|
||
This section contains guides for adding new language server configurations, | ||
tree-sitter grammars, textobject queries, etc. | ||
tree-sitter grammars, textobject queries, and other similar items. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,45 +1,52 @@ | ||
# Adding languages | ||
# Adding new languages to Helix | ||
|
||
In order to add a new language to Helix, you will need to follow the steps | ||
below. | ||
|
||
## Language configuration | ||
|
||
To add a new language, you need to add a `[[language]]` entry to the | ||
`languages.toml` (see the [language configuration section]). | ||
1. Add a new `[[language]]` entry in the `languages.toml` file and provide the | ||
necessary configuration for the new language. For more information on | ||
language configuration, refer to the | ||
[language configuration section](../languages.md) of the documentation. | ||
2. If you are adding a new language or updating an existing language server | ||
configuration, run the command `cargo xtask docgen` to update the | ||
[Language Support](../lang-support.md) documentation. | ||
|
||
When adding a new language or Language Server configuration for an existing | ||
language, run `cargo xtask docgen` to add the new configuration to the | ||
[Language Support][lang-support] docs before creating a pull request. | ||
When adding a Language Server configuration, be sure to update the | ||
[Language Server Wiki][install-lsp-wiki] with installation notes. | ||
> 💡 If you are adding a new Language Server configuration, make sure to update | ||
> the | ||
> [Language Server Wiki](https://github.com/helix-editor/helix/wiki/How-to-install-the-default-language-servers) | ||
> with the installation instructions. | ||
## Grammar configuration | ||
|
||
If a tree-sitter grammar is available for the language, add a new `[[grammar]]` | ||
entry to `languages.toml`. | ||
|
||
You may use the `source.path` key rather than `source.git` with an absolute path | ||
to a locally available grammar for testing, but switch to `source.git` before | ||
submitting a pull request. | ||
1. If a tree-sitter grammar is available for the new language, add a new | ||
`[[grammar]]` entry to the `languages.toml` file. | ||
2. If you are testing the grammar locally, you can use the `source.path` key | ||
with an absolute path to the grammar. However, before submitting a pull | ||
request, make sure to switch to using `source.git`. | ||
|
||
## Queries | ||
|
||
For a language to have syntax-highlighting and indentation among | ||
other things, you have to add queries. Add a directory for your | ||
language with the path `runtime/queries/<name>/`. The tree-sitter | ||
[website](https://tree-sitter.github.io/tree-sitter/syntax-highlighting#queries) | ||
gives more info on how to write queries. | ||
|
||
> NOTE: When evaluating queries, the first matching query takes | ||
precedence, which is different from other editors like Neovim where | ||
the last matching query supersedes the ones before it. See | ||
[this issue][neovim-query-precedence] for an example. | ||
|
||
## Common Issues | ||
|
||
- If you get errors when running after switching branches, you may have to update the tree-sitter grammars. Run `hx --grammar fetch` to fetch the grammars and `hx --grammar build` to build any out-of-date grammars. | ||
|
||
- If a parser is segfaulting or you want to remove the parser, make sure to remove the compiled parser in `runtime/grammar/<name>.so` | ||
|
||
[language configuration section]: ../languages.md | ||
[neovim-query-precedence]: https://github.com/helix-editor/helix/pull/1170#issuecomment-997294090 | ||
[install-lsp-wiki]: https://github.com/helix-editor/helix/wiki/How-to-install-the-default-language-servers | ||
[lang-support]: ../lang-support.md | ||
1. In order to provide syntax highlighting and indentation for the new language, | ||
you will need to add queries. | ||
2. Create a new directory for the language with the path | ||
`runtime/queries/<name>/`. | ||
3. Refer to the | ||
[tree-sitter website](https://tree-sitter.github.io/tree-sitter/syntax-highlighting#queries) | ||
for more information on writing queries. | ||
|
||
> 💡 In Helix, the first matching query takes precedence when evaluating | ||
> queries, which is different from other editors such as Neovim where the last | ||
> matching query supersedes the ones before it. See | ||
> [this issue](https://github.com/helix-editor/helix/pull/1170#issuecomment-997294090) | ||
> for an example. | ||
## Common issues | ||
|
||
- If you encounter errors when running Helix after switching branches, you may | ||
need to update the tree-sitter grammars. Run the command `hx --grammar fetch` | ||
to fetch the grammars and `hx --grammar build` to build any out-of-date | ||
grammars. | ||
- If a parser is causing a segfault or you want to remove it, make sure to | ||
remove the compiled parser located at `runtime/grammar/<name>.so`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.