Skip to content

Commit e2b7595

Browse files
authored
Adds recognition of char literals (Fixes #36) (#37)
1 parent 66f983e commit e2b7595

File tree

5 files changed

+76
-1
lines changed

5 files changed

+76
-1
lines changed

dist/Kotlin.JSON-tmLanguage

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,26 @@
749749
"include": "#string-content"
750750
}
751751
]
752+
},
753+
{
754+
"begin": "'",
755+
"beginCaptures": {
756+
"0": {
757+
"name": "punctuation.definition.string.begin.kotlin"
758+
}
759+
},
760+
"end": "'",
761+
"endCaptures": {
762+
"0": {
763+
"name": "punctuation.definition.string.end.kotlin"
764+
}
765+
},
766+
"name": "string.quoted.single.kotlin",
767+
"patterns": [
768+
{
769+
"include": "#string-content"
770+
}
771+
]
752772
}
753773
],
754774
"repository": {

dist/Kotlin.YAML-tmLanguage

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,7 @@ repository:
298298
patterns:
299299
- {begin: '"""', beginCaptures: {'0': {name: punctuation.definition.string.begin.kotlin}}, end: '"""(?!")', endCaptures: {'0': {name: punctuation.definition.string.end.kotlin}}, name: string.quoted.triple.kotlin, patterns: [{include: '#string-content'}]}
300300
- {begin: '(?!'')"(?!'')', beginCaptures: {'0': {name: punctuation.definition.string.begin.kotlin}}, end: '"', endCaptures: {'0': {name: punctuation.definition.string.end.kotlin}}, name: string.quoted.double.kotlin, patterns: [{include: '#string-content'}]}
301+
- {begin: '''', beginCaptures: {'0': {name: punctuation.definition.string.begin.kotlin}}, end: '''', endCaptures: {'0': {name: punctuation.definition.string.end.kotlin}}, name: string.quoted.single.kotlin, patterns: [{include: '#string-content'}]}
301302
repository:
302303
string-content: {patterns: [{match: '\\[0\\tnr"'']', name: constant.character.escape.kotlin}, {match: '\\(x[\da-fA-F]{2}|u[\da-fA-F]{4}|.)', name: constant.character.escape.unicode.kotlin}, {begin: '\$(\{)', beginCaptures: {'1': {name: punctuation.section.block.begin.kotlin}}, end: '\}', endCaptures: {'0': {name: punctuation.section.block.end.kotlin}}, name: entity.string.template.element.kotlin}, {match: '\$[a-zA-Z_]\w*', name: entity.string.template.element.kotlin}]}
303304
'null':

dist/Kotlin.tmLanguage

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,6 +1133,37 @@
11331133
</dict>
11341134
</array>
11351135
</dict>
1136+
<dict>
1137+
<key>begin</key>
1138+
<string>'</string>
1139+
<key>beginCaptures</key>
1140+
<dict>
1141+
<key>0</key>
1142+
<dict>
1143+
<key>name</key>
1144+
<string>punctuation.definition.string.begin.kotlin</string>
1145+
</dict>
1146+
</dict>
1147+
<key>end</key>
1148+
<string>'</string>
1149+
<key>endCaptures</key>
1150+
<dict>
1151+
<key>0</key>
1152+
<dict>
1153+
<key>name</key>
1154+
<string>punctuation.definition.string.end.kotlin</string>
1155+
</dict>
1156+
</dict>
1157+
<key>name</key>
1158+
<string>string.quoted.single.kotlin</string>
1159+
<key>patterns</key>
1160+
<array>
1161+
<dict>
1162+
<key>include</key>
1163+
<string>#string-content</string>
1164+
</dict>
1165+
</array>
1166+
</dict>
11361167
</array>
11371168
<key>repository</key>
11381169
<dict>

src/literals.YAML-tmLanguage

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,19 @@ repository:
5757
patterns:
5858
-
5959
include: '#string-content'
60+
-
61+
begin: ''''
62+
beginCaptures:
63+
'0':
64+
name: punctuation.definition.string.begin.kotlin
65+
end: ''''
66+
endCaptures:
67+
'0':
68+
name: punctuation.definition.string.end.kotlin
69+
name: string.quoted.single.kotlin
70+
patterns:
71+
-
72+
include: '#string-content'
6073
repository:
6174
string-content:
6275
patterns:

test/literals.test.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,19 @@
172172
foo('"')
173173
//^^^ source.kotlin
174174
// ^ source.kotlin meta.group.kotlin punctuation.section.group.begin.kotlin
175-
// ^^^ source.kotlin meta.group.kotlin
175+
// ^ source.kotlin meta.group.kotlin string.quoted.single.kotlin punctuation.definition.string.begin.kotlin
176+
// ^ source.kotlin meta.group.kotlin string.quoted.single.kotlin
177+
// ^ source.kotlin meta.group.kotlin string.quoted.single.kotlin punctuation.definition.string.end.kotlin
176178
// ^ source.kotlin meta.group.kotlin punctuation.section.group.end.kotlin
177179

180+
foo('\'')
181+
//^^^ source.kotlin
182+
// ^ source.kotlin meta.group.kotlin punctuation.section.group.begin.kotlin
183+
// ^ source.kotlin meta.group.kotlin string.quoted.single.kotlin punctuation.definition.string.begin.kotlin
184+
// ^^ source.kotlin meta.group.kotlin string.quoted.single.kotlin constant.character.escape.kotlin
185+
// ^ source.kotlin meta.group.kotlin string.quoted.single.kotlin punctuation.definition.string.end.kotlin
186+
// ^ source.kotlin meta.group.kotlin punctuation.section.group.end.kotlin
187+
178188
foo(""""."""")
179189
//^^^ source.kotlin
180190
// ^ source.kotlin meta.group.kotlin punctuation.section.group.begin.kotlin

0 commit comments

Comments
 (0)