From 4a1d9d05207cbf791335489989b796f61f7b71d3 Mon Sep 17 00:00:00 2001 From: Oscar Spencer Date: Mon, 4 Mar 2024 09:50:33 -0600 Subject: [PATCH] feat: Support and keyword for data types --- editor-extensions/vscode/syntaxes/grain.json | 27 +++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/editor-extensions/vscode/syntaxes/grain.json b/editor-extensions/vscode/syntaxes/grain.json index a3fd365..f8ef143 100644 --- a/editor-extensions/vscode/syntaxes/grain.json +++ b/editor-extensions/vscode/syntaxes/grain.json @@ -375,13 +375,14 @@ } }, { - "begin": "\\b(enum)\\b\\s+([A-Z]\\w*\\s*(<.*>\\s*)?)\\s*(\\{)", + "begin": "\\b(enum)\\b\\s+(\\b(rec)\\b\\s+)?([A-Z]\\w*\\s*(<.*>\\s*)?)\\s*(\\{)", "end": "(\\})", "beginCaptures": { "1": { "name": "storage.type.grain" }, - "2": { "name": "entity.name.type.grain" }, - "3": { "patterns": [{ "include": "#type-vector" }] }, - "4": { "name": "punctuation.definition.parameters.begin.grain" } + "3": { "name": "storage.type.grain" }, + "4": { "name": "entity.name.type.grain" }, + "5": { "patterns": [{ "include": "#type-vector" }] }, + "6": { "name": "punctuation.definition.parameters.begin.grain" } }, "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.grain" } @@ -395,13 +396,14 @@ ] }, { - "begin": "\\b(record)\\b\\s+([A-Z]\\w*\\s*(<.*>\\s*)?)\\s*(\\{)", + "begin": "\\b(record)\\b\\s+(\\b(rec)\\b\\s+)?([A-Z]\\w*\\s*(<.*>\\s*)?)\\s*(\\{)", "end": "(\\})", "beginCaptures": { "1": { "name": "storage.type.grain" }, - "2": { "name": "entity.name.type.grain" }, - "3": { "patterns": [{ "include": "#type-vector" }] }, - "4": { "name": "punctuation.definition.parameters.begin.grain" } + "3": { "name": "storage.type.grain" }, + "4": { "name": "entity.name.type.grain" }, + "5": { "patterns": [{ "include": "#type-vector" }] }, + "6": { "name": "punctuation.definition.parameters.begin.grain" } }, "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.grain" } @@ -438,11 +440,12 @@ } }, { - "match": "(type|record|enum)\\s+([A-Z]\\w*)(<.*>)?", + "match": "(type|record|enum)\\s+(\\b(rec)\\b\\s+)?([A-Z]\\w*)(<.*>)?", "captures": { "1": { "name": "storage.type.grain" }, - "2": { "name": "entity.name.type.grain" }, - "3": { "patterns": [{ "include": "#type-vector" }] } + "3": { "name": "storage.type.grain" }, + "4": { "name": "entity.name.type.grain" }, + "5": { "patterns": [{ "include": "#type-vector" }] } } } ] @@ -1097,7 +1100,7 @@ "name": "keyword.control.grain" }, { - "match": "\\b(module|let|rec|mut|record|type|enum|foreign|primitive)\\b", + "match": "\\b(module|let|rec|mut|record|type|enum|and|foreign|primitive)\\b", "name": "storage.type.grain" } ]