Repository navigation
Release v15.2.12
Hardens the LSP server against normal editor traffic and adds a doctor command to catch misconfigured project settings before they cause confusing warnings. log
Fixed
- LSP server handles all standard notifications without crashing. Added explicit no-op cases for
textDocument/didChange,$/cancelRequest,$/setTrace, andworkspace/didChangeConfigurationso the inert server stays alive under normal VS Code traffic. Two-level logging surfaces server activity in the Output channel: lifecycle events always log, high-frequency messages (didChange, codeAction) are suppressed unless$/setTraceis set toverbose. No action required.
Added
- New
doctorcommand scans consumer project configuration for misplaced keys, missing custom file, and other issues that produce SDK warnings. Rundart run saropa_lints doctor [directory]. --traceflag for LSP server enables verbose logging from startup without waiting for the editor to send$/setTrace. Useful for standalone debugging:dart run saropa_lints:lsp_server --trace.
Maintenance
- Pre-commit hook now auto-regenerates category map and migration pack codes when rule files, tier definitions, or migration guides change — eliminates the recurring CI failures from stale generated indexes.
- Closed
unsupported_optionbug forrule_packsandlog_level— investigation confirmed the fix was already implemented; consumer projects just need to rundart run saropa_lints migrate-config. migrate-confignow removes orphanrule_packs:keys that have noenabled:child, and handles trailing comments on the key line.- Config parser (
_leadingSpaces) now counts tabs as indentation, matching the scalar parser — fixes silent parse failures on tab-indented YAML. doctorcommand now scopes key detection to thesaropa_lints:plugin block — no longer false-positives on identically named top-level keys.- Publish script supports
--log-file,--log-append,--mode,--auto-retry, and--output-levelflags for non-interactive/CI execution. Auto-detects non-TTY stdin. Mode definitions are unified in a single table driving both CLI and interactive menu.