Contributors are very welcome! No contribution is too small and all contributions are valued.
Some suggestions to get started:
- You can look at the good first issue label on the issue tracker.
- Help with packaging on various distributions needed!
- To use print debugging to the Helix log file, you must:
- Print using
log::info!
,warn!
, orerror!
. (log::info!("helix!")
) - Pass the appropriate verbosity level option for the desired log level. (
hx -v <file>
for info, morev
s for higher severity inclusive)
- Print using
- If your preferred language is missing, integrating a tree-sitter grammar for it and defining syntax highlight queries for it is straight forward and doesn't require much knowledge of the internals.
We provide an architecture.md that should give you a good overview of the internals.
Some parts of the book are autogenerated from the code itself,
like the list of :commands
and supported languages. To generate these
files, run
cargo xtask docgen
inside the project. We use xtask as an ad-hoc task runner and
thus do not require any dependencies other than cargo
(You don't have
to cargo install
anything either).
Integration tests for helix-term can be run with cargo integration-test
. Code
contributors are strongly encouraged to write integration tests for their code.
Existing tests can be used as examples. Helpers can be found in
helpers.rs. The log level can be set with the HELIX_LOG_LEVEL
environment variable, e.g. HELIX_LOG_LEVEL=debug cargo integration-test
.
Helix follows the MSRV of Firefox. The current MSRV and future changes to the MSRV are listed in the Firefox documentation.