Commit Graph

7 Commits

Author SHA1 Message Date
1734ebe381 Skip tokenizer/CST parsing when no CST rules are active
Check filter-rules-by-config before invoking the tokenizer in
lint-file. When all CST rules are disabled (e.g. --disable
comment-semicolons), the expensive tokenize+parse-cst pass is
skipped entirely.

On the Guix tree (1336 files), this saves ~2s on surface-only
runs (15.6s → 13.7s). The savings are more pronounced on
projects with fewer monster files.
2026-04-04 13:44:31 +02:00
f979d48e54 Fix 8 bugs found by running gulie on the Guix source tree
Bug 1: Config auto-discovery — load-config now walks CWD and parent
directories for .gulie.sexp when no --config is given, matching the
documented behavior. Added find-config helper.

Bug 2: Compile-error messages garbled — the catch handler now properly
destructures Guile exception args (subr fmt fmt-args . _) and uses
apply+format instead of raw display, producing readable messages like
"no code for module (guix licenses)" instead of
"#f no code for module ~S ((guix licenses)) #f".

Bug 3: --init template unreadable — generate-template now uses
pretty-print instead of write, producing properly indented output.

Bug 4: CLI options silently ignored — --pass, --disable, --rule, and
--severity are now wired up in main and threaded into config as %pass,
augmented disable list, enable list, and %min-severity respectively.

Bug 5: enable/disable config keys never consulted — added
filter-rules-by-config, used in run-line-rules and run-cst-rules.

Bug 6: blank-lines rule spammed one diagnostic per excess line —
changed trigger to fire once per group at the boundary.

Bug 7: read-file-to-string slow — replaced line-by-line accumulation
with get-string-all.

Bug 8: No way to skip semantic pass — lint-file now respects %pass
config key (surface/semantic/all) and %min-severity for filtering.
2026-04-04 13:30:48 +02:00
e3e28a911a docs: License 2026-04-02 00:26:05 +02:00
f512e0aced style: Dog fooding 2026-04-02 00:20:24 +02:00
98fbba03cb build: Line length default 2026-04-02 00:20:09 +02:00
1e85dd224a build: Nix package 2026-04-01 23:55:07 +02:00
d0115672dd First iteration 2026-04-01 23:35:50 +02:00