Expand description
Syntax-based linting with tree-sitter queries.
This crate provides:
- Rule loading from multiple sources (builtins, user global, project)
- Rule execution with combined query optimization
- Pluggable data sources for rule conditionals
§Rule File Format
# ---
# id = "no-unwrap"
# severity = "warning"
# message = "Avoid unwrap() on user input"
# allow = ["**/tests/**"]
# files = ["**/lib.rs", "**/mod.rs"]
# requires = { "rust.edition" = ">=2024" }
# enabled = true # set to false to disable a builtin
# fix = "" # empty = delete match, or use "$capture" to substitute
# ---
(call_expression
function: (field_expression
field: (field_identifier) @method)
(#eq? @method "unwrap")) @matchRe-exports§
pub use query::MatchResult;pub use query::is_sexp_pattern;pub use query::run_astgrep_query;pub use query::run_sexp_query;
Modules§
- query
- Generic tree-sitter and ast-grep query execution.
Structs§
- Builtin
Rule - A builtin rule definition (id, content).
- Debug
Flags - Debug output categories.
- EnvSource
- Environment variable source.
- Finding
- A finding from running a rule.
- GitSource
- Git repository state source.
- GoSource
- Go project source - parses go.mod for module metadata.
- Path
Source - Path-based source for glob matching.
- Python
Source - Python project source - parses pyproject.toml for project metadata.
- Rule
- A syntax rule definition.
- Rule
Override - Common per-rule configuration fields shared across all rule engines.
- Rules
Config - Rules configuration covering all engines (syntax, fact, native, sarif).
- Rust
Source - Rust project source - parses Cargo.toml for edition, resolver, etc.
- Source
Context - Context passed to sources for evaluation.
- Source
Registry - Registry of all available rule sources.
- Type
Script Source - TypeScript/JavaScript project source - parses tsconfig.json and package.json.
Enums§
- Severity
- Severity level for rule findings. Defined in normalize-rules-config for sharing across all rule engines (syntax, fact). Severity level for rule findings.
Constants§
- BUILTIN_
RULES - All embedded builtin rules.
Traits§
- Rule
Source - A source of data for rule conditionals.
Functions§
- apply_
fixes - Apply one pass of fixes to findings, returning the number of files modified.
- builtin_
registry - Create a registry with all built-in sources.
- evaluate_
predicates - Evaluate predicates for a match.
- load_
all_ rules - Load all rules from all sources, merged by ID. Order: builtins → ~/.config/normalize/rules/ → .normalize/rules/ Then applies config overrides (severity, disable).
- parse_
rule_ content - Parse rule content string with TOML frontmatter.
- run_
rules - Run rules against files in a directory. Optimized: combines all rules into single query per grammar for single-traversal matching.