Skip to content

Commit be85e40

Browse files
committed
S, T, U
1 parent dfa098f commit be85e40

File tree

17 files changed

+829
-355
lines changed

17 files changed

+829
-355
lines changed

.eslintrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ module.exports = {
6969
// "object-curly-spacing": 1,
7070
// "key-spacing": "off",
7171
// "array-bracket-spacing": [1],
72-
"array-bracket-newline": [0, {
72+
"array-bracket-newline": [1, {
7373
multiline: true,
7474
minItems: 2
7575
}],

src/languages/sas.js

Lines changed: 123 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -5,128 +5,131 @@ Description: Syntax Highlighting for SAS
55
*/
66

77
export default function(hljs) {
8+
// Data step and PROC SQL statements
9+
const SAS_KEYWORDS =
10+
'do if then else end until while ' +
11+
'' +
12+
'abort array attrib by call cards cards4 catname continue ' +
13+
'datalines datalines4 delete delim delimiter display dm drop ' +
14+
'endsas error file filename footnote format goto in infile ' +
15+
'informat input keep label leave length libname link list ' +
16+
'lostcard merge missing modify options output out page put ' +
17+
'redirect remove rename replace retain return select set skip ' +
18+
'startsas stop title update waitsas where window x systask ' +
19+
'' +
20+
'add and alter as cascade check create delete describe ' +
21+
'distinct drop foreign from group having index insert into in ' +
22+
'key like message modify msgtype not null on or order primary ' +
23+
'references reset restrict select set table unique update ' +
24+
'validate view where';
825

9-
// Data step and PROC SQL statements
10-
var SAS_KEYWORDS = ''+
11-
'do if then else end until while '+
12-
''+
13-
'abort array attrib by call cards cards4 catname continue '+
14-
'datalines datalines4 delete delim delimiter display dm drop '+
15-
'endsas error file filename footnote format goto in infile '+
16-
'informat input keep label leave length libname link list '+
17-
'lostcard merge missing modify options output out page put '+
18-
'redirect remove rename replace retain return select set skip '+
19-
'startsas stop title update waitsas where window x systask '+
20-
''+
21-
'add and alter as cascade check create delete describe '+
22-
'distinct drop foreign from group having index insert into in '+
23-
'key like message modify msgtype not null on or order primary '+
24-
'references reset restrict select set table unique update '+
25-
'validate view where';
26+
// Built-in SAS functions
27+
const SAS_FUN =
28+
'abs|addr|airy|arcos|arsin|atan|attrc|attrn|band|' +
29+
'betainv|blshift|bnot|bor|brshift|bxor|byte|cdf|ceil|' +
30+
'cexist|cinv|close|cnonct|collate|compbl|compound|' +
31+
'compress|cos|cosh|css|curobs|cv|daccdb|daccdbsl|' +
32+
'daccsl|daccsyd|dacctab|dairy|date|datejul|datepart|' +
33+
'datetime|day|dclose|depdb|depdbsl|depdbsl|depsl|' +
34+
'depsl|depsyd|depsyd|deptab|deptab|dequote|dhms|dif|' +
35+
'digamma|dim|dinfo|dnum|dopen|doptname|doptnum|dread|' +
36+
'dropnote|dsname|erf|erfc|exist|exp|fappend|fclose|' +
37+
'fcol|fdelete|fetch|fetchobs|fexist|fget|fileexist|' +
38+
'filename|fileref|finfo|finv|fipname|fipnamel|' +
39+
'fipstate|floor|fnonct|fnote|fopen|foptname|foptnum|' +
40+
'fpoint|fpos|fput|fread|frewind|frlen|fsep|fuzz|' +
41+
'fwrite|gaminv|gamma|getoption|getvarc|getvarn|hbound|' +
42+
'hms|hosthelp|hour|ibessel|index|indexc|indexw|input|' +
43+
'inputc|inputn|int|intck|intnx|intrr|irr|jbessel|' +
44+
'juldate|kurtosis|lag|lbound|left|length|lgamma|' +
45+
'libname|libref|log|log10|log2|logpdf|logpmf|logsdf|' +
46+
'lowcase|max|mdy|mean|min|minute|mod|month|mopen|' +
47+
'mort|n|netpv|nmiss|normal|note|npv|open|ordinal|' +
48+
'pathname|pdf|peek|peekc|pmf|point|poisson|poke|' +
49+
'probbeta|probbnml|probchi|probf|probgam|probhypr|' +
50+
'probit|probnegb|probnorm|probt|put|putc|putn|qtr|' +
51+
'quote|ranbin|rancau|ranexp|rangam|range|rank|rannor|' +
52+
'ranpoi|rantbl|rantri|ranuni|repeat|resolve|reverse|' +
53+
'rewind|right|round|saving|scan|sdf|second|sign|' +
54+
'sin|sinh|skewness|soundex|spedis|sqrt|std|stderr|' +
55+
'stfips|stname|stnamel|substr|sum|symget|sysget|' +
56+
'sysmsg|sysprod|sysrc|system|tan|tanh|time|timepart|' +
57+
'tinv|tnonct|today|translate|tranwrd|trigamma|' +
58+
'trim|trimn|trunc|uniform|upcase|uss|var|varfmt|' +
59+
'varinfmt|varlabel|varlen|varname|varnum|varray|' +
60+
'varrayx|vartype|verify|vformat|vformatd|vformatdx|' +
61+
'vformatn|vformatnx|vformatw|vformatwx|vformatx|' +
62+
'vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|' +
63+
'vinformatn|vinformatnx|vinformatw|vinformatwx|' +
64+
'vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|' +
65+
'vnamex|vtype|vtypex|weekday|year|yyq|zipfips|zipname|' +
66+
'zipnamel|zipstate';
2667

27-
// Built-in SAS functions
28-
var SAS_FUN = ''+
29-
'abs|addr|airy|arcos|arsin|atan|attrc|attrn|band|'+
30-
'betainv|blshift|bnot|bor|brshift|bxor|byte|cdf|ceil|'+
31-
'cexist|cinv|close|cnonct|collate|compbl|compound|'+
32-
'compress|cos|cosh|css|curobs|cv|daccdb|daccdbsl|'+
33-
'daccsl|daccsyd|dacctab|dairy|date|datejul|datepart|'+
34-
'datetime|day|dclose|depdb|depdbsl|depdbsl|depsl|'+
35-
'depsl|depsyd|depsyd|deptab|deptab|dequote|dhms|dif|'+
36-
'digamma|dim|dinfo|dnum|dopen|doptname|doptnum|dread|'+
37-
'dropnote|dsname|erf|erfc|exist|exp|fappend|fclose|'+
38-
'fcol|fdelete|fetch|fetchobs|fexist|fget|fileexist|'+
39-
'filename|fileref|finfo|finv|fipname|fipnamel|'+
40-
'fipstate|floor|fnonct|fnote|fopen|foptname|foptnum|'+
41-
'fpoint|fpos|fput|fread|frewind|frlen|fsep|fuzz|'+
42-
'fwrite|gaminv|gamma|getoption|getvarc|getvarn|hbound|'+
43-
'hms|hosthelp|hour|ibessel|index|indexc|indexw|input|'+
44-
'inputc|inputn|int|intck|intnx|intrr|irr|jbessel|'+
45-
'juldate|kurtosis|lag|lbound|left|length|lgamma|'+
46-
'libname|libref|log|log10|log2|logpdf|logpmf|logsdf|'+
47-
'lowcase|max|mdy|mean|min|minute|mod|month|mopen|'+
48-
'mort|n|netpv|nmiss|normal|note|npv|open|ordinal|'+
49-
'pathname|pdf|peek|peekc|pmf|point|poisson|poke|'+
50-
'probbeta|probbnml|probchi|probf|probgam|probhypr|'+
51-
'probit|probnegb|probnorm|probt|put|putc|putn|qtr|'+
52-
'quote|ranbin|rancau|ranexp|rangam|range|rank|rannor|'+
53-
'ranpoi|rantbl|rantri|ranuni|repeat|resolve|reverse|'+
54-
'rewind|right|round|saving|scan|sdf|second|sign|'+
55-
'sin|sinh|skewness|soundex|spedis|sqrt|std|stderr|'+
56-
'stfips|stname|stnamel|substr|sum|symget|sysget|'+
57-
'sysmsg|sysprod|sysrc|system|tan|tanh|time|timepart|'+
58-
'tinv|tnonct|today|translate|tranwrd|trigamma|'+
59-
'trim|trimn|trunc|uniform|upcase|uss|var|varfmt|'+
60-
'varinfmt|varlabel|varlen|varname|varnum|varray|'+
61-
'varrayx|vartype|verify|vformat|vformatd|vformatdx|'+
62-
'vformatn|vformatnx|vformatw|vformatwx|vformatx|'+
63-
'vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|'+
64-
'vinformatn|vinformatnx|vinformatw|vinformatwx|'+
65-
'vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|'+
66-
'vnamex|vtype|vtypex|weekday|year|yyq|zipfips|zipname|'+
67-
'zipnamel|zipstate';
68+
// Built-in macro functions
69+
const SAS_MACRO_FUN =
70+
'bquote|nrbquote|cmpres|qcmpres|compstor|' +
71+
'datatyp|display|do|else|end|eval|global|goto|' +
72+
'if|index|input|keydef|label|left|length|let|' +
73+
'local|lowcase|macro|mend|nrbquote|nrquote|' +
74+
'nrstr|put|qcmpres|qleft|qlowcase|qscan|' +
75+
'qsubstr|qsysfunc|qtrim|quote|qupcase|scan|str|' +
76+
'substr|superq|syscall|sysevalf|sysexec|sysfunc|' +
77+
'sysget|syslput|sysprod|sysrc|sysrput|then|to|' +
78+
'trim|unquote|until|upcase|verify|while|window';
6879

69-
// Built-in macro functions
70-
var SAS_MACRO_FUN = 'bquote|nrbquote|cmpres|qcmpres|compstor|'+
71-
'datatyp|display|do|else|end|eval|global|goto|'+
72-
'if|index|input|keydef|label|left|length|let|'+
73-
'local|lowcase|macro|mend|nrbquote|nrquote|'+
74-
'nrstr|put|qcmpres|qleft|qlowcase|qscan|'+
75-
'qsubstr|qsysfunc|qtrim|quote|qupcase|scan|str|'+
76-
'substr|superq|syscall|sysevalf|sysexec|sysfunc|'+
77-
'sysget|syslput|sysprod|sysrc|sysrput|then|to|'+
78-
'trim|unquote|until|upcase|verify|while|window';
79-
80-
return {
81-
name: 'SAS',
82-
aliases: ['sas', 'SAS'],
83-
case_insensitive: true, // SAS is case-insensitive
84-
keywords: {
85-
literal:
86-
'null missing _all_ _automatic_ _character_ _infile_ '+
87-
'_n_ _name_ _null_ _numeric_ _user_ _webout_',
88-
meta:
89-
SAS_KEYWORDS
90-
},
91-
contains: [
92-
{
93-
// Distinct highlight for proc <proc>, data, run, quit
94-
className: 'keyword',
95-
begin: /^\s*(proc [\w\d_]+|data|run|quit)[\s;]/
96-
},
97-
{
98-
// Macro variables
99-
className: 'variable',
100-
begin: /&[a-zA-Z_&][a-zA-Z0-9_]*\.?/
101-
},
102-
{
103-
// Special emphasis for datalines|cards
104-
className: 'emphasis',
105-
begin: /^\s*datalines|cards.*;/,
106-
end: /^\s*;\s*$/
107-
},
108-
{ // Built-in macro variables take precedence
109-
className: 'built_in',
110-
begin: '%(' + SAS_MACRO_FUN + ')'
111-
},
112-
{
113-
// User-defined macro functions highlighted after
114-
className: 'name',
115-
begin: /%[a-zA-Z_][a-zA-Z_0-9]*/
116-
},
117-
{
118-
className: 'meta',
119-
begin: '[^%](' + SAS_FUN + ')[\(]'
120-
},
121-
{
122-
className: 'string',
123-
variants: [
124-
hljs.APOS_STRING_MODE,
125-
hljs.QUOTE_STRING_MODE
126-
]
127-
},
128-
hljs.COMMENT('\\*', ';'),
129-
hljs.C_BLOCK_COMMENT_MODE
80+
return {
81+
name: 'SAS',
82+
aliases: [
83+
'sas',
84+
'SAS'
85+
],
86+
case_insensitive: true, // SAS is case-insensitive
87+
keywords: {
88+
literal:
89+
'null missing _all_ _automatic_ _character_ _infile_ ' +
90+
'_n_ _name_ _null_ _numeric_ _user_ _webout_',
91+
meta:
92+
SAS_KEYWORDS
93+
},
94+
contains: [
95+
{
96+
// Distinct highlight for proc <proc>, data, run, quit
97+
className: 'keyword',
98+
begin: /^\s*(proc [\w\d_]+|data|run|quit)[\s;]/
99+
},
100+
{
101+
// Macro variables
102+
className: 'variable',
103+
begin: /&[a-zA-Z_&][a-zA-Z0-9_]*\.?/
104+
},
105+
{
106+
// Special emphasis for datalines|cards
107+
className: 'emphasis',
108+
begin: /^\s*datalines|cards.*;/,
109+
end: /^\s*;\s*$/
110+
},
111+
{ // Built-in macro variables take precedence
112+
className: 'built_in',
113+
begin: '%(' + SAS_MACRO_FUN + ')'
114+
},
115+
{
116+
// User-defined macro functions highlighted after
117+
className: 'name',
118+
begin: /%[a-zA-Z_][a-zA-Z_0-9]*/
119+
},
120+
{
121+
className: 'meta',
122+
begin: '[^%](' + SAS_FUN + ')[\(]'
123+
},
124+
{
125+
className: 'string',
126+
variants: [
127+
hljs.APOS_STRING_MODE,
128+
hljs.QUOTE_STRING_MODE
130129
]
131-
};
130+
},
131+
hljs.COMMENT('\\*', ';'),
132+
hljs.C_BLOCK_COMMENT_MODE
133+
]
134+
};
132135
}

src/languages/scala.js

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,63 +7,75 @@ Website: https://www.scala-lang.org
77
*/
88

99
export default function(hljs) {
10-
11-
var ANNOTATION = { className: 'meta', begin: '@[A-Za-z]+' };
10+
const ANNOTATION = {
11+
className: 'meta',
12+
begin: '@[A-Za-z]+'
13+
};
1214

1315
// used in strings for escaping/interpolation/substitution
14-
var SUBST = {
16+
const SUBST = {
1517
className: 'subst',
1618
variants: [
17-
{begin: '\\$[A-Za-z0-9_]+'},
18-
{begin: /\$\{/, end: /\}/}
19+
{
20+
begin: '\\$[A-Za-z0-9_]+'
21+
},
22+
{
23+
begin: /\$\{/,
24+
end: /\}/
25+
}
1926
]
2027
};
2128

22-
var STRING = {
29+
const STRING = {
2330
className: 'string',
2431
variants: [
2532
{
26-
begin: '"', end: '"',
33+
begin: '"',
34+
end: '"',
2735
illegal: '\\n',
28-
contains: [hljs.BACKSLASH_ESCAPE]
36+
contains: [ hljs.BACKSLASH_ESCAPE ]
2937
},
3038
{
31-
begin: '"""', end: '"""',
39+
begin: '"""',
40+
end: '"""',
3241
relevance: 10
3342
},
3443
{
35-
begin: '[a-z]+"', end: '"',
44+
begin: '[a-z]+"',
45+
end: '"',
3646
illegal: '\\n',
37-
contains: [hljs.BACKSLASH_ESCAPE, SUBST]
47+
contains: [ hljs.BACKSLASH_ESCAPE,
48+
SUBST ]
3849
},
3950
{
4051
className: 'string',
41-
begin: '[a-z]+"""', end: '"""',
42-
contains: [SUBST],
52+
begin: '[a-z]+"""',
53+
end: '"""',
54+
contains: [ SUBST ],
4355
relevance: 10
4456
}
4557
]
4658

4759
};
4860

49-
var SYMBOL = {
61+
const SYMBOL = {
5062
className: 'symbol',
5163
begin: '\'\\w[\\w\\d_]*(?!\')'
5264
};
5365

54-
var TYPE = {
66+
const TYPE = {
5567
className: 'type',
5668
begin: '\\b[A-Z][A-Za-z0-9_]*',
5769
relevance: 0
5870
};
5971

60-
var NAME = {
72+
const NAME = {
6173
className: 'title',
6274
begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,
6375
relevance: 0
6476
};
6577

66-
var CLASS = {
78+
const CLASS = {
6779
className: 'class',
6880
beginKeywords: 'class object trait type',
6981
end: /[:={\[\n;]/,
@@ -81,7 +93,7 @@ export default function(hljs) {
8193
excludeBegin: true,
8294
excludeEnd: true,
8395
relevance: 0,
84-
contains: [TYPE]
96+
contains: [ TYPE ]
8597
},
8698
{
8799
className: 'params',
@@ -90,18 +102,18 @@ export default function(hljs) {
90102
excludeBegin: true,
91103
excludeEnd: true,
92104
relevance: 0,
93-
contains: [TYPE]
105+
contains: [ TYPE ]
94106
},
95107
NAME
96108
]
97109
};
98110

99-
var METHOD = {
111+
const METHOD = {
100112
className: 'function',
101113
beginKeywords: 'def',
102114
end: /[:={\[(\n;]/,
103115
excludeEnd: true,
104-
contains: [NAME]
116+
contains: [ NAME ]
105117
};
106118

107119
return {

0 commit comments

Comments
 (0)