From 29f691e38aaebd1a40fd8a46840b09f92566856e Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Mon, 1 Jun 2026 11:30:56 +0200 Subject: [PATCH] fix: update vscode syntax --- vscode-ext/syntaxes/midas.tmLanguage.json | 118 ++++++++++++++-------- 1 file changed, 76 insertions(+), 42 deletions(-) diff --git a/vscode-ext/syntaxes/midas.tmLanguage.json b/vscode-ext/syntaxes/midas.tmLanguage.json index 44745b0..20d1ded 100644 --- a/vscode-ext/syntaxes/midas.tmLanguage.json +++ b/vscode-ext/syntaxes/midas.tmLanguage.json @@ -31,22 +31,32 @@ ] }, "type-base": { - "begin": "<", - "end": ">", + "begin": "(\\()([a-zA-Z_][a-zA-Z_\\d]*)(\\))", + "end": "$", "beginCaptures": { - "0": { + "1": { "name": "punctuation.definition.base.begin.midas" - } - }, - "endCaptures": { - "0": { + }, + "2": { + "name": "variable.name" + }, + "3": { "name": "punctuation.definition.base.end.midas" } }, "patterns": [ - {"include": "source.python"} + { "include": "#type-cond" } ] }, + "type-cond": { + "begin": "where", + "end": "$", + "beginCaptures": { + "0": { + "name": "keyword.control.where.midas" + } + } + }, "type-body": { "begin": "\\{", "end": "\\}", @@ -61,7 +71,8 @@ } }, "patterns": [ - {"include": "#type-prop"} + {"include": "#type-prop"}, + {"include": "#comment"} ] }, "type-prop": { @@ -78,44 +89,67 @@ } } }, - "op-def": { - "match": "\\b(op)\\s+<([a-zA-Z_][a-zA-Z_\\d]*)>\\s+(\\S+)\\s+<([a-zA-Z_][a-zA-Z_\\d]*)>\\s+(=)\\s+<([a-zA-Z_][a-zA-Z_\\d]*)>", - "captures": { - "1": { - "name": "keyword.control.op.midas" - }, - "2": { - "name" : "variable.name" - }, - "3": { - "name" : "keyword.operator" - }, - "4": { - "name" : "variable.name" - }, - "5": { - "name" : "keyword.operator.assignment" - }, - "6": { - "name" : "variable.name" - } - }, - "patterns": [ - { "include": "#type-base" }, - { "include": "#type-body" } - ] - }, - "constr-def": { - "begin": "(constraint)\\s+([a-zA-Z_][a-zA-Z_\\d]*)\\s*(=)", - "end": "$", + "extend-def": { + "begin": "\\b(extend)\\s*([a-zA-Z_][a-zA-Z_\\d]*)\\s+(\\{)", + "end": "\\}", "beginCaptures": { "1": { - "name": "keyword.control.constr.midas" + "name": "keyword.control.extend.midas" }, "2": { "name": "variable.name" }, "3": { + "name": "punctuation.definition.extend-body.begin.midas" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.extend-body.end.midas" + } + }, + "patterns": [ + {"include": "#op-def"}, + {"include": "#comment"} + ] + }, + "op-def": { + "match": "\\b(op)\\s+(\\S+)\\s*\\(\\s*([a-zA-Z_][a-zA-Z_\\d]*)\\s*\\)\\s*(->)\\s*([a-zA-Z_][a-zA-Z_\\d]*)", + "captures": { + "1": { + "name": "keyword.control.op.midas" + }, + "2": { + "name" : "keyword.operator" + }, + "3": { + "name" : "variable.name" + }, + "4": { + "name" : "keyword.operator.assignment" + }, + "5": { + "name" : "variable.name" + } + } + }, + "pred-def": { + "begin": "(predicate)\\s+([a-zA-Z_][a-zA-Z_\\d]*)\\(([a-zA-Z_][a-zA-Z_\\d]*):\\s*([a-zA-Z_][a-zA-Z_\\d]*)\\)\\s*(=)", + "end": "$", + "beginCaptures": { + "1": { + "name": "keyword.control.pred.midas" + }, + "2": { + "name": "variable.name" + }, + "3": { + "name": "variable.name" + }, + "4": { + "name": "variable.name" + }, + "5": { "name": "keyword.operator.assignment" } }, @@ -127,8 +161,8 @@ "patterns": [ { "include": "#comment" }, { "include": "#type-def" }, - { "include": "#op-def" }, - { "include": "#constr-def" } + { "include": "#extend-def" }, + { "include": "#pred-def" } ] } }