aboutsummaryrefslogtreecommitdiff
path: root/plugin/syntaxes/cie-pseudocode.tmLanguage.json
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-13 05:53:16 +0000
committer_ov4 <ov4@ov4.org>2026-10-13 05:53:16 +0000
commitbe8154fac8a0ea5eb3dddef4053f12d67102009d (patch)
treef782d438ffa451ebd2efc00ccc0b7a4579a020c4 /plugin/syntaxes/cie-pseudocode.tmLanguage.json
parent38ff4e782ef844a21512eb2ca0e491387ae89ec5 (diff)
feat(plugin): add CIE language registration and C++ style highlighting
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Diffstat (limited to 'plugin/syntaxes/cie-pseudocode.tmLanguage.json')
-rw-r--r--plugin/syntaxes/cie-pseudocode.tmLanguage.json118
1 files changed, 118 insertions, 0 deletions
diff --git a/plugin/syntaxes/cie-pseudocode.tmLanguage.json b/plugin/syntaxes/cie-pseudocode.tmLanguage.json
new file mode 100644
index 0000000..40a67df
--- /dev/null
+++ b/plugin/syntaxes/cie-pseudocode.tmLanguage.json
@@ -0,0 +1,118 @@
+{
+ "name": "CIE Pseudocode",
+ "scopeName": "source.cie-pseudocode",
+ "patterns": [
+ {
+ "include": "#line_comment"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "match": "(?<!\\w)(?:IF|THEN|ELSE|ENDIF|WHILE|DO|ENDWHILE|REPEAT|UNTIL|FOR|TO|STEP|NEXT|RETURN|CALL)(?!\\w)",
+ "name": "keyword.control.cie-pseudocode"
+ },
+ {
+ "match": "(?<!\\w)(?:DECLARE|TYPE|ENDTYPE|FUNCTION|ENDFUNCTION|PROCEDURE|ENDPROCEDURE|RETURNS|BYREF|BYVAL|OF)(?!\\w)",
+ "name": "storage.modifier.cie-pseudocode"
+ },
+ {
+ "match": "(?<!\\w)(?:INTEGER|REAL|BOOLEAN|STRING|CHAR|ARRAY)(?!\\w)",
+ "name": "storage.type.cie-pseudocode"
+ },
+ {
+ "match": "(?<!\\w)(?:TRUE|FALSE)(?!\\w)",
+ "name": "constant.language.cie-pseudocode"
+ },
+ {
+ "match": "(?<!\\w)(?:INPUT|OUTPUT|OPENFILE|READFILE|WRITEFILE|CLOSEFILE|READ|WRITE|APPEND)(?!\\w)",
+ "name": "keyword.other.cie-pseudocode"
+ },
+ {
+ "match": "(?<!\\w)(?:LENGTH|MID|RIGHT|LEFT|LCASE|UCASE|ASC|CHR|IS_NUM|NUM_TO_STR|STR_TO_NUM|EOF)(?!\\w)(?=\\s*\\()",
+ "name": "entity.name.function.cie-pseudocode"
+ },
+ {
+ "match": "(?<!\\w)(?:DIV|MOD|AND|OR|NOT)(?!\\w)",
+ "name": "keyword.operator.word.cie-pseudocode"
+ },
+ {
+ "match": "<-|<>|<=|>=|[+*/=&^<>-]",
+ "name": "keyword.operator.cie-pseudocode"
+ },
+ {
+ "match": "(?<!\\w)\\d+(?:\\.\\d*)?(?!\\w)",
+ "name": "constant.numeric.cie-pseudocode"
+ },
+ {
+ "match": "\\b[A-Za-z][A-Za-z0-9_]*(?=\\s*\\()",
+ "name": "entity.name.function.cie-pseudocode"
+ },
+ {
+ "match": "[()]",
+ "name": "punctuation.section.parens.cie-pseudocode"
+ },
+ {
+ "match": "[\\[\\]]",
+ "name": "punctuation.section.brackets.cie-pseudocode"
+ },
+ {
+ "match": ",",
+ "name": "punctuation.separator.delimiter.comma.cie-pseudocode"
+ },
+ {
+ "match": "[:.]",
+ "name": "punctuation.separator.cie-pseudocode"
+ }
+ ],
+ "repository": {
+ "line_comment": {
+ "begin": "(//)",
+ "end": "$",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.cie-pseudocode"
+ }
+ },
+ "endCaptures": {},
+ "name": "comment.line.double-slash.cie-pseudocode",
+ "patterns": []
+ },
+ "strings": {
+ "patterns": [
+ {
+ "begin": "\"",
+ "end": "\"|$",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.cie-pseudocode"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.cie-pseudocode"
+ }
+ },
+ "name": "string.quoted.double.cie-pseudocode",
+ "patterns": []
+ },
+ {
+ "begin": "'",
+ "end": "'|$",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.cie-pseudocode"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.cie-pseudocode"
+ }
+ },
+ "name": "string.quoted.single.cie-pseudocode",
+ "patterns": []
+ }
+ ]
+ }
+ }
+}