Skip to content

Commit ecab0a9

Browse files
authored
feat: update to Spring 23 (API 57.0) (#4)
* ci: dependency updates * apex lang updates * build(dependabot): auto-rename dependabot PRs * build: disable PMD cache * Revert "apex lang updates" This reverts commit 91bf707. * feat: update Spring 23 (API 57.0) * ci(auto-changelog): install auto-changelog
1 parent c5da832 commit ecab0a9

File tree

14 files changed

+933
-452
lines changed

14 files changed

+933
-452
lines changed

.github/dependabot.yml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,19 @@
55

66
version: 2
77
updates:
8-
- package-ecosystem: "github-actions"
9-
# Workflow files stored in the
10-
# default location of `.github/workflows`
11-
directory: "/"
8+
- package-ecosystem: 'npm' # See documentation for possible values
9+
directory: '/' # Location of package manifests
10+
commit-message:
11+
prefix: 'build'
12+
include: 'scope'
13+
rebase-strategy: 'auto'
1214
schedule:
13-
interval: "daily"
14-
- package-ecosystem: "npm"
15-
directory: "/"
15+
interval: 'daily'
16+
- package-ecosystem: 'github-actions' # See documentation for possible values
17+
directory: '/' # Location of package manifests
18+
commit-message:
19+
prefix: 'ci'
20+
include: 'scope'
21+
rebase-strategy: 'auto'
1622
schedule:
17-
interval: "daily"
23+
interval: 'daily'
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Dependabot Pull Request Approve and Merge
2+
on: pull_request_target
3+
permissions:
4+
pull-requests: write
5+
contents: write
6+
jobs:
7+
# Auto merge Dependabot PRs for:
8+
# - patch updates on prod dependencies
9+
# - minor updates on dev dependencies
10+
dependabot-auto-merge:
11+
# Only run for Dependabot PRs
12+
if: ${{ github.actor == 'dependabot[bot]' }}
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: 'Fetch Dependabot metadata'
16+
id: dependabot
17+
uses: dependabot/fetch-metadata@v1
18+
19+
- name: 'Check auto merge conditions'
20+
id: auto-merge
21+
if: |
22+
(
23+
steps.dependabot.outputs.update-type == 'version-update:semver-patch' &&
24+
contains('direct:production,indirect:production', steps.dependabot.outputs.dependency-type)
25+
) || (
26+
contains('version-update:semver-minor,version-update:semver-patch', steps.dependabot.outputs.update-type) &&
27+
contains('direct:development,indirect:development', steps.dependabot.outputs.dependency-type)
28+
)
29+
run: echo "::notice ::auto-merge conditions satisfied"
30+
31+
- name: 'Approve and merge PR'
32+
if: ${{ steps.auto-merge.conclusion == 'success' }}
33+
run: |
34+
gh pr review --approve "$PR_URL"
35+
gh pr merge --auto --squash "$PR_URL"
36+
env:
37+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38+
PR_URL: ${{ github.event.pull_request.html_url }}

.prettierrc

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
{
2-
"trailingComma": "none",
3-
"useTabs": true,
4-
"printWidth": 100,
5-
"bracketSameLine": true,
6-
"bracketSpacing": true,
7-
"tabWidth": 2,
8-
"singleQuote": true
2+
"trailingComma": "none",
3+
"useTabs": true,
4+
"printWidth": 120,
5+
"bracketSameLine": true,
6+
"bracketSpacing": true,
7+
"tabWidth": 2,
8+
"singleQuote": true,
9+
"overrides": [
10+
{
11+
"files": "**/*.js",
12+
"options": { "useTabs": false, "printWidth": 80 }
13+
}
14+
]
915
}

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"apexPMD.enableCache": false
3+
}

demo/highlight.css

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,64 @@
1-
pre code.hljs {
2-
display: block;
3-
overflow-x: auto;
4-
padding: 1em;
5-
}
6-
code.hljs {
7-
padding: 3px 5px;
8-
}
1+
/*
2+
3+
Visual Studio-like style based on original C# coloring by Jason Diamond <[email protected]>
4+
5+
*/
96
.hljs {
10-
background: #fff;
11-
color: #000;
7+
background: white;
8+
color: black;
129
}
10+
1311
.hljs-comment,
1412
.hljs-quote,
1513
.hljs-variable {
16-
color: green;
14+
color: #008000;
1715
}
18-
.hljs-built_in,
16+
1917
.hljs-keyword,
20-
.hljs-name,
2118
.hljs-selector-tag,
19+
.hljs-built_in,
20+
.hljs-name,
2221
.hljs-tag {
2322
color: #00f;
2423
}
25-
.hljs-addition,
24+
25+
.hljs-string,
26+
.hljs-title,
27+
.hljs-section,
2628
.hljs-attribute,
2729
.hljs-literal,
28-
.hljs-section,
29-
.hljs-string,
3030
.hljs-template-tag,
3131
.hljs-template-variable,
32-
.hljs-title,
33-
.hljs-type {
32+
.hljs-type,
33+
.hljs-addition {
3434
color: #a31515;
3535
}
36+
3637
.hljs-deletion,
37-
.hljs-meta,
3838
.hljs-selector-attr,
39-
.hljs-selector-pseudo {
39+
.hljs-selector-pseudo,
40+
.hljs-meta {
4041
color: #2b91af;
4142
}
43+
4244
.hljs-doctag {
43-
color: grey;
45+
color: #808080;
4446
}
47+
4548
.hljs-attr {
46-
color: red;
49+
color: #f00;
4750
}
51+
52+
.hljs-symbol,
4853
.hljs-bullet,
49-
.hljs-link,
50-
.hljs-symbol {
54+
.hljs-link {
5155
color: #00b0e8;
5256
}
57+
5358
.hljs-emphasis {
5459
font-style: italic;
5560
}
61+
5662
.hljs-strong {
57-
font-weight: 700;
63+
font-weight: bold;
5864
}

demo/testcode.html

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<head>
44
<title>TEST APEX CODE</title>
55
<meta charset="UTF-8" />
6-
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min.js"></script>
6+
<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release/build/highlight.min.js"></script>
77
<script charset="UTF-8" src="../dist/apex.min.js"></script>
88
<link rel="stylesheet" href="./highlight.css" />
99
<script>
@@ -20,20 +20,15 @@
2020
</head>
2121

2222
<body>
23-
<pre><code class="">
23+
<pre><code>
2424
/*
25-
Action Plans v3
26-
Force.com Labs 2011
27-
https://appexchange.salesforce.com/listingDetail?listingId=a0N30000003HcINEA0
28-
2925
Copyright (c) 2022, salesforce.com, inc.
3026
All rights reserved.
3127
SPDX-License-Identifier: BSD-3-Clause
3228
For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
3329
*/
3430

3531
/**
36-
* @author {@link [Rodrigo Birriel](https://www.linkedin.com/in/rbirriel)}
3732
* @author {@link [David Schach](https://github.com/dschach)}
3833
* @group Visualforce
3934
* @since 2022
@@ -619,9 +614,9 @@
619614
(label = true)
620615
private void method3() {
621616
Contact[] acctContacts = [SELECT Id FROM Contact WHERE AccountId IN :newRecordsMap.keyset() WITH SECURITY_ENFORCED];
622-
List&lt;Contact&gt; acctContacts2 = [SELECT Id FROM Contact WHERE CreatedDate = :LAST_N_DAYS:90 WITH SECURITY_ENFORCED];
617+
List&lt;Contact&gt; acctContacts2 = [SELECT Id FROM Contact WHERE ID = '012000000' AND CreatedDate = :LAST_N_DAYS:90 WITH SECURITY_ENFORCED];
623618
if (Contact.getSObjectType().getDescribe().isUpdateable()) {
624-
Database.update(acctContacts); //NOPMD
619+
update as user acctContacts; //NOPMD
625620
}
626621
// do things here
627622
}
@@ -644,7 +639,6 @@
644639
@IsTest(Seealldata=true)
645640
public with sharing class L2Char implements Database.batchable {
646641
public static final String ERROR = 0x0001;
647-
public static final Short ERROR;
648642

649643
@InvocableMethod(label='my invocable')
650644
public void moveTo(
@@ -653,7 +647,6 @@
653647
integer z
654648
) {
655649

656-
657650
Account a = new Account();
658651
a.Custom__c = 'stringvalue';
659652
insert a;
@@ -663,6 +656,11 @@
663656
Database.insert(myAccounts);
664657
}
665658
}
659+
660+
@InvocableMethod
661+
(label='my invocable')
662+
public void doThis(){
663+
}
666664
}
667665

668666
@TestSetup
@@ -677,7 +675,7 @@
677675

678676
@isTest
679677
private testMethod void testme(){
680-
System.assert(true);
678+
Assert.isTrue(true);
681679
}
682680

683681
@testVisible2

dist/apex.es.min.js

Lines changed: 59 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,69 @@
1-
/*! `apex` grammar compiled for Highlight.js 11.5.0 */
1+
/*! `apex` grammar compiled for Highlight.js 11.8.0 */
22
var hljsGrammar=(()=>{"use strict";return e=>{
3-
const s=e.regex,t="[a-zA-Z][a-zA-Z_0-9]*",a={scope:"number",variants:[{
4-
match:/\b[0-9]+(?:\.[0-9]+)?/},{match:/\s(?:[0-9,]+)?\.[0-9]+/}],relevance:0
5-
},c={
6-
match:s.either(/-/,/~/,/\*/,/\*=/,/\/=/,/%/,/\+/,/<</,/>>/,/>=/,/<=/,/\s<\s/,/\s>\s/,/\^/,/\^=/,/!=/,/!/,/==/,/&&/,/&/,/\|\|/,/\|/,/(?<=\s)\?|:(?=\s)/,/=/,/=>/,/\?\./),
7-
scope:"operator",relevance:0},n={
8-
match:[/\b/,s.either("ApexPages|10","AppLauncher","Approval","Auth","Cache","Canvas","ChatterAnswers|10","CommercePayments|10","ConnectApi|10","Database","Datacloud|10","DataSource|10","Dom","EventBus|10","Flow","Functions","KbManagement|10","Label","LxScheduler|10","Messaging","Metadata","Pref_center|10","Process","QuickAction","Reports","Schema","Search","Sfc|10","Sfdc_Checkout|10","sfdc_surveys|10","Site","Support","System","TerritoryMgmt|10","Test","Trigger|10","TxnSecurity|10","Type","UserProvisioning|10","VisualEditor|10","Wave|10"),/(?=\.)/],
3+
const t=e.regex,a="[a-zA-Z][a-zA-Z_0-9]*",s={scope:"number",variants:[{
4+
match:/\b[0-9]+(?:\.[0-9]+)?/},{match:/\s(?:[0-9,]+)?\.[0-9]+/},{
5+
match:/\b0(x|X)[0-9a-fA-F_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\b/},{
6+
match:/\b0(b|B)[01_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\b/},{
7+
match:/\b([0-9_]+)?\.[0-9_]+((e|E)[0-9]+)?(F|f|D|d|M|m)?\b/},{
8+
match:/\b[0-9_]+(e|E)[0-9_]+(F|f|D|d|M|m)?\b/},{match:/\b[0-9_]+(F|f|D|d|M|m)\b/
9+
},{match:/\b[0-9_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\b/}],relevance:0},c={
10+
$pattern:"[A-Za-z][0-9A-Za-z$_]*",
11+
keyword:["trigger|10","class","interface","abstract","AccessLevel","USER_MODE","SYSTEM_MODE","AccessType","break","cast","catch","continue","default","do","else","exports","extends|6","finally","for","get","put","set","global","if","implements","new","newMap|10","old|10","oldMap|10","operationType","override","private","protected","public","return","size","static","throws","throw","testmethod|10","try","virtual","webservice","when","while"],
12+
"variable.language":["final","instanceof","super","this","transient"],
13+
built_in:["finish","start","execute"].concat(["insert","update","upsert|8","delete","undelete","merge","convertLead|10"]),
14+
type:["anytype","blob|0","boolean|0","byte|0","currency|0","date|0","datetime|0","decimal|0","double|0","enum|0","float|0","integer|0","long|0","object","pagereference|10","selectoption|10","short|0","sobject|10","string|0","time|0","void|0","float|0"],
15+
literal:["false","true","null"]},n={
16+
match:t.either(/-/,/--/,/~/,/\*/,/\*=/,/\/=/,/%/,/\+/,/\+\+/,/<</,/>>/,/>=/,/<=/,/\s<\s/,/\s>\s/,/\^/,/\^=/,/!=/,/!/,/==/,/&&/,/&/,/\|\|/,/\|/,/(?<=\s)\?|:(?=\s)/,/=/,/=>/,/\?\./),
17+
scope:"operator",relevance:0},r={
18+
match:[/\b/,t.either("ApexPages|10","AppLauncher","Approval","Assert","Auth","Cache","Canvas","ChatterAnswers|10","CommercePayments|10","ConnectApi|10","Database","Datacloud|10","Dataweave|10","DataSource|10","Dom","EventBus|10","ExternalService","Flow","Functions","Invocable","KbManagement|10","Label","LxScheduler|10","Messaging","Metadata","Pref_center|10","Process","QuickAction","Reports","RichMessageing","Savepoint","SchedulableContext","Schema","Search","Sfc|10","Sfdc_Checkout|10","sfdc_surveys|10","Site","Support","System","TerritoryMgmt|10","Test","Trigger|10","TxnSecurity|10","Type","UserProvisioning|10","VisualEditor|10","Wave|10"),/(?=\.)/],
919
scope:{2:"built_in"},relevance:10
10-
},r=e.COMMENT("//",/[$\n]/),o=e.COMMENT("/\\*","\\*/",{relevance:0,contains:[{
20+
},o=e.COMMENT("//",/[$\n]/),i=e.COMMENT("/\\*","\\*/",{relevance:0,contains:[{
1121
begin:/\w+@/,relevance:0},{scope:"doctag",begin:"@[A-Za-z_]+"},{begin:"`",
1222
end:"`",excludeBegin:!0,excludeEnd:!0,scope:"code",
1323
contains:[e.BACKSLASH_ESCAPE],relevance:0},e.APOS_STRING_MODE,{
14-
match:[/(?<=@param)/,/\s+/,/\w+/],scope:{3:"variable"}}]}),i={relevance:10,
15-
scope:{1:"meta"},match:["@"+t,/(?=(\(|\b|\s))/]},l=[{
24+
match:[/(?<=@param)/,/\s+/,/\w+/],scope:{3:"variable"}}]})
25+
;t.either("label","description","callout","required","category","configurationEditor","iconName","SeeAllData")
26+
;const l={relevance:10,scope:{1:"meta"},match:["@"+a]},b=[{
1627
match:/\b[a-zA-Z\d]*Exception\b/,scope:"title.class",relevance:0},{
17-
match:[/\wthrow\s+new\s+/,t],scope:{1:"keyword",2:"title.class"},relevance:0
18-
}],b=[{match:[s.concat(/\b/,t,/\b/),/>/],scope:{1:"type"},relevance:10}],p=[{
28+
match:[/\wthrow\s+new\s+/,a],scope:{1:"keyword",2:"title.class"},relevance:0
29+
}],p=[{match:[t.concat(/\b/,a,/\b/),/>/],scope:{1:"type"},relevance:10}],u=[{
1930
match:[/\b(list|set|map)\s*/,"<",/[\.\w]+/],scope:{1:"type",3:"type"},
20-
relevance:10},{match:[t,s.lookahead(/\s*\[\]/)],scope:{1:"type"}}],E={
21-
match:[/[^\.]/,/\b[a-zA-Z][a-zA-Z\d_]*__[cxeb]\b/,/[\(\s;,]+/],scope:{2:"type"},
22-
relevance:10},A={variants:[{begin:[/\./,s.concat("(?:"+t+")"),/(?=\s*\(\))/],
23-
scope:{2:"title.function.invoke"}},{
24-
begin:[/\./,s.concat("(?:"+t+")"),/(?=\s*\([^\)])/],scope:{
31+
relevance:10},{match:[a,t.lookahead(/\s*\[\]/)],scope:{1:"type"}}],E={
32+
variants:[{match:[/\./,t.concat("(?:"+a+")"),/(?=\s*\(\))/],scope:{
2533
2:"title.function.invoke"}},{
26-
begin:[/(?<=\s)/,s.concat("(?:"+t+")"),/(?=\s*\()/],scope:{2:"title.function"}
27-
}],contains:[r,o,e.APOS_STRING_MODE],relevance:0},m={
28-
begin:/\[[\s\n]*(?=SELECT)/,end:/\]/,scope:"subst",relevance:10,contains:[{
29-
begin:s.concat(/\b/,s.either("ABOVE_OR_BELOW","ABOVE","ACTIVE","ADVANCED","ALL",/ALL\s+FIELDS/,"AND","ANY","ARRAY","AS","ASC","BY","CATEGORY","CONTAINS","COUNT","COUNT_DISTINCT","SUM","MAX","MIN","HOUR_IN_DAY","CONVERTCURRENCY","CUBE","DATA","DESC","DIVISION","END","EXCLUDES","FIELDS","FIND","FIRST","FOR","FROM",/GROUP\s+BY/,"HAVING","INCLUDES","LAST","LAST_90_DAYS","LAST_MONTH","LAST_N_DAYS","LAST_WEEK","LAST","LIKE","LIMIT","NETWORK","NEXT_90_DAYS","NEXT_MONTH","NEXT_N_DAYS","NEXT_WEEK","NULLS","OFFSET","ON","OR",/ORDER\s+BY/,"REFERENCE","RETURNING","ROLLUP","ROWS","SEARCH","SECURITY_ENFORCED","SELECT","SNIPPET","SORT","THIS_MONTH","THIS_WEEK","TODAY","TOLABEL","TOMORROW","TRACKING","TYPEOF","UPDATE",/USING\s+SCOPE/,"VIEW","VIEWSTAT","VIEWSTATE","WHERE","WITH","YESTERDAY","USER_MODE"),/\b/),
30-
scope:"keyword"},{match:/(\bIN\b|<|<=|>|>=|\bNOT\s+IN\b|=|!\s*=|:{1})/,
31-
scope:"literal",relevance:0},{match:/(?<=\bFROM\b\s+)\w+/,scope:"type",
32-
relevance:0},{match:/\b[a-zA-Z][a-zA-Z_0-9]*\b/,scope:"property"},a,A],
33-
illegal:"::"};return{name:"Apex",aliases:["apex","lightning"],
34-
case_insensitive:!0,disableAutodetect:!1,ignoreIllegals:!1,keywords:{
35-
$pattern:"[A-Za-z][0-9A-Za-z$_]*",
36-
keyword:["trigger|10","class","interface","abstract","AccessLevel","USER_MODE","break","catch","continue","default","do","else","execute","exports","extends|6","finally","finish","for","get","put","set","global","if","implements","new","newMap|10","old|10","oldMap|10","override","private","protected","public","return","start","static","throws","throw","testmethod|10","try","virtual","webservice","when","while"],
37-
"variable.language":["final","instanceof","super","this","transient"],
38-
built_in:["insert","update","upsert|8","delete","undelete","merge","schedulable|10","batchable|10","queueable|10","comparable|10","callable|10"],
39-
type:["anytype","blob|0","boolean|0","byte|0","currency|0","date|0","datetime|0","decimal|0","double|0","enum|0","float|0","integer|0","long|0","object","pagereference|10","selectoption|10","short|0","sobject|10","string|0","time|0","void|0","float|0"],
40-
literal:["false","true","null"]},
41-
illegal:["</","<#","<]","<div>","\x3c!--","!DOCTYPE",/<iframe\b/,/^#/,/^import \.[a-zA-Z]+\./,/^import [\w]+/,/^import$/,/^include </,/^use\s+</,/\b(const|var)\s+\w+\s*=/,/\bstruct\b/,"System.log","console.log",/\bfor\s+\w+\s+IN\s+/,/\bif\s+\w+\s+IN\s+/,/\bend\s+if\b/,/\bend\s+select\b/,/\b(int|var)\s+\w+\s+=/,/\b(int[0-9]+|bool)\b/,/\b\$/,"::=",/\s#[a-zA-Z]/,/\s_[a-zA-Z]/,/\s\$[a-zA-Z]/,"#if","%if",/\bif(?!\s+\()/,"%endif","#endif",/\w::\w/,/RETURNING\s+\*/,/\bint\b/,/import\s+\w+\s+=\s+require\("\w+"\)/,"/^include\b/",/\buse\s+strict\b/,/\w+\s+=\s+"\S*";/,/\/include\//,/\Anamespace\b/,/\bend\.\n/,/\bend\n/,'"""',/@\w+\[\w+\]/],
42-
contains:[i,[{match:[/\b(?<=enum|\bnew)/,/\s+/,t,/\s*(?=[{()])/],scope:{3:"type"
43-
},contains:[r,o,E]},{match:[/(?<=\bclass\b)/,/\s+/,t],scope:{3:"title.class"}},{
44-
match:[/(?<=public)/,/\s+/,t,/(?=\s*\()/],scope:{3:"constructor"}},{
45-
begin:[/(?<=\btrigger\b)/,/\s+/,t,/\s+/,"on",/\s+/,t],end:"{",scope:{
46-
3:"title.class",7:"type"},contains:[r,o,{
34+
match:[/\./,t.concat("(?:"+a+")"),/(?=\s*\([^\)])/],scope:{
35+
2:"title.function.invoke"}},{
36+
match:[/(?<=\s)/,t.concat("(?:"+a+")"),/(?=\s*\()/],scope:{2:"title.function"}
37+
}],contains:[o,i,e.APOS_STRING_MODE],relevance:0},m={
38+
begin:/\[[\s\n]*(?=(SELECT|FIND))/,end:/\]/,scope:"subst",relevance:10,
39+
contains:[{
40+
begin:t.concat(/\b/,t.either("ABOVE_OR_BELOW","ABOVE","ACTIVE","ADVANCED","ALL",/ALL\s+FIELDS/,"AND","ANY","ARRAY","AS","ASC","BY","CATEGORY","CONTAINS","COUNT","COUNT_DISTINCT","SUM","MAX","MIN","HOUR_IN_DAY","CONVERTCURRENCY","CUBE","DATA","DESC","DIVISION","END","EXCLUDES","FIELDS","FIND|10","FIRST","FOR","FROM",/GROUP\s+BY/,"HAVING","INCLUDES","LAST","LAST_90_DAYS","LAST_MONTH","LAST_N_DAYS","LAST_WEEK","LAST","LIKE","LIMIT","NETWORK","NEXT_90_DAYS","NEXT_MONTH","NEXT_N_DAYS","NEXT_WEEK","NULLS","OFFSET","ON","OR",/ORDER\s+BY/,"REFERENCE","RETURNING","ROLLUP","ROWS","SEARCH","SECURITY_ENFORCED","SELECT","SNIPPET","SORT","THIS_MONTH","THIS_WEEK","TODAY","TOLABEL","TOMORROW","TRACKING","TYPEOF","UPDATE",/USING\s+SCOPE/,"VIEW","VIEWSTAT","VIEWSTATE","WHERE","WITH","YESTERDAY","USER_MODE"),/\b/),
41+
scope:"keyword"},{match:/(\bIN\b|<|<=|>|>=|\bNOT\s+IN\b|=|!\s*=|\s:{1}|:{1}\s)/,
42+
scope:"literal"},{match:/(?<=\bFROM\b\s+)\w+/,scope:"type",relevance:0},{
43+
match:[t.concat(/\b/,"[a-zA-Z][a-zA-Z_]*"),":",/[0-9]+\b/],scope:{1:"keyword",
44+
3:"number"},relevance:10},s,E,e.APOS_STRING_MODE],illegal:"::"};return{
45+
name:"Apex",aliases:["apex","lightning"],case_insensitive:!0,
46+
disableAutodetect:!1,ignoreIllegals:!1,keywords:c,
47+
illegal:["</","<#","<]","<div>","\x3c!--","!DOCTYPE",/<iframe\b/,/^#/,/^import \.[a-zA-Z]+\./,/^import [\w]+/,/^import$/,/^include </,/^use\s+</,/\b(const|var)\s+\w+\s*=/,/\bstruct\b/,"System.log","console.log",/\bfor\s+\w+\s+IN\s+/,/\bif\s+\w+\s+IN\s+/,/\bend\s+if\b/,/\bend\s+select\b/,/\b(int|var)\s+\w+\s+=/,/\b(int[0-9]+|bool)\b/,/\b\$/,"::=",/\s#[a-zA-Z]/,/\s_[a-zA-Z]/,/\s\$[a-zA-Z]/,"#if","%if",/\bif(?!\s+\()/,"%endif","#endif",/\w::\w/,/RETURNING\s+\*/,/\bint\b/,/import\s+\w+\s+=\s+require\("\w+"\)/,"/^include\b/",/\buse\s+strict\b/,/\w+\s+=\s+"\S*";/,/\/include\//,/\Anamespace\b/,/\bend\.\n/,/\bend\n/,'"""'],
48+
contains:[l,[{match:[/\b(?<=enum|\bnew)/,/\s+/,a,/\s*(?=[{()])/],scope:{3:"type"
49+
},contains:[o,i]},{match:[/(?<=\bclass\b)/,/\s+/,a],scope:{3:"title.class"}},{
50+
match:[/(?<=(public|private))/,/\s+/,a,/(?=\s*\(.*\)\s*{)/],scope:{
51+
3:"constructor"}},{begin:[/(?<=\btrigger\b)/,/\s+/,a,/\s+/,"on",/\s+/,a],
52+
end:"{",scope:{3:"title.class",7:"type"},contains:[o,i,{
4753
match:/(?:before|after)\s+(?:insert|update|delete|undelete)/,scope:"built_in",
48-
relevance:10}],relevance:10},{match:[/\bextends/,/\s+/,t],scope:{
49-
3:"title.class.inherited"},contains:[r,o,n],illegal:[/\b_/,/_\b/]}],[{
50-
match:[t,/\s+/,t,/\s+/,/=/],scope:{1:"type",3:"variable",5:"operator"},
51-
relevance:0},{match:[t,/\s+/,t,/\s+/,";"],scope:{1:"type",3:"variable"},
52-
relevance:0},{match:[/\s+/,t,/\s+/,/=/],scope:{2:"variable",4:"operator"},
53-
relevance:0},{match:[/(?<=\w+\s+=\s+\()/,t,/(?=\))/],scope:{2:"type"},
54-
relevance:0}],{relevance:10,match:[/\b(?:with|without|inherited)\s+sharing/],
55-
scope:{1:"keyword"}},p,b,o,r,{match:/\b(switch\s+on|as\s+user|as\s+system)\b/,
56-
relevance:8,scope:"keyword"},E,l,{variants:[{
57-
match:[/\bfor\b/,/\s*\(/,/\w+/,/\s+/,/\w+/,/\s+:/,/(?=\s*\[)/],scope:{
58-
1:"keyword",3:"type"}},{
59-
match:[/\bfor\b/,/\s*\(/,/\w+/,/\s+/,/\w+/,/\s+:/,/\s*/,/\w+/],scope:{
60-
1:"keyword",3:"type"}}],contains:[r,o,m]},e.APOS_STRING_MODE,A,{
54+
relevance:10}],relevance:10},{match:[/(?:extends)/,/\s+/,a],scope:{
55+
3:"title.class.inherited"},illegal:[/\b_/,/_\b/]}],[{
56+
match:[a,/\s+/,a,/\s+/,/=/],scope:{1:"type",3:"variable",5:"operator"},
57+
relevance:0},{match:[a,/\s+/,a,/\s+/,";"],scope:{1:"type",3:"variable"},
58+
relevance:0},{match:[/\s+/,a,/\s+/,/=/],scope:{2:"variable",4:"operator"},
59+
relevance:0},{match:[/(?<=\w+\s+=\s+\()/,a,/(?=\))/],scope:{2:"type"},
60+
relevance:0}],{relevance:10,match:[/\b(with|without|inherited)\s+sharing\b/],
61+
scope:{1:"keyword"}},u,p,i,o,{match:/\b(switch\s+on|as\s+user|as\s+system)\b/,
62+
relevance:8,scope:"keyword"},b,{variants:[{
63+
match:[/\bfor\b/,/\s*\(/,a,/\s+/,a,/\s+:/,/(?=\s*\[)/],scope:{1:"keyword",
64+
3:"type"}},{match:[/\bfor\b/,/\s*\(/,a,/\s+/,a,/\s+:/,/\s*/,a],scope:{
65+
1:"keyword",3:"type",8:"variable"}}],contains:[o,i,m]},e.APOS_STRING_MODE,E,{
6166
begin:["{",/\$[a-zA-Z]+]/,".",/\w+/],end:"}",scope:{2:"built_in",4:"property"}
62-
},n,a,c,{match:/(?<!\.)\bId\b/,scope:"type",relevance:8},m]}}})()
63-
;export default hljsGrammar;
67+
},r,s,n,{match:/(?<!\.)\bId\b/,scope:"type",relevance:8},m,{
68+
beginKeywords:"schedulable batchable queueable comparable callable",relevance:10
69+
}]}}})();export default hljsGrammar;

0 commit comments

Comments
 (0)