diff --git a/src/pygerber/console/gerber.py b/src/pygerber/console/gerber.py index d00ba7b6..fea33273 100644 --- a/src/pygerber/console/gerber.py +++ b/src/pygerber/console/gerber.py @@ -563,9 +563,16 @@ def _parse_rules(rules: list[str]) -> Iterable[str]: @gerber.command("list-lint-rules") -def list_lint_rules() -> None: +@click.option( + "-q", "--quiet", is_flag=True, help="Print only rule names without descriptions." +) +def list_lint_rules(*, quiet: bool) -> None: """List available linting rules.""" from pygerber.gerber.linter.rules import RULE_REGISTRY for rule_id in RULE_REGISTRY: - click.echo(rule_id) + if quiet: + click.echo(rule_id) + else: + rule = RULE_REGISTRY[rule_id]() + click.echo(f"{rule_id}: {rule.get_violation_title()}") diff --git a/src/pygerber/gerber/linter/rules/GRB001.py b/src/pygerber/gerber/linter/rules/GRB001.py index 6801c183..b8a77e28 100644 --- a/src/pygerber/gerber/linter/rules/GRB001.py +++ b/src/pygerber/gerber/linter/rules/GRB001.py @@ -15,8 +15,9 @@ class GRB001(Rule): def get_violation_title(self) -> str: """Return a title of message that describes the rule violation.""" - assert self.last_node is not None - return f"""Redundant {self.last_node.__qualname__} command.""" + if self.last_node is not None: + return f"""Redundant {self.last_node.__qualname__} command.""" + return "Redundant G01/G02/G03 command." def get_violation_description(self) -> str: """Return a description of the rule violation."""