Feat: update VSCode extension with compound assignment and shift operators

Add compound assignment operators (+=, -=, *=, /=, %=, &=, |=, ^=,
<<=, >>=) and shift operators (<<, >>) to the tmLanguage syntax
highlighting grammar. Patterns are ordered longest-first to prevent
shorter tokens from shadowing multi-character operators. Also update
fibonacci example to use += compound assignment.
This commit is contained in:
2026-03-11 10:11:01 +01:00
parent 415dea6fd2
commit 53c66a3d03
2 changed files with 15 additions and 5 deletions

View File

@@ -156,19 +156,29 @@
"operators": {
"patterns": [
{
"comment": "Arrow (return type separator)",
"comment": "Arrow (return type separator) — must precede - and -=",
"name": "keyword.operator.arrow.flux",
"match": "->"
},
{
"comment": "Compound assignment operators — must precede shift, comparison, and arithmetic",
"name": "keyword.operator.assignment.compound.flux",
"match": "<<=|>>=|\\+=|-=|\\*=|/=|%=|&=|\\|=|\\^="
},
{
"comment": "Shift operators — must precede < and >",
"name": "keyword.operator.bitwise.shift.flux",
"match": "<<|>>"
},
{
"comment": "Comparison operators",
"name": "keyword.operator.comparison.flux",
"match": "==|!=|<=|>=|<|>"
},
{
"comment": "Assignment",
"comment": "Assignment — negative lookbehind excludes all compound-assign prefixes",
"name": "keyword.operator.assignment.flux",
"match": "(?<![=!<>])=(?!=)"
"match": "(?<![=!<>+\\-*/%&|^])=(?!=)"
},
{
"comment": "Arithmetic: + - * / %",
@@ -176,7 +186,7 @@
"match": "[+\\-*/%]"
},
{
"comment": "Bitwise: & | ^ ~ and unary ! ~",
"comment": "Bitwise and unary: & | ^ ~ !",
"name": "keyword.operator.bitwise.flux",
"match": "[&|^~!]"
}