aboutsummaryrefslogtreecommitdiffstats
path: root/atk16-syntax
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2023-04-13 14:48:34 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2023-04-13 14:49:59 +0300
commit9d4c6fc299294ac36f7082599edce19286fa0f99 (patch)
treee7601bb1cd9950482f125377d25b6d5d40b72e62 /atk16-syntax
parentafd5f32e56d3d30bfa98fb35deff51febf50e594 (diff)
Add @let directive, start pondering interrupt control
Diffstat (limited to 'atk16-syntax')
-rw-r--r--atk16-syntax/atk16-syntax-0.0.1.vsixbin4383 -> 4351 bytes
-rw-r--r--atk16-syntax/extension.js16
-rw-r--r--atk16-syntax/package.json2
-rw-r--r--atk16-syntax/syntaxes/atk16.tmLanguage.json20
4 files changed, 16 insertions, 22 deletions
diff --git a/atk16-syntax/atk16-syntax-0.0.1.vsix b/atk16-syntax/atk16-syntax-0.0.1.vsix
index 342049e..253d326 100644
--- a/atk16-syntax/atk16-syntax-0.0.1.vsix
+++ b/atk16-syntax/atk16-syntax-0.0.1.vsix
Binary files differ
diff --git a/atk16-syntax/extension.js b/atk16-syntax/extension.js
index 2c8e294..26b4d9d 100644
--- a/atk16-syntax/extension.js
+++ b/atk16-syntax/extension.js
@@ -85,9 +85,9 @@ class ATK16DefinitionProvider {
}
} else {
const labelText = document.getText(range);
- let labelLocation = await findLabelInDocument(document, labelText);
- if (labelLocation) {
- return labelLocation;
+ let definitionLocation = await findDefinitionInDocument(document, labelText);
+ if (definitionLocation) {
+ return definitionLocation;
}
// Search for labels in included files
@@ -104,9 +104,9 @@ class ATK16DefinitionProvider {
const includedDocument = await vscode.workspace.openTextDocument(
includedFilePath
);
- labelLocation = await findLabelInDocument(includedDocument, labelText);
- if (labelLocation) {
- return labelLocation;
+ definitionLocation = await findDefinitionInDocument(includedDocument, labelText);
+ if (definitionLocation) {
+ return definitionLocation;
}
}
}
@@ -117,10 +117,10 @@ class ATK16DefinitionProvider {
}
}
-async function findLabelInDocument(document, labelText) {
+async function findDefinitionInDocument(document, labelText) {
for (let i = 0; i < document.lineCount; i++) {
const line = document.lineAt(i);
- if (line.text.includes(`@label ${labelText}`)) {
+ if (line.text.includes(`@label ${labelText}`) || line.text.includes(`@let ${labelText}`)) {
return new vscode.Location(document.uri, line.range.start);
}
}
diff --git a/atk16-syntax/package.json b/atk16-syntax/package.json
index 5fd48e6..6a64b6c 100644
--- a/atk16-syntax/package.json
+++ b/atk16-syntax/package.json
@@ -4,6 +4,8 @@
"description": "Syntax highlighting and support for ATK16 assembly language",
"version": "0.0.1",
"publisher": "JanTuomi",
+ "license": "MIT",
+ "repository": "",
"engines": {
"vscode": "^1.60.0"
},
diff --git a/atk16-syntax/syntaxes/atk16.tmLanguage.json b/atk16-syntax/syntaxes/atk16.tmLanguage.json
index b12f596..6dcf0ea 100644
--- a/atk16-syntax/syntaxes/atk16.tmLanguage.json
+++ b/atk16-syntax/syntaxes/atk16.tmLanguage.json
@@ -16,31 +16,23 @@
},
{
"name": "variable.other.register.atk16",
- "match": "R\\w+"
+ "match": "\\bR[A-H]\\b"
},
{
"name": "constant.numeric.hex.atk16",
- "match": "0x[0-9a-fA-F]+"
+ "match": "\\b0x[0-9a-fA-F]+\\b"
},
{
"name": "constant.numeric.binary.atk16",
- "match": "0b[01]+"
+ "match": "\\b0b[01]+\\b"
},
{
"name": "constant.numeric.decimal.atk16",
- "match": "[0-9]+"
+ "match": "\\b[0-9]+\\b"
},
{
- "name": "entity.name.function.atk16",
- "match": "\\w+(?=\\s*\\()"
- },
- {
- "name": "entity.name.label.atk16",
- "match": "\\w+(?=\\s*:)"
- },
- {
- "name": "keyword.control.instruction.atk16",
- "match": "^\\s+[a-zA-Z]+"
+ "name": "keyword.control.symbol.atk16",
+ "match": "^\\s+[a-zA-Z_-]+"
},
{
"name": "constant.language.flag.atk16",