mirror of
https://github.com/helix-editor/helix.git
synced 2025-01-19 13:37:06 +04:00
707457c632
* Rewrite and refactor all documentation * Rewrite and refactor the guides * update runtime directory instructions for windows * Update the Ubuntu 3rd party repo section with 22.10 * Merge from upstream * Rewrite and refactor all documentation * Apply suggestions from code review Apply the suggestions that can be committed from the GitHub web interface. Co-authored-by: Michael Davis <mcarsondavis@gmail.com> * Add Windows themes folder Co-authored-by: digidoor <37601466+digidoor@users.noreply.github.com> * Apply the rest of the suggestions from the code review * Revert "Apply the rest of the suggestions from the code review" This reverts commit498be1b7a1
. * Revert "Merge branch 'rewrite-and-refactor-all-documentation' of github.com:David-Else/helix into rewrite-and-refactor-all-documentation" This reverts commit7c8404248f
, reversing changes made tod932969cfc
. * Apply code review suggestions * Changes after re-reading all documents * Missed a full stop * Code review suggestions and remove macOS and Windows specific sections * Add OpenBSD to heading * Add back macOS and Windows sections and further simplify and improve * Change wording to nightly * Remove README installation section and turn into a link * Simplify building from source and follow code review suggestions * Code review revisions * Fix copy paste mistake * Apply the latest code review suggestions * More small code review items * Change minor modes for code review * Fix link and typos * Add note that you need a c++ compiler to install the tree-sitter grammars * Add pacman example * Make sure all headings are lower case * Revert to the original passage adding a reference to Windows that was missing * Update book/src/guides/adding_languages.md Fix grammar typo Co-authored-by: Michael Davis <mcarsondavis@gmail.com> * Update book/src/install.md Fix tree sitter typo Co-authored-by: Michael Davis <mcarsondavis@gmail.com> * Remove TOC links to main heading --------- Co-authored-by: CptPotato <3957610+CptPotato@users.noreply.github.com> Co-authored-by: Michael Davis <mcarsondavis@gmail.com> Co-authored-by: digidoor <37601466+digidoor@users.noreply.github.com>
2.3 KiB
2.3 KiB
Adding new languages to Helix
In order to add a new language to Helix, you will need to follow the steps below.
Language configuration
- Add a new
[[language]]
entry in thelanguages.toml
file and provide the necessary configuration for the new language. For more information on language configuration, refer to the language configuration section of the documentation. - 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 documentation.
💡 If you are adding a new Language Server configuration, make sure to update the Language Server Wiki with the installation instructions.
Grammar configuration
- If a tree-sitter grammar is available for the new language, add a new
[[grammar]]
entry to thelanguages.toml
file. - 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 usingsource.git
.
Queries
- In order to provide syntax highlighting and indentation for the new language, you will need to add queries.
- Create a new directory for the language with the path
runtime/queries/<name>/
. - Refer to the tree-sitter website 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 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 andhx --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/grammars/<name>.so
.