Skip to content

Commit 83b4582

Browse files
committed
update
1 parent c4f3243 commit 83b4582

File tree

6 files changed

+735
-81
lines changed

6 files changed

+735
-81
lines changed

docs/assets/Saki.tmLanguage.json

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
{
2+
"name": "saki",
3+
"scopeName": "source.saki",
4+
"patterns": [
5+
{
6+
"include": "#strings"
7+
},
8+
{
9+
"include": "#comments"
10+
},
11+
{
12+
"include": "#keywords"
13+
},
14+
{
15+
"include": "#operators"
16+
},
17+
{
18+
"include": "#literals"
19+
},
20+
{
21+
"include": "#identifiers"
22+
}
23+
],
24+
"repository": {
25+
"comments": {
26+
"patterns": [
27+
{
28+
"name": "comment.block.saki",
29+
"begin": "/\\*",
30+
"end": "\\*/"
31+
},
32+
{
33+
"name": "comment.line.double-slash.saki",
34+
"match": "//.*$"
35+
}
36+
]
37+
},
38+
"keywords": {
39+
"patterns": [
40+
{
41+
"name": "keyword.control.saki",
42+
"match": "\\b(if|then|else|match|case|forall|exists)\\b"
43+
},
44+
{
45+
"name": "keyword.operator.new.saki",
46+
"match": "\\b(let|def|type|eval|impl|instance|record|inductive|flat|prefix|postfix|self|operator|binary|unary|left-assoc|right-assoc|tighter-than|looser-than|same-as)\\b"
47+
}
48+
]
49+
},
50+
"operators": {
51+
"patterns": [
52+
{
53+
"name": "keyword.operator.saki",
54+
"match": "(->|=>|::|\\.|\\^|=|:|∀|Π|∃|Σ)"
55+
},
56+
{
57+
"name": "keyword.operator.symbol.saki",
58+
"match": "[+\\-/*<>=&!^%#:|@]+"
59+
}
60+
]
61+
},
62+
"literals": {
63+
"patterns": [
64+
{
65+
"name": "constant.numeric.imaginary.saki",
66+
"match": "\\b([0-9]+(\\.[0-9]+)?i)\\b"
67+
},
68+
{
69+
"name": "constant.numeric.saki",
70+
"match": "\\b(0x[0-9a-fA-F]+|0o[0-7]+|0b[01]+|[0-9]+(\\.[0-9]+)?)\\b"
71+
},
72+
{
73+
"name": "constant.character.saki",
74+
"match": "'([^'\\\\]|\\\\.)'"
75+
},
76+
{
77+
"name": "string.quoted.double.saki",
78+
"begin": "\"",
79+
"end": "\"",
80+
"name": "string.regular.saki",
81+
"patterns": [
82+
{
83+
"name": "constant.character.escape.saki",
84+
"match": "\\\\."
85+
}
86+
]
87+
},
88+
{
89+
"name": "string.quoted.raw.saki",
90+
"begin": "#\\{",
91+
"end": "\\}",
92+
"name": "string.raw.saki",
93+
"patterns": [
94+
{
95+
"name": "constant.character.escape.saki",
96+
"match": "\\\\."
97+
}
98+
]
99+
},
100+
{
101+
"name": "constant.language.boolean.saki",
102+
"match": "\\b(true|false)\\b"
103+
}
104+
]
105+
},
106+
"identifiers": {
107+
"patterns": [
108+
{
109+
"name": "variable.parameter.saki",
110+
"match": "\\b[a-zα-ω][a-zA-Zα-ωΑ-Ω0-9]*('*?)\\b"
111+
},
112+
{
113+
"name": "entity.name.contract.saki",
114+
"match": "\\b'([A-ZΑ-Ω][a-zA-Zα-ωΑ-Ω]*)\\b"
115+
},
116+
{
117+
"name": "entity.name.type.saki",
118+
"match": "\\b([A-ZΑ-Ω][a-zA-Zα-ωΑ-Ω]*)\\b"
119+
},
120+
{
121+
"name": "entity.name.class.saki",
122+
"match": "\\b([𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ])\\b"
123+
},
124+
{
125+
"name": "entity.name.function.operator.saki",
126+
"match": "\\(([+\\-/*<>=&!^%#:|@]+)\\)"
127+
}
128+
]
129+
}
130+
}
131+
}
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
{
2+
"comments": {
3+
"lineComment": "//",
4+
"blockComment": [
5+
"/*",
6+
"*/"
7+
]
8+
},
9+
"brackets": [
10+
[
11+
"{",
12+
"}"
13+
],
14+
[
15+
"[",
16+
"]"
17+
],
18+
[
19+
"(",
20+
")"
21+
]
22+
],
23+
"autoClosingPairs": [
24+
{
25+
"open": "{",
26+
"close": "}"
27+
},
28+
{
29+
"open": "b\"\"\"",
30+
"close": ""
31+
},
32+
{
33+
"open": "b\"\"",
34+
"close": ""
35+
},
36+
{
37+
"open": "b\"",
38+
"close": "\""
39+
},
40+
{
41+
"open": "b''",
42+
"close": ""
43+
},
44+
{
45+
"open": "b'",
46+
"close": "'"
47+
},
48+
{
49+
"open": "/*",
50+
"close": "*/"
51+
},
52+
{
53+
"open": "\"\"\"",
54+
"close": "\n\"\"\""
55+
},
56+
{
57+
"open": "\"\"",
58+
"close": ""
59+
},
60+
{
61+
"open": "[",
62+
"close": "]"
63+
},
64+
{
65+
"open": "(",
66+
"close": ")"
67+
},
68+
{
69+
"open": "\"",
70+
"close": "\""
71+
},
72+
{
73+
"open": "'",
74+
"close": "'"
75+
},
76+
{
77+
"open": "r'",
78+
"close": "'"
79+
},
80+
{
81+
"open": "r\"",
82+
"close": "\""
83+
}
84+
],
85+
"surroundingPairs": [
86+
[
87+
"{",
88+
"}"
89+
],
90+
[
91+
"[",
92+
"]"
93+
],
94+
[
95+
"(",
96+
")"
97+
],
98+
[
99+
"\"",
100+
"\""
101+
],
102+
[
103+
"'",
104+
"'"
105+
]
106+
],
107+
"wordPattern": "(-?\\d*\\.\\d\\w*)|([^\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)"
108+
}

0 commit comments

Comments
 (0)