Skip to content

Commit 3535583

Browse files
committed
Improved variable and constant declaration based on how local var is defined in java grammar
1 parent 891eb24 commit 3535583

File tree

1 file changed

+56
-20
lines changed

1 file changed

+56
-20
lines changed

syntaxes/kotlin.tmLanguage.json

Lines changed: 56 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -427,34 +427,70 @@
427427
}
428428
},
429429
"variable-declaration": {
430-
"match": "\\b(var)\\b\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?",
431-
"captures": {
432-
"1": {
433-
"name": "storage.type.variable.kotlin"
430+
"begin": "(?=\\b(var)\\b\\s+[A-Za-z_$][\\w$]*\\s*(=|:|$))",
431+
"end": "(?=\\=|:|$)",
432+
"name": "meta.definition.variable.kotlin",
433+
"patterns": [
434+
{
435+
"match": "\\b(var)\\b\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?",
436+
"captures": {
437+
"1": {
438+
"name": "storage.type.variable.kotlin"
439+
},
440+
"2": {
441+
"patterns": [
442+
{
443+
"include": "#type-parameter"
444+
}
445+
]
446+
}
447+
}
434448
},
435-
"2": {
436-
"patterns": [
437-
{
438-
"include": "#type-parameter"
449+
{
450+
"match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(=|:|$))",
451+
"captures": {
452+
"1": {
453+
"name": "variable.other.definition.kotlin"
439454
}
440-
]
455+
}
456+
},
457+
{
458+
"include": "#code"
441459
}
442-
}
460+
]
443461
},
444462
"constant-declaration": {
445-
"match": "\\b(val)\\b\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?",
446-
"captures": {
447-
"1": {
448-
"name": "storage.type.variable.readonly.kotlin"
463+
"begin": "(?=\\b(val)\\b\\s+[A-Za-z_$][\\w$]*\\s*(=|:|$))",
464+
"end": "(?=\\=|:|$)",
465+
"name": "meta.definition.variable.readonly.kotlin",
466+
"patterns": [
467+
{
468+
"match": "\\b(val)\\b\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?",
469+
"captures": {
470+
"1": {
471+
"name": "storage.type.variable.kotlin"
472+
},
473+
"2": {
474+
"patterns": [
475+
{
476+
"include": "#type-parameter"
477+
}
478+
]
479+
}
480+
}
449481
},
450-
"2": {
451-
"patterns": [
452-
{
453-
"include": "#type-parameter"
482+
{
483+
"match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(=|:|$))",
484+
"captures": {
485+
"1": {
486+
"name": "variable.other.definition.kotlin"
454487
}
455-
]
488+
}
489+
},
490+
{
491+
"include": "#code"
456492
}
457-
}
493+
]
458494
},
459495
"object": {
460496
"match": "\\b(\\w+)(?=\\.)",

0 commit comments

Comments
 (0)