Skip to content

Commit 9ff4e43

Browse files
profeliseguskov
authored andcommitted
new syntax support
- bracket - capture keyword - new arrays syntax - def with override/public/private fixes
1 parent 2f2bfbe commit 9ff4e43

2 files changed

Lines changed: 186 additions & 8 deletions

File tree

syntaxes/dascript.tmLanguage.json

Lines changed: 124 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -434,19 +434,25 @@
434434
},
435435
"function": {
436436
"name": "meta.function.dascript",
437-
"begin": "(def)(\\s+(?:abstract|override)(?:private|public)(?:static))?\\s+(?=[\\w]+\\s*\\()|(\\$)\\s*(?=\\[(?:.*?)\\])|(\\$)\\s*(?=\\()",
437+
"begin": "(def)\\s+((?:private|public|abstract|override|static)\\s+)?((?:private|public|abstract|override)\\s+)?(?=[\\w]+\\s*\\()|(\\$)\\s*(?=\\[(?:.*?)\\])|(\\$)\\s*(?=\\()",
438438
"beginCaptures": {
439439
"1": {
440440
"name": "storage.type.function.dascript"
441441
},
442442
"2": {
443-
"name": "storage.type.function.dascript"
443+
"name": "keyword.control.dascript"
444444
},
445445
"3": {
446-
"name": "storage.type.function.dascript"
446+
"name": "keyword.control.dascript"
447447
},
448448
"4": {
449449
"name": "storage.type.function.dascript"
450+
},
451+
"5": {
452+
"name": "storage.type.function.dascript"
453+
},
454+
"6": {
455+
"name": "storage.type.function.dascript"
450456
}
451457
},
452458
"end": "(\\))",
@@ -510,11 +516,125 @@
510516
}
511517
]
512518
},
519+
"arrays": {
520+
"patterns": [
521+
{
522+
"name": "meta.array.dascript",
523+
"begin": "\\[",
524+
"beginCaptures": {
525+
"0": {
526+
"name": "punctuation.definition.array.begin.dascript"
527+
}
528+
},
529+
"end": "\\]",
530+
"endCaptures": {
531+
"0": {
532+
"name": "punctuation.definition.array.end.dascript"
533+
}
534+
},
535+
"patterns": [
536+
{
537+
"match": "\\\"",
538+
"name": "string.quoted.double.dascript",
539+
"begin": "\\\"",
540+
"beginCaptures": {
541+
"0": {
542+
"name": "punctuation.definition.string.begin.dascript"
543+
}
544+
},
545+
"end": "\\\"",
546+
"endCaptures": {
547+
"0": {
548+
"name": "punctuation.definition.string.end.dascript"
549+
}
550+
},
551+
"patterns": [
552+
{
553+
"include": "#escaped_char"
554+
}
555+
]
556+
},
557+
{
558+
"match": "\\w+",
559+
"name": "variable.parameter.array.dascript"
560+
},
561+
{
562+
"match": "\\d+",
563+
"name": "constant.numeric.dascript"
564+
},
565+
{
566+
"match": "\\+",
567+
"name": "keyword.operator.arithmetic.dascript"
568+
},
569+
{
570+
"match": "\\,",
571+
"name": "punctuation.separator.array.dascript"
572+
},
573+
{
574+
"match": "\\b(sin|cos|tan|log|exp|sqrt)\\b",
575+
"name": "support.function.math.dascript"
576+
},
577+
{
578+
"match": "\\[",
579+
"name": "punctuation.definition.array.begin.dascript",
580+
"push": [
581+
{
582+
"meta_scope": "meta.array.inner.dascript"
583+
},
584+
{
585+
"match": "\\]",
586+
"name": "punctuation.definition.array.end.dascript",
587+
"pop": true
588+
},
589+
{
590+
"include": "$self"
591+
}
592+
]
593+
},
594+
{
595+
"match": "\\(",
596+
"name": "punctuation.definition.arguments.begin.dascript"
597+
},
598+
{
599+
"match": "\\)",
600+
"name": "punctuation.definition.arguments.end.dascript"
601+
},
602+
{
603+
"include": "#strings"
604+
}
605+
]
606+
}
607+
]
608+
},
609+
"blocks": {
610+
"patterns": [
611+
{
612+
"name": "meta.block.dascript",
613+
"begin": "\\{",
614+
"beginCaptures": {
615+
"0": {
616+
"name": "punctuation.definition.block.begin.dascript"
617+
}
618+
},
619+
"end": "\\}",
620+
"endCaptures": {
621+
"0": {
622+
"name": "punctuation.definition.block.end.dascript"
623+
}
624+
},
625+
"patterns": [
626+
{
627+
"include": "$self"
628+
}
629+
]
630+
}
631+
]
632+
},
513633
"annotations": {
514634
"patterns": [
515635
{
516636
"name": "meta.declaration.annotation.dascript",
517-
"begin": "(((?<!\\[)\\[(?!\\[))\\s*([^\\s(\\]]+))\\s*(\\()?",
637+
"begin": "(((?<!\\[)\\[(?!\\[))\\s*([[:alpha:]_][[:alnum:]_]+))\\s*(\\()?",
518638
"beginCaptures": {
519639
"2": {
520640
"name": "punctuation.definition.annotation.dascript"

syntaxes/dascript.tmLanguage.yaml

Lines changed: 62 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,16 +234,20 @@ repository:
234234
- include: $self
235235
function:
236236
name: meta.function.dascript
237-
begin: (def)(\s+(?:abstract|override)(?:private|public)(?:static))?\s+(?=[\w]+\s*\()|(\$)\s*(?=\[(?:.*?)\])|(\$)\s*(?=\()
237+
begin: (def)\s+((?:private|public|abstract|override|static)\s+)?((?:private|public|abstract|override)\s+)?(?=[\w]+\s*\()|(\$)\s*(?=\[(?:.*?)\])|(\$)\s*(?=\()
238238
beginCaptures:
239239
1:
240240
name: storage.type.function.dascript
241241
2:
242-
name: storage.type.function.dascript
242+
name: keyword.control.dascript
243243
3:
244-
name: storage.type.function.dascript
244+
name: keyword.control.dascript
245245
4:
246246
name: storage.type.function.dascript
247+
5:
248+
name: storage.type.function.dascript
249+
6:
250+
name: storage.type.function.dascript
247251
end: (\))
248252
endCaptures:
249253
1:
@@ -272,11 +276,65 @@ repository:
272276
end: (?=\))
273277
patterns:
274278
- include: $self
279+
arrays:
280+
patterns:
281+
- name: meta.array.dascript
282+
begin: \[
283+
beginCaptures:
284+
0: {name: punctuation.definition.array.begin.dascript}
285+
end: \]
286+
endCaptures:
287+
0: {name: punctuation.definition.array.end.dascript}
288+
patterns:
289+
- match: \"
290+
name: string.quoted.double.dascript
291+
begin: \"
292+
beginCaptures:
293+
0: {name: punctuation.definition.string.begin.dascript}
294+
end: \"
295+
endCaptures:
296+
0: {name: punctuation.definition.string.end.dascript}
297+
patterns:
298+
- include: '#escaped_char'
299+
- match: \w+
300+
name: variable.parameter.array.dascript
301+
- match: \d+
302+
name: constant.numeric.dascript
303+
- match: \+
304+
name: keyword.operator.arithmetic.dascript
305+
- match: \,
306+
name: punctuation.separator.array.dascript
307+
- match: \b(sin|cos|tan|log|exp|sqrt)\b
308+
name: support.function.math.dascript
309+
- match: \[
310+
name: punctuation.definition.array.begin.dascript
311+
push:
312+
- meta_scope: meta.array.inner.dascript
313+
- match: \]
314+
name: punctuation.definition.array.end.dascript
315+
pop: true
316+
- include: $self
317+
- match: \(
318+
name: punctuation.definition.arguments.begin.dascript
319+
- match: \)
320+
name: punctuation.definition.arguments.end.dascript
321+
- include: '#strings'
322+
blocks:
323+
patterns:
324+
- name: meta.block.dascript
325+
begin: \{
326+
beginCaptures:
327+
0: {name: punctuation.definition.block.begin.dascript}
328+
end: \}
329+
endCaptures:
330+
0: {name: punctuation.definition.block.end.dascript}
331+
patterns:
332+
- include: $self
275333
annotations:
276334
patterns:
277335
- name: meta.declaration.annotation.dascript
278336
# Match '[' but not '[[' - (?: (?<!\[) \[ (?!\[) )
279-
begin: (((?<!\[)\[(?!\[))\s*([^\s(\]]+))\s*(\()?
337+
begin: (((?<!\[)\[(?!\[))\s*([[:alpha:]_][[:alnum:]_]+))\s*(\()?
280338
beginCaptures:
281339
2: {name: punctuation.definition.annotation.dascript}
282340
3: {name: storage.type.annotation.dascript}

0 commit comments

Comments
 (0)