Start adding syntax highlighting

This commit is contained in:
Sofia 2025-08-02 00:14:20 +03:00
parent 314f44304a
commit 0ba25db4c8
4 changed files with 90 additions and 14 deletions

View File

@ -1,12 +1,13 @@
// Main a
fn main() -> bool { (
return 144 == fibonacci(0xc); b
} )
x
// Fibonacci (
fn fibonacci(value: u16) -> u16 { (
if value <= 2 { c
return 1; xyz
} )
fibonacci(value - 1) + fibonacci(value - 2) )
} (
a

View File

@ -43,11 +43,18 @@
"description": "Traces the communication between VS Code and the language server." "description": "Traces the communication between VS Code and the language server."
} }
} }
} },
"grammars": [
{
"language": "reid",
"scopeName": "source.reid",
"path": "./syntaxes/grammar.json"
}
]
}, },
"scripts": { "scripts": {
"vscode:prepublish": "pnpm run package", "vscode:prepublish": "pnpm run package",
"compile": "webpack", "compile": "npx js-yaml syntaxes/grammar.yaml > syntaxes/grammar.json && webpack",
"watch": "webpack --watch", "watch": "webpack --watch",
"package": "webpack --mode production --devtool hidden-source-map", "package": "webpack --mode production --devtool hidden-source-map",
"compile-tests": "tsc -p . --outDir out", "compile-tests": "tsc -p . --outDir out",
@ -65,6 +72,7 @@
"@vscode/test-cli": "^0.0.11", "@vscode/test-cli": "^0.0.11",
"@vscode/test-electron": "^2.5.2", "@vscode/test-electron": "^2.5.2",
"eslint": "^9.25.1", "eslint": "^9.25.1",
"js-yaml": "^4.1.0",
"ts-loader": "^9.5.2", "ts-loader": "^9.5.2",
"typescript": "^5.8.3", "typescript": "^5.8.3",
"webpack": "^5.99.7", "webpack": "^5.99.7",

View File

@ -0,0 +1,44 @@
{
"scopeName": "source.reid",
"patterns": [
{
"include": "#expression"
}
],
"repository": {
"expression": {
"patterns": [
{
"include": "#letter"
},
{
"include": "#paren-expression"
}
]
},
"letter": {
"match": "a|b|c",
"name": "keyword.letter"
},
"paren-expression": {
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.paren.open"
}
},
"endCaptures": {
"0": {
"name": "punctuation.paren.close"
}
},
"name": "expression.group",
"patterns": [
{
"include": "#expression"
}
]
}
}
}

View File

@ -0,0 +1,23 @@
scopeName: source.reid
patterns:
- include: "#expression"
repository:
expression:
patterns:
- include: "#letter"
- include: "#paren-expression"
letter:
match: "a|b|c"
name: "keyword.letter"
paren-expression:
begin: "\\("
end: "\\)"
beginCaptures:
0:
name: "punctuation.paren.open"
endCaptures:
0:
name: "punctuation.paren.close"
name: "expression.group"
patterns:
- include: "#expression"