Skip to main content

Module languages

Module languages 

Source
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