Skip to content

Commit 0dd5bc8

Browse files
committed
Fix GDScript string highlighting and stuff
1 parent 10b4783 commit 0dd5bc8

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

core/src/main/kotlin/dev/fishies/coho/core/highlighting/Gdscript.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ private val variantTypes = listOf(
5454
fun createGdscriptGrammar() = grammar(
5555
"gdscript",
5656
token("comment", pattern(compile("#.*\\n"))),
57-
token("double-quote-string", pattern(compile("r?\"(?:[^\"\\\\]|\\\\.)*+\""), false, true, "string")),
58-
token("single-quote-string", pattern(compile("r?\'(?:[^\'\\\\]|\\\\.)*+\'"), false, true, "string")),
57+
token("double-quote-string", pattern(compile("&?\\^?r?\"(?:[^\"\\\\]|\\\\.)*+\""), false, true, "string")),
58+
token("single-quote-string", pattern(compile("&?\\^?r?\'(?:[^\'\\\\]|\\\\.)*+\'"), false, true, "string")),
5959
token("triple-double-quote-string", pattern(compile("r?(\"{3,}).*?\\1"), false, true, "string")),
6060
token("triple-single-quote-string", pattern(compile("r?(\'{3,}).*?\\1"), false, true, "string")),
6161
token("annotation", pattern(compile("@$identifier"), false, true)),
@@ -66,7 +66,7 @@ fun createGdscriptGrammar() = grammar(
6666
),
6767
token(
6868
"number",
69-
pattern(compile("-?(?:0x(?:[0-9a-fA-F]_?)+|0b(?:[01]_?)+|(?:(?:[0-9]_?)*\\.(?:[0-9]_?)+)(?:e-?(?:[0-9]_?)+)?|(?:[0-9]_?)+\\.?(?:e-?(?:[0-9]_?)+)?)"))
69+
pattern(compile("-?(?:0[xX](?:[0-9a-fA-F]_?)+|0[bB](?:[01]_?)+|(?:[0-9]_?)*\\.(?:[0-9]_?)+(?:[eE]-?(?:[0-9]_?)+)?|(?:[0-9]_?)+\\.?(?:[eE]-?(?:[0-9]_?)+)?)"))
7070
),
7171
token("operator", pattern(compile("=|\\+=|-=|\\*\\*=|\\*=|/=|%=|&=|\\^=|<<=|>>=|:\\s*=|->"))),
7272
token(

core/src/main/kotlin/dev/fishies/coho/core/highlighting/Ini.kt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,25 @@ import io.noties.prism4j.Prism4j.token
66
import java.util.regex.Pattern.MULTILINE
77
import java.util.regex.Pattern.compile
88

9+
private val variantTypes = listOf(
10+
"int",
11+
"bool",
12+
"float",
13+
"void",
14+
).sortedBy { it.length }.joinToString("|")
15+
916
fun createIniGrammar() = grammar(
1017
"ini",
1118
token("comment", pattern(compile(";.*\\n"))),
1219
token("property", pattern(compile("^.+?(?==)", MULTILINE))),
1320
token("class-name", pattern(compile("^\\[.+\\]$", MULTILINE))),
14-
token("string", pattern(compile("\"(?:[^\"\\\\]|\\\\.)*+\""))),
15-
token("punctuation", pattern(compile("[={}\\[\\],:]"))),
21+
token("string", pattern(compile("&?\\^?\"(?:[^\"\\\\]|\\\\.)*+\""))),
22+
token("boolean", pattern(compile("true|false"))),
23+
token(
24+
"number",
25+
pattern(compile("-?(?:0[xX](?:[0-9a-fA-F]_?)+|0[bB](?:[01]_?)+|(?:[0-9]_?)*\\.(?:[0-9]_?)+(?:[eE]-?(?:[0-9]_?)+)?|(?:[0-9]_?)+\\.?(?:[eE]-?(?:[0-9]_?)+)?)"))
26+
),
27+
token("pascal-class-name", pattern(compile("\\b[A-Z][a-zA-Z0-9_]*\\b"), false, true, "class-name")),
28+
token("variant-class-name", pattern(compile("\\b(?:$variantTypes)\\b"), false, true, "class-name")),
29+
token("punctuation", pattern(compile("[=,:{}\\[\\]()]"))),
1630
)

0 commit comments

Comments
 (0)