From 8af29fd2dde6a06c26da41b9065a953e87d99dac Mon Sep 17 00:00:00 2001 From: Oscar Spencer Date: Tue, 26 Oct 2021 19:00:19 +0100 Subject: [PATCH] feat: Basic syntax highlighting for type aliases (#97) --- editor-extensions/vscode/syntaxes/grain.json | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/editor-extensions/vscode/syntaxes/grain.json b/editor-extensions/vscode/syntaxes/grain.json index 23fcb53..a30997a 100644 --- a/editor-extensions/vscode/syntaxes/grain.json +++ b/editor-extensions/vscode/syntaxes/grain.json @@ -276,6 +276,16 @@ }, "data-declarations": { "patterns": [ + { + "match": "\\b(type)\\b\\s+([A-Z]\\w*\\s*(<.*>\\s*)?)\\s*(=)\\s*(.*)", + "captures": { + "1": { "name": "storage.type.grain" }, + "2": { "name": "entity.name.type.grain" }, + "3": { "patterns": [{ "include": "#type-vector" }] }, + "4": { "name": "keyword.operator.grain" }, + "5": { "patterns": [{ "include": "#type" }] } + } + }, { "begin": "\\b(enum)\\b\\s+([A-Z]\\w*\\s*(<.*>\\s*)?)\\s*(\\{)", "end": "(\\})", @@ -333,7 +343,7 @@ ] }, { - "match": "(record|enum)\\s+([A-Z]\\w*)(<.*>)?", + "match": "(type|record|enum)\\s+([A-Z]\\w*)(<.*>)?", "captures": { "1": { "name": "storage.type.grain" }, "2": { "name": "entity.name.type.grain" }, @@ -830,7 +840,7 @@ "name": "keyword.control.grain" }, { - "match": "\\b(let|rec|mut|record|enum|foreign|primitive)\\b", + "match": "\\b(let|rec|mut|record|type|enum|foreign|primitive)\\b", "name": "storage.type.grain" } ]