normalize-syntax-rules 0.3.1

Syntax-based linting rules with tree-sitter queries
Documentation

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")) @match