mirror of
https://github.com/Ed94/pikuma_ps1.git
synced 2026-08-16 14:11:33 +00:00
86 lines
4.3 KiB
JSON
86 lines
4.3 KiB
JSON
{
|
|
"name": "atomasm-psx",
|
|
"displayName": "AtomAsm-PSX",
|
|
"description": "Semantic highlighting for the PS1 Tape/Atom MIPS macro DSL",
|
|
"publisher": "local",
|
|
"version": "0.3.0",
|
|
"engines": { "vscode": "^1.80.0" },
|
|
"categories": ["Programming Languages"],
|
|
"activationEvents": ["onLanguage:c", "onLanguage:cpp"],
|
|
"main": "./extension.js",
|
|
"files": [
|
|
"classifier.js",
|
|
"extension.js",
|
|
"lexer.js",
|
|
"source-index.js",
|
|
"syntaxes/tape_atom.tmLanguage.json"
|
|
],
|
|
"scripts": {
|
|
"test": "node --test test/*.test.js",
|
|
"package": "npx --yes @vscode/vsce@3.6.1 package --allow-missing-repository --skip-license --out atomasm-psx-0.3.0.vsix"
|
|
},
|
|
"contributes": {
|
|
"semanticTokenTypes": [
|
|
{ "id": "tapeAtomKeyword", "superType": "keyword", "description": "Tape atom declaration keyword" },
|
|
{ "id": "tapeAtomName", "superType": "function", "description": "Tape atom name" },
|
|
{ "id": "tapeComponentKeyword", "superType": "keyword", "description": "Tape atom component declaration keyword" },
|
|
{ "id": "tapeComponentName", "superType": "function", "description": "Tape atom component name" },
|
|
{ "id": "tapeAnnotation", "superType": "macro", "description": "Tape atom annotation" },
|
|
{ "id": "tapeBindType", "superType": "type", "description": "Tape bind structure type" },
|
|
{ "id": "tapePhase", "superType": "label", "description": "Tape atom phase" },
|
|
{ "id": "tapeLabel", "superType": "label", "description": "Tape atom branch label" },
|
|
{ "id": "tapeCpuInstruction", "superType": "macro", "description": "MIPS CPU instruction emitter" },
|
|
{ "id": "tapeControlFlow", "superType": "keyword", "description": "MIPS branch or jump instruction" },
|
|
{ "id": "tapeGteInstruction", "superType": "macro", "description": "GTE instruction emitter" },
|
|
{ "id": "tapeGpuInstruction", "superType": "macro", "description": "GPU command emitter" },
|
|
{ "id": "tapeComponentInstruction", "superType": "macro", "description": "Tape atom component invocation" },
|
|
{ "id": "tapeDelaySlot", "superType": "keyword", "description": "Load or branch delay slot annotation" },
|
|
{ "id": "tapeGprRegister", "superType": "variable", "description": "MIPS GPR alias" },
|
|
{ "id": "tapeCop2Register", "superType": "variable", "description": "COP2 data or control register alias" },
|
|
{ "id": "tapeDuffleType", "superType": "type", "description": "Duffle type or type constructor" },
|
|
{ "id": "tapeAttribute", "superType": "keyword", "description": "Duffle linkage or storage attribute" },
|
|
{ "id": "keyword", "description": "Standard keyword (DSL built-in macros)" },
|
|
{ "id": "macro", "description": "Standard macro (utility #define with no instruction domain)" }
|
|
],
|
|
"semanticTokenModifiers": [
|
|
{ "id": "tapeRead", "description": "Register declared in atom_reads" },
|
|
{ "id": "tapeWrite", "description": "Register declared in atom_writes" },
|
|
{ "id": "tapeAuto", "description": "Auto-allocated register" }
|
|
],
|
|
"semanticTokenScopes": [
|
|
{
|
|
"language": "c",
|
|
"scopes": {
|
|
"tapeAtomKeyword": ["keyword.control.duffle.atom"],
|
|
"tapeAtomName": ["entity.name.function.duffle.atom"],
|
|
"tapeComponentKeyword": ["keyword.control.duffle.component"],
|
|
"tapeComponentName": ["entity.name.function.duffle.component"],
|
|
"tapeAnnotation": ["support.function.duffle.annotation"],
|
|
"tapeBindType": ["entity.name.type.duffle.bind"],
|
|
"tapePhase": ["entity.name.tag.duffle.phase"],
|
|
"tapeLabel": ["entity.name.label.duffle.atom"],
|
|
"tapeCpuInstruction": ["support.function.duffle.cpu"],
|
|
"tapeControlFlow": ["keyword.control.duffle.branch"],
|
|
"tapeGteInstruction": ["support.function.duffle.gte"],
|
|
"tapeGpuInstruction": ["support.function.duffle.gpu"],
|
|
"tapeComponentInstruction": ["support.function.duffle.component"],
|
|
"tapeDelaySlot": ["keyword.operator.duffle.delayslot"],
|
|
"tapeGprRegister": ["variable.other.constant.duffle.gpr"],
|
|
"tapeCop2Register": ["variable.other.constant.duffle.cop2"],
|
|
"tapeDuffleType": ["storage.type.duffle.type"],
|
|
"tapeAttribute": ["storage.modifier.duffle.attr"],
|
|
"keyword": ["keyword"],
|
|
"macro": ["entity.name.function.preprocessor"]
|
|
}
|
|
}
|
|
],
|
|
"grammars": [
|
|
{
|
|
"scopeName": "tape_atom.injection",
|
|
"path": "./syntaxes/tape_atom.tmLanguage.json",
|
|
"injectTo": ["source.c", "source.cpp"]
|
|
}
|
|
]
|
|
}
|
|
}
|