Expand description
Per-language tree-sitter token enums.
Every language_*.rs module under this directory is generated by
the enums/ codegen crate from enums/templates/rust.rs. Each
module declares one enum per grammar — one variant per tree-sitter
token kind — plus a From<u16> / PartialEq<u16> set of impls
whose match expressions enumerate every variant.
Two pedantic clippy lints fire systemically on those generated
matches and are silenced via a per-file #![allow(...)] block in
each generated module:
match_same_arms— distinct token variants frequently share the same conversion arm, but collapsing them via|would obscure the per-language token set, which is the point of these files.too_many_lines— the conversion match is one expression spanning hundreds of lines for any non-trivial grammar.
Hand-written modules that consume these enums via use Foo::*
patterns (src/getter.rs, src/checker.rs, src/alterator.rs,
per-metric impls under src/metrics/) carry their own file-level
#![allow(clippy::wildcard_imports, clippy::enum_glob_use)]
because explicit imports would list dozens of variants per match
arm and obscure the per-language token sets in those files.
Re-exports§
pub use language_ccomment::*;pub use language_bash::*;pub use language_c::*;pub use language_cpp::*;pub use language_mozcpp::*;pub use language_csharp::*;pub use language_elixir::*;pub use language_go::*;pub use language_groovy::*;pub use language_irules::*;pub use language_java::*;pub use language_kotlin::*;pub use language_lua::*;pub use language_mozjs::*;pub use language_javascript::*;pub use language_objc::*;pub use language_perl::*;pub use language_php::*;pub use language_python::*;pub use language_ruby::*;pub use language_rust::*;pub use language_tcl::*;pub use language_tsx::*;pub use language_typescript::*;pub use language_preproc::*;
Modules§
- language_
bash - language_
c - language_
ccomment - language_
cpp - language_
csharp - language_
elixir - language_
go - language_
groovy - language_
irules - language_
java - language_
javascript - language_
kotlin - language_
lua - language_
mozcpp - language_
mozjs - language_
objc - language_
perl - language_
php - language_
preproc - language_
python - language_
ruby - language_
rust - language_
tcl - language_
tsx - language_
typescript