Skip to main content

Rules and suppressions

Read a diagnosticโ€‹

Human-readable output uses this shape:

path:line:column: [rule-id] message

For example:

lib/render.zsh:8:10: [quoting/unquoted-var] Variable expansion should be double-quoted

The rule ID is stable machine-facing identity. Browse the published rule reference for each rule's purpose, examples, severity, and suppression form.

Warnings and errors make the command exit 1. Info and Hint findings are still reported but do not make the command fail.

Fix first, suppress only when intentionalโ€‹

A suppression names the exact rule and applies to one source line:

print $words # zsh-lint disable=quoting/unquoted-var -- intentional word splitting

You can also put it on the preceding comment line. It then applies to the next non-comment, non-blank source line:

# zsh-lint disable=quoting/unquoted-var -- intentional word splitting
print $words

Multiple rule IDs are comma-separated without spaces:

# zsh-lint disable=rule/one,rule/two -- compatibility boundary
command_to_review

There is no blanket, block-wide, or file-wide disable in the published contract. A malformed directive reports meta/malformed-suppression. A rule ID that suppresses nothing reports meta/unused-suppression, which helps keep exceptions from becoming stale.

Use a short reason even when it is optional. The reason lets the next reviewer decide whether the exception is still valid.