You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,21 @@
2
2
3
3
All notable changes to the **Bison/Flex Language Support** extension will be documented in this file.
4
4
5
+
## [1.5.2] - 2026-04-05
6
+
7
+
### Added
8
+
9
+
-**Flex — Code Lens for abbreviations** (#39): abbreviation definitions in the definitions section now show a clickable "N references" Code Lens, consistent with start conditions and Bison rules. Clicking opens the References panel with all `{ABBR}` usages in the rules section.
10
+
11
+
### Fixed
12
+
13
+
-**Flex — SC refs in multi-line block headers** (#38): in `<SC_A,\nSC_B,\nSC_C>{` multi-line syntax, only the SC on the closing line was recorded as a start-condition reference; all preceding SCs had 0 refs, causing false `flex/unused-sc` diagnostics and incorrect Code Lens counts.
14
+
-**Flex — abbreviation refs on indented rule lines** (#38): `{ABBR}` on a rule line indented inside a `<SC>{ }` block was not recorded as an abbreviation reference. The `actionStart` heuristic mistook the leading whitespace before `{ABBR}` itself as the action opener, making `m.index < actionStart` false for all such lines.
15
+
-**Flex — transitive abbreviation references** (#38): abbreviations used only inside another abbreviation's definition (e.g. `ALNUM_LITERAL {ALNUM_LITERAL_Q}|{ALNUM_LITERAL_A}`) were never recorded as referenced, producing false `flex/unused-abbrev` for the inner abbreviations. The parser now scans each definition body for `{name}` references.
16
+
-**Flex — `flex/unreachable-rule` false positive for patterns with mandatory non-class groups** (#38): `isWordPattern` returned `true` for any pattern starting with `[a-zA-Z_` regardless of what followed, so `[_0-9A-Z]+(\.[_0-9A-Z]+)+` (which requires a literal dot and cannot match a plain keyword) was treated as a general identifier pattern, producing false `flex/unreachable-rule` warnings for keyword rules that followed it. `isWordPattern` now requires the entire pattern to consist solely of character-class groups.
Copy file name to clipboardExpand all lines: package.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
"name": "bison-flex-lang",
3
3
"displayName": "Bison/Flex Language Support",
4
4
"description": "Full-featured language support for GNU Bison (.y, .yy) and Flex/RE-flex (.l, .ll) — syntax highlighting with embedded C/C++, real-time diagnostics, intelligent autocompletion, and hover documentation for all directives.",
0 commit comments