AC0014 ToolTip Punctuation, LC0092 LocalVariable, GlobalVariable, VarParameter#367
Conversation
Code Review: AC0014 ToolTip Punctuation + LC0092 Variable/Parameter targetsScope: 23 files, +360/−85. Two unrelated features bundled. CI is green (build + all test matrix pass). Overall the design is sound and the LC0092 inheritance-chain refactor is a genuine improvement (cleaner than the old two-level branch logic, well tested). But there are a few correctness/UX bugs in AC0014 and an undocumented behavior change in LC0092 worth resolving before merge. 🔴 Should fix before merge1. Diagnostic
2. Null/empty if (tooltipText.EndsWith(punctuation.Character + "'", ...))
3. Empty array settings.ToolTipAllowedPunctuations ?? [new Punctuation { Character = ".", Name = "dot" }]The 4. The new configurable behavior is not tested at the analyzer level 🟠 Behavior changes worth confirming5. 6. 🟡 Minor / style
✅ Good
Generated with Claude Opus 4.8 |
|
Look great so far! I've posted the remarks of the code reviewer. If I can assist on anything just let me know 🙋 |
- Accepted 5-6 - Fixed tabs, double-quote - Kept public enum NamingTarget, Character, Punctuations
NamingTarget: |
|
Thanks! I'm going to include this in the upcoming Based on the feedback from the beta release, any changes to these new rules can be submitted as a PR against the |
AC0014: Make allowed ToolTip ending punctuation configurable
Implements #361
The current implementation of AC0014 hardcodes a trailing dot as the only accepted ToolTip ending. Some teams use different punctuation conventions (e.g. exclamation marks in specific locales or house styles).
Changes:
ToolTipAllowedPunctuationssetting inalcops.jsonaccepts an array of{ Character, Name }objects that define which punctuation characters are accepted.Example configuration:
{ "ToolTipAllowedPunctuations": [ { "Character": ".", "Name": "dot" }, { "Character": "!", "Name": "exclamation mark" } ] }LC0092: Add variable/parameter sub-target resolution with inheritance fallback
Implements #363
Implements #342
Implement additions to LC0092 for variable/parameter target handling.
Changes:
Tests: