Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
e132a78
test: add test for annotation on same line as method (issue #44)
mshanemc Oct 30, 2025
6a3a423
test: add tests for ternary expressions (issue #43)
mshanemc Oct 30, 2025
c9e5baa
fix: DML operations on method call results (issue #26)
mshanemc Oct 30, 2025
4c7eca2
fix: support namespace-qualified types in extends/implements (issue #50)
mshanemc Oct 30, 2025
74824a3
fix: support namespace-qualified types in extends/implements (issue #50)
mshanemc Oct 30, 2025
c07015e
test: add coverage for both Id and ID (case-insensitive Apex)
mshanemc Oct 30, 2025
ff83f99
feat: support for varied casing on ID/Id
mshanemc Oct 30, 2025
f3f3d5b
fix: Add syntax highlighting for initialization blocks
mshanemc Oct 30, 2025
0ddf7b6
test: Add tests for initialization block syntax highlighting
mshanemc Oct 30, 2025
4868efa
test: Add test for static keyword before block
mshanemc Oct 30, 2025
033f08a
fix: Fix switch/when statement syntax highlighting and brace matching
mshanemc Oct 30, 2025
bea0c18
fix: Fix dash highlighting in switch statement string literals
mshanemc Oct 30, 2025
f2f3ff2
fix: support namespace-qualified types in extends/implements (#50) (#72)
mshanemc Oct 30, 2025
6a40600
chore: pr reproducers in sfdx project for visual inspection
mshanemc Oct 30, 2025
d1695dd
fix: 4920 initializer block syntax W-19265631 (#73)
mshanemc Oct 30, 2025
429fb49
fix: Fix switch/when statement syntax highlighting and brace matching…
mshanemc Oct 30, 2025
fd6bf8f
Merge branch 'sm/mass-qa-reproducers' into fix/issue-26-dml-map-values
mshanemc Oct 30, 2025
04d634e
Merge branch 'fix/issue-26-dml-map-values' of https://github.com/forc…
mshanemc Oct 30, 2025
1398cdf
Merge remote-tracking branch 'origin/fix/issue-49-final-parameter' in…
mshanemc Oct 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,6 @@ jspm_packages/

# MacOS folder atttribute tracking
**/.DS_Store

**/.sfdx
**.sf
158 changes: 142 additions & 16 deletions grammars/apex.tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,10 @@
<key>include</key>
<string>#method-declaration</string>
</dict>
<dict>
<key>include</key>
<string>#initializer-block</string>
</dict>
<dict>
<key>include</key>
<string>#punctuation-semicolon</string>
Expand Down Expand Up @@ -309,6 +313,10 @@
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#dml-expression</string>
</dict>
<dict>
<key>include</key>
<string>#merge-expression</string>
Expand Down Expand Up @@ -693,6 +701,32 @@
</dict>
</array>
</dict>
<key>dml-expression</key>
<dict>
<key>begin</key>
<string>\b(delete|insert|undelete|update|upsert)\b\s+(?!new\b)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.apex</string>
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\;)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
<dict>
<key>include</key>
<string>#punctuation-semicolon</string>
</dict>
</array>
</dict>
<key>merge-expression</key>
<dict>
<key>begin</key>
Expand Down Expand Up @@ -1328,22 +1362,49 @@
<key>extends-class</key>
<dict>
<key>begin</key>
<string>(extends)\b\s+([_[:alpha:]][_[:alnum:]]*)</string>
<string>(extends)\b\s+</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.other.extends.apex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.type.extends.apex</string>
</dict>
</dict>
<key>end</key>
<string>(?={|implements)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=[_[:alpha:]][_[:alnum:]]*\s*\.)</string>
<key>end</key>
<string>(?={|implements)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#support-type</string>
</dict>
<dict>
<key>include</key>
<string>#type</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>([_[:alpha:]][_[:alnum:]]*)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.type.extends.apex</string>
</dict>
</dict>
</dict>
</array>
</dict>
<key>implements-class</key>
<dict>
Expand All @@ -1359,6 +1420,23 @@
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=[_[:alpha:]][_[:alnum:]]*\s*\.)</string>
<key>end</key>
<string>(?={|extends|,)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#support-type</string>
</dict>
<dict>
<key>include</key>
<string>#type</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>([_[:alpha:]][_[:alnum:]]*)\b\s*(,)?</string>
Expand All @@ -1376,6 +1454,10 @@
</dict>
</dict>
</dict>
<dict>
<key>include</key>
<string>#punctuation-comma</string>
</dict>
</array>
<key>end</key>
<string>(?={|extends)</string>
Expand Down Expand Up @@ -2436,6 +2518,36 @@
</dict>
</array>
</dict>
<key>initializer-block</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.curlybrace.open.apex</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.curlybrace.close.apex</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#statement</string>
</dict>
</array>
</dict>
<key>variable-initializer</key>
<dict>
<key>begin</key>
Expand Down Expand Up @@ -2761,7 +2873,7 @@
<key>when-statement</key>
<dict>
<key>begin</key>
<string>(when)\b\s+([\'_\-[:alnum:]]+)\s*</string>
<string>(when)\b\s+([_\-[:alnum:]]+)\s*</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
Expand All @@ -2781,7 +2893,7 @@
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\})</string>
<string>(?=\})|(?=when\b)</string>
<key>patterns</key>
<array>
<dict>
Expand All @@ -2797,7 +2909,7 @@
<key>when-string</key>
<dict>
<key>begin</key>
<string>(when)\b\s*('[^'\n]*')(,)?</string>
<string>(when)\b\s*('[^'\n]*')(\s*(,)\s*('[^'\n]*'))*\s*</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
Expand All @@ -2815,7 +2927,7 @@
</dict>
</array>
</dict>
<key>3</key>
<key>4</key>
<dict>
<key>patterns</key>
<array>
Expand All @@ -2825,9 +2937,19 @@
</dict>
</array>
</dict>
<key>5</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string-literal</string>
</dict>
</array>
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\})</string>
<string>(?=\})|(?=when\b)</string>
<key>patterns</key>
<array>
<dict>
Expand Down Expand Up @@ -2858,7 +2980,7 @@
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\})</string>
<string>(?=\})|(?=when\b)</string>
<key>patterns</key>
<array>
<dict>
Expand All @@ -2884,7 +3006,7 @@
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\})</string>
<string>(?=\})|(?=when\b)</string>
<key>patterns</key>
<array>
<dict>
Expand All @@ -2895,6 +3017,10 @@
<key>include</key>
<string>#expression</string>
</dict>
<dict>
<key>include</key>
<string>#punctuation-comma</string>
</dict>
</array>
</dict>
<key>when-sobject-statement</key>
Expand All @@ -2920,7 +3046,7 @@
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\})</string>
<string>(?=\})|(?=when\b)</string>
<key>patterns</key>
<array>
<dict>
Expand Down Expand Up @@ -4251,7 +4377,7 @@
<dict>
<key>match</key>
<string>(?x)
(?:(?:\b(this)\b)\s+)?
(?:(?:\b(this|final)\b)\s+)?
(?&lt;type_name&gt;
(?:
(?:ref\s+)? # ref return
Expand Down Expand Up @@ -4438,7 +4564,7 @@
<key>type-builtin</key>
<dict>
<key>match</key>
<string>\b(Blob|Boolean|byte|Date|Datetime|Decimal|Double|ID|Integer|Long|Object|String|Time|void)\b</string>
<string>\b(Blob|Boolean|byte|Date|Datetime|Decimal|Double|Id|ID|Integer|Long|Object|String|Time|void)\b</string>
<key>captures</key>
<dict>
<key>1</key>
Expand Down
Loading
Loading