From def4c601818f2032bdcc3d989c53512de760bcc6 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 23 Jan 2026 19:18:42 +0000 Subject: [PATCH 1/2] Update syntax highlighting with all keywords from pytrilogy lark grammar Updated the VS Code extension's syntax highlighting to cover all grammatical keywords from the pytrilogy lark grammar file. Changes include: - Added all statement keywords: select, from, where, having, order, limit, etc. - Added multi-select keywords: merge, align, derive, rowset, with - Added persist/copy keywords: persist, append, overwrite, into, copy, csv, json, parquet - Added datasource keywords: datasource, grain, address, query, file, freshness, etc. - Added chart keywords: chart, line, bar, barh, point, area, headline, donut, etc. - Added CASE/WHEN conditional keywords - Added concept types: key, metric, property, parameter, param, const, constant, unique - Added all data types: string, number, numeric, int, bigint, date, datetime, timestamp, float, bool, any, struct, list, array, map, tuple - Added categorized builtin functions: math, string, array, map, aggregate, date, window - Added operators: <-, ->, ::, between, like, ilike - Added lambda transform syntax: @identifier - Added hash types: md5, sha1, sha256, sha512 - Added date parts: DAY, WEEK, MONTH, QUARTER, YEAR, MINUTE, HOUR, SECOND, DAY_OF_WEEK - Added support for // comments in addition to # comments - Updated literals to use true, false, null (case-insensitive) - Made all keyword matching case-insensitive to match lark grammar https://claude.ai/code/session_01KJrcKzNukbgAV2RGQtWZxX --- .../vscode/syntaxes/trilogy.tmLanguage.json | 192 +++++++++++++----- 1 file changed, 143 insertions(+), 49 deletions(-) diff --git a/editors/vscode/syntaxes/trilogy.tmLanguage.json b/editors/vscode/syntaxes/trilogy.tmLanguage.json index ec574a5..f9fb6c2 100644 --- a/editors/vscode/syntaxes/trilogy.tmLanguage.json +++ b/editors/vscode/syntaxes/trilogy.tmLanguage.json @@ -80,7 +80,7 @@ "concept-declaration": { "name": "meta.function.trilogy", "patterns": [{ - "begin": "(?x)\n \\s*\n \\b(auto|property|metric|key)\\s+\n (?=\n [[:alpha:]_][[:word:]]* \\s* [[:alpha:]_][[:word:]]* )\n", + "begin": "(?ix)\n \\s*\n \\b(auto|property|metric|key|parameter|param|const|constant|unique)\\s+\n (?=\n [[:alpha:]_][[:word:]]* \\s* [[:alpha:]_][[:word:]]* )\n", "end": "(:|(?=[#'\"\\n]))", "beginCaptures": { "1": { @@ -107,7 +107,7 @@ } ] },{ - "begin": "(?x)\n \\s*\n \\b(auto|property|metric|key)\\s+\n (?=\n <\\S+>\\.[[:alpha:]_][[:word:]]* \\s* [[:alpha:]_][[:word:]]* )\n", + "begin": "(?ix)\n \\s*\n \\b(auto|property|metric|key|parameter|param|const|constant|unique)\\s+\n (?=\n <\\S+>\\.[[:alpha:]_][[:word:]]* \\s* [[:alpha:]_][[:word:]]* )\n", "end": "(;)", "beginCaptures": { "1": { @@ -145,10 +145,20 @@ "end": "\\n", "beginCaptures": { "0": { - "name": "punctuation.definition.comment" + "name": "punctuation.definition.comment.hash.trilogy" } }, - "name": "comment.line.hash" + "name": "comment.line.hash.trilogy" + }, + { + "begin": "//", + "end": "\\n", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.double-slash.trilogy" + } + }, + "name": "comment.line.double-slash.trilogy" } ] }, @@ -289,41 +299,65 @@ "patterns": [ { "name": "storage.type.function.trilogy", - "match": "\\b((async\\s+)?\\s*def)\\b" + "match": "(?i)\\b(def)\\b" + }, + { + "name": "keyword.control.import.trilogy", + "match": "(?i)\\b(?> | & | \\| | \\^ | ~) (?# 3)\n\n | (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n | (!= | == | >= | <= | < | >) (?# 5)\n\n | (:=) (?# 6)\n", - "captures": { - "1": { - "name": "keyword.operator.logical.trilogy" - }, - "2": { - "name": "keyword.control.flow.trilogy" - }, - "3": { - "name": "keyword.operator.bitwise.trilogy" + "patterns": [ + { + "name": "keyword.operator.logical.trilogy", + "match": "(?i)\\b(and|or|not|in|is|between|like|ilike)\\b" }, - "4": { - "name": "keyword.operator.arithmetic.trilogy" + { + "name": "keyword.operator.assignment.trilogy", + "comment": "Arrow assignment operators", + "match": "<-|->|::" }, - "5": { - "name": "keyword.operator.comparison.trilogy" + { + "name": "keyword.operator.arithmetic.trilogy", + "match": "\\*\\*|\\*|\\+|-|%|/|\\|\\|" }, - "6": { - "name": "keyword.operator.assignment.trilogy" + { + "name": "keyword.operator.comparison.trilogy", + "match": "!=|==|>=|<=|<>|<|>|=" } - } + ] }, "round-braces": { "begin": "\\(", @@ -900,6 +970,15 @@ { "include": "#string" }, + { + "include": "#lambda-transform" + }, + { + "include": "#hash-type" + }, + { + "include": "#date-part" + }, { "include": "#illegal-operator" }, @@ -950,6 +1029,21 @@ } ] }, + "lambda-transform": { + "comment": "Lambda transform syntax @identifier used in array_transform and array_filter", + "name": "variable.parameter.lambda.trilogy", + "match": "@[[:alpha:]_][[:word:]]*" + }, + "hash-type": { + "comment": "Hash algorithm types", + "name": "constant.other.hash-type.trilogy", + "match": "(?i)\\b(md5|sha1|sha256|sha512)\\b" + }, + "date-part": { + "comment": "Date part constants used in date functions", + "name": "constant.other.date-part.trilogy", + "match": "(?i)\\b(DAY|WEEK|MONTH|QUARTER|YEAR|MINUTE|HOUR|SECOND|DAY_OF_WEEK)\\b" + }, "odd-function-call": { "comment": "A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. \"arr[idx](args)\"\n", "begin": "(?x)\n (?<= \\] | \\) ) \\s*\n (?=\\()\n", From 5c7550005016aacf91ca30211f0a3a22627bd539 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 23 Jan 2026 19:26:44 +0000 Subject: [PATCH 2/2] Bump version to 0.1.27 and add comprehensive syntax highlighting tests - Bump extension version from 0.1.26 to 0.1.27 - Add grammar tests for keywords, concepts, functions, types, operators, literals, comments - Fix sqrt being incorrectly included in chart keywords (it's a math function) - Fix || being incorrectly marked as invalid operator (it's string concatenation) - Add import keyword to statement-keyword patterns Test coverage includes: - Query keywords (select, from, where, having, order, limit, by) - Multi-select keywords (merge, align, derive, rowset, with) - Persist/copy keywords (persist, append, overwrite, into, copy, csv, json, parquet) - Datasource keywords (datasource, grain, address, query, file, etc.) - Chart keywords (chart, line, bar, point, area, etc.) - CASE/WHEN conditionals - Concept types (key, metric, property, parameter, const, unique) - Data types (string, number, int, bigint, float, struct, list, array, map) - Functions (math, string, array, map, aggregate, date, window, constants) - Operators (logical, assignment, arithmetic, comparison) - Literals (true/false/null, lambda transforms, hash types, date parts, numbers, strings) - Comments (# and //) https://claude.ai/code/session_01KJrcKzNukbgAV2RGQtWZxX --- editors/vscode/package.json | 2 +- .../src/test/grammar/comments.test.preql | 7 + .../src/test/grammar/concepts.test.preql | 29 ++++ .../src/test/grammar/functions.test.preql | 145 ++++++++++++++++ .../src/test/grammar/keywords.test.preql | 159 ++++++++++++++++++ .../src/test/grammar/literals.test.preql | 79 +++++++++ .../src/test/grammar/operators.test.preql | 57 +++++++ .../vscode/src/test/grammar/types.test.preql | 37 ++++ .../vscode/syntaxes/trilogy.tmLanguage.json | 10 +- 9 files changed, 517 insertions(+), 8 deletions(-) create mode 100644 editors/vscode/src/test/grammar/comments.test.preql create mode 100644 editors/vscode/src/test/grammar/concepts.test.preql create mode 100644 editors/vscode/src/test/grammar/functions.test.preql create mode 100644 editors/vscode/src/test/grammar/keywords.test.preql create mode 100644 editors/vscode/src/test/grammar/literals.test.preql create mode 100644 editors/vscode/src/test/grammar/operators.test.preql create mode 100644 editors/vscode/src/test/grammar/types.test.preql diff --git a/editors/vscode/package.json b/editors/vscode/package.json index b0e8c65..d6a9de3 100644 --- a/editors/vscode/package.json +++ b/editors/vscode/package.json @@ -4,7 +4,7 @@ "author": "N/A", "repository": "https://github.com/trilogydata/trilogy-language-server", "license": "MIT", - "version": "0.1.26", + "version": "0.1.27", "publisher": "trilogydata", "engines": { "vscode": "^1.73.0" diff --git a/editors/vscode/src/test/grammar/comments.test.preql b/editors/vscode/src/test/grammar/comments.test.preql new file mode 100644 index 0000000..6689d0c --- /dev/null +++ b/editors/vscode/src/test/grammar/comments.test.preql @@ -0,0 +1,7 @@ +# SYNTAX TEST "source.trilogy" "comments syntax highlighting" + +# This is a hash comment +# <---------------------- comment.line.hash.trilogy + +// This is a double-slash comment +# <----------------------------- comment.line.double-slash.trilogy diff --git a/editors/vscode/src/test/grammar/concepts.test.preql b/editors/vscode/src/test/grammar/concepts.test.preql new file mode 100644 index 0000000..2ee1f90 --- /dev/null +++ b/editors/vscode/src/test/grammar/concepts.test.preql @@ -0,0 +1,29 @@ +# SYNTAX TEST "source.trilogy" "concept types syntax highlighting" + +# Test: Concept declaration types (standalone) +KEY +# <-- storage.type.concept.trilogy +METRIC +# <----- storage.type.concept.trilogy +PROPERTY +# <------- storage.type.concept.trilogy +PARAMETER +# <-------- storage.type.concept.trilogy +PARAM +# <---- storage.type.concept.trilogy +CONST +# <---- storage.type.concept.trilogy +CONSTANT +# <------- storage.type.concept.trilogy +UNIQUE +# <----- storage.type.concept.trilogy + +# Test: Case insensitivity +key +# <-- storage.type.concept.trilogy +metric +# <----- storage.type.concept.trilogy +property +# <------- storage.type.concept.trilogy +const +# <---- storage.type.concept.trilogy diff --git a/editors/vscode/src/test/grammar/functions.test.preql b/editors/vscode/src/test/grammar/functions.test.preql new file mode 100644 index 0000000..d638bf7 --- /dev/null +++ b/editors/vscode/src/test/grammar/functions.test.preql @@ -0,0 +1,145 @@ +# SYNTAX TEST "source.trilogy" "functions syntax highlighting" + +# Test: Mathematical functions +ABS +# <-- support.function.math.trilogy +SQRT +# <--- support.function.math.trilogy +ROUND +# <---- support.function.math.trilogy +FLOOR +# <---- support.function.math.trilogy +CEIL +# <--- support.function.math.trilogy +LOG +# <-- support.function.math.trilogy +MOD +# <-- support.function.math.trilogy +RANDOM +# <----- support.function.math.trilogy + +# Test: String functions +UPPER +# <---- support.function.string.trilogy +LOWER +# <---- support.function.string.trilogy +SPLIT +# <---- support.function.string.trilogy +STRPOS +# <----- support.function.string.trilogy +SUBSTRING +# <-------- support.function.string.trilogy +CONTAINS +# <------- support.function.string.trilogy +TRIM +# <--- support.function.string.trilogy +REPLACE +# <------ support.function.string.trilogy +CONCAT +# <----- support.function.string.trilogy +REGEXP_EXTRACT +# <------------ support.function.string.trilogy +REGEXP_CONTAINS +# <------------- support.function.string.trilogy +REGEXP_REPLACE +# <------------ support.function.string.trilogy +HASH +# <--- support.function.string.trilogy + +# Test: Array functions +ARRAY_SUM +# <-------- support.function.array.trilogy +ARRAY_DISTINCT +# <------------- support.function.array.trilogy +ARRAY_TO_STRING +# <-------------- support.function.array.trilogy +ARRAY_SORT +# <--------- support.function.array.trilogy +ARRAY_TRANSFORM +# <-------------- support.function.array.trilogy +ARRAY_FILTER +# <----------- support.function.array.trilogy +GENERATE_ARRAY +# <------------- support.function.array.trilogy +UNNEST +# <----- support.function.array.trilogy +UNION +# <---- support.function.array.trilogy +ARRAY_AGG +# <-------- support.function.array.trilogy + +# Test: Map functions +MAP_KEYS +# <------- support.function.map.trilogy +MAP_VALUES +# <--------- support.function.map.trilogy + +# Test: Generic functions +CAST +# <--- support.function.generic.trilogy +COALESCE +# <------- support.function.generic.trilogy +NULLIF +# <----- support.function.generic.trilogy +LEN +# <-- support.function.generic.trilogy + +# Test: Aggregate functions +COUNT +# <---- support.function.aggregate.trilogy +COUNT_DISTINCT +# <------------- support.function.aggregate.trilogy +SUM +# <-- support.function.aggregate.trilogy +AVG +# <-- support.function.aggregate.trilogy +MAX +# <-- support.function.aggregate.trilogy +MIN +# <-- support.function.aggregate.trilogy +BOOL_AND +# <------- support.function.aggregate.trilogy +BOOL_OR +# <------ support.function.aggregate.trilogy + +# Test: Date/time functions (those that don't overlap with date parts) +DAY_NAME +# <------- support.function.date.trilogy +MONTH_NAME +# <--------- support.function.date.trilogy +FORMAT_TIME +# <---------- support.function.date.trilogy +PARSE_TIME +# <--------- support.function.date.trilogy +DATE_TRUNC +# <--------- support.function.date.trilogy +DATE_TRUNCATE +# <------------ support.function.date.trilogy +DATE_PART +# <-------- support.function.date.trilogy +DATE_ADD +# <------- support.function.date.trilogy +DATE_SUB +# <------- support.function.date.trilogy +DATE_DIFF +# <-------- support.function.date.trilogy +DATE_SPINE +# <--------- support.function.date.trilogy + +# Test: Constant functions +CURRENT_DATE +# <----------- support.function.constant.trilogy +CURRENT_DATETIME +# <--------------- support.function.constant.trilogy +CURRENT_TIMESTAMP +# <---------------- support.function.constant.trilogy + +# Test: Window functions +ROW_NUMBER +# <--------- support.function.window.trilogy +RANK +# <--- support.function.window.trilogy +LAG +# <-- support.function.window.trilogy +LEAD +# <--- support.function.window.trilogy diff --git a/editors/vscode/src/test/grammar/keywords.test.preql b/editors/vscode/src/test/grammar/keywords.test.preql new file mode 100644 index 0000000..16aa7d9 --- /dev/null +++ b/editors/vscode/src/test/grammar/keywords.test.preql @@ -0,0 +1,159 @@ +# SYNTAX TEST "source.trilogy" "keywords syntax highlighting" + +# Test: Query keywords +SELECT +# <----- keyword.control.select.trilogy +FROM +# <--- keyword.control.flow.trilogy +WHERE +# <---- keyword.control.flow.trilogy +HAVING +# <----- keyword.control.flow.trilogy +ORDER +# <---- keyword.control.flow.trilogy +LIMIT +# <---- keyword.control.flow.trilogy +BY +# <- keyword.control.flow.trilogy + +# Test: Multi-select keywords +MERGE +# <---- keyword.control.flow.trilogy +ALIGN +# <---- keyword.control.flow.trilogy +DERIVE +# <----- keyword.control.flow.trilogy +ROWSET +# <----- keyword.control.flow.trilogy +WITH +# <--- keyword.control.flow.trilogy + +# Test: Persist and data operation keywords +PERSIST +# <------ keyword.control.flow.trilogy +APPEND +# <----- keyword.control.flow.trilogy +OVERWRITE +# <-------- keyword.control.flow.trilogy +INTO +# <--- keyword.control.flow.trilogy +COPY +# <--- keyword.control.flow.trilogy +CSV +# <-- keyword.control.flow.trilogy +JSON +# <--- keyword.control.flow.trilogy +PARQUET +# <------ keyword.control.flow.trilogy + +# Test: Datasource keywords +datasource +# <--------- keyword.control.flow.trilogy +GRAIN +# <---- keyword.control.flow.trilogy +ADDRESS +# <------ keyword.control.flow.trilogy +QUERY +# <---- keyword.control.flow.trilogy +FILE +# <--- keyword.control.flow.trilogy +FRESHNESS +# <-------- keyword.control.flow.trilogy +COMPLETE +# <------- keyword.control.flow.trilogy +ROOT +# <--- keyword.control.flow.trilogy +PARTITION +# <-------- keyword.control.flow.trilogy +INCREMENTAL +# <---------- keyword.control.flow.trilogy +STATE +# <---- keyword.control.flow.trilogy +PUBLISHED +# <-------- keyword.control.flow.trilogy +UNPUBLISHED +# <---------- keyword.control.flow.trilogy + +# Test: Statement keywords +RAW_SQL +# <------ keyword.control.flow.trilogy +VALIDATE +# <------- keyword.control.flow.trilogy +MOCK +# <--- keyword.control.flow.trilogy +PUBLISH +# <------ keyword.control.flow.trilogy +UNPUBLISH +# <-------- keyword.control.flow.trilogy +CREATE +# <----- keyword.control.flow.trilogy +SHOW +# <--- keyword.control.flow.trilogy +TYPE +# <--- keyword.control.flow.trilogy +DROP +# <--- keyword.control.flow.trilogy + +# Test: Chart keywords +CHART +# <---- keyword.control.flow.trilogy +LINE +# <--- keyword.control.flow.trilogy +BAR +# <-- keyword.control.flow.trilogy +BARH +# <--- keyword.control.flow.trilogy +POINT +# <---- keyword.control.flow.trilogy +AREA +# <--- keyword.control.flow.trilogy +HEADLINE +# <------- keyword.control.flow.trilogy +DONUT +# <---- keyword.control.flow.trilogy +HEATMAP +# <------ keyword.control.flow.trilogy +BOXPLOT +# <------ keyword.control.flow.trilogy +TREEMAP +# <------ keyword.control.flow.trilogy + +# Test: CASE/WHEN conditional keywords +CASE +# <--- keyword.control.conditional.trilogy +WHEN +# <--- keyword.control.conditional.trilogy +THEN +# <--- keyword.control.conditional.trilogy +ELSE +# <--- keyword.control.conditional.trilogy +END +# <-- keyword.control.conditional.trilogy + +# Test: Filter and window keywords +FILTER +# <----- keyword.control.filter.trilogy +OVER +# <--- keyword.control.filter.trilogy + +# Test: Ordering keywords +ASC +# <-- keyword.other.order.trilogy +DESC +# <--- keyword.other.order.trilogy +NULLS +# <---- keyword.other.order.trilogy +FIRST +# <---- keyword.other.order.trilogy +LAST +# <--- keyword.other.order.trilogy + +# Test: Import keywords +IMPORT +# <----- keyword.control.import.trilogy +AS +# <- keyword.control.import.trilogy + +# Test: Function definition +DEF +# <-- storage.type.function.trilogy diff --git a/editors/vscode/src/test/grammar/literals.test.preql b/editors/vscode/src/test/grammar/literals.test.preql new file mode 100644 index 0000000..9bfba09 --- /dev/null +++ b/editors/vscode/src/test/grammar/literals.test.preql @@ -0,0 +1,79 @@ +# SYNTAX TEST "source.trilogy" "literals and special syntax highlighting" + +# Test: Boolean literals +TRUE +# <--- constant.language.trilogy +FALSE +# <---- constant.language.trilogy +true +# <--- constant.language.trilogy +false +# <---- constant.language.trilogy +True +# <--- constant.language.trilogy +False +# <---- constant.language.trilogy + +# Test: Null literal +NULL +# <--- constant.language.trilogy +null +# <--- constant.language.trilogy +Null +# <--- constant.language.trilogy + +# Test: Lambda transform syntax +@item +# <--- variable.parameter.lambda.trilogy +@element +# <------ variable.parameter.lambda.trilogy +@x +# <- variable.parameter.lambda.trilogy + +# Test: Hash types +MD5 +# <-- constant.other.hash-type.trilogy +SHA1 +# <--- constant.other.hash-type.trilogy +SHA256 +# <----- constant.other.hash-type.trilogy +SHA512 +# <----- constant.other.hash-type.trilogy +md5 +# <-- constant.other.hash-type.trilogy +sha256 +# <----- constant.other.hash-type.trilogy + +# Test: Date parts +DAY +# <-- constant.other.date-part.trilogy +WEEK +# <--- constant.other.date-part.trilogy +MONTH +# <---- constant.other.date-part.trilogy +QUARTER +# <------ constant.other.date-part.trilogy +YEAR +# <--- constant.other.date-part.trilogy +MINUTE +# <----- constant.other.date-part.trilogy +HOUR +# <--- constant.other.date-part.trilogy +SECOND +# <----- constant.other.date-part.trilogy +DAY_OF_WEEK +# <---------- constant.other.date-part.trilogy + +# Test: Numeric literals +123 +# <-- constant.numeric.dec.trilogy +3.14 +# <--- constant.numeric.float.trilogy +42 +# <- constant.numeric.dec.trilogy + +# Test: String literals +"hello world" +# <---------- string.quoted.single.trilogy +'single quoted' +# <------------ string.quoted.single.trilogy diff --git a/editors/vscode/src/test/grammar/operators.test.preql b/editors/vscode/src/test/grammar/operators.test.preql new file mode 100644 index 0000000..c36dabb --- /dev/null +++ b/editors/vscode/src/test/grammar/operators.test.preql @@ -0,0 +1,57 @@ +# SYNTAX TEST "source.trilogy" "operators syntax highlighting" + +# Test: Logical operators +AND +# <-- keyword.operator.logical.trilogy +OR +# <- keyword.operator.logical.trilogy +NOT +# <-- keyword.operator.logical.trilogy +IN +# <- keyword.operator.logical.trilogy +IS +# <- keyword.operator.logical.trilogy +BETWEEN +# <------ keyword.operator.logical.trilogy +LIKE +# <--- keyword.operator.logical.trilogy +ILIKE +# <---- keyword.operator.logical.trilogy + +# Test: Assignment operators +<- +# <- keyword.operator.assignment.trilogy +-> +# <- keyword.operator.assignment.trilogy +:: +# <- keyword.operator.assignment.trilogy + +# Test: Arithmetic operators +x + y +# ^ keyword.operator.arithmetic.trilogy +x - y +# ^ keyword.operator.arithmetic.trilogy +x * y +# ^ keyword.operator.arithmetic.trilogy +x / y +# ^ keyword.operator.arithmetic.trilogy +x % y +# ^ keyword.operator.arithmetic.trilogy +x ** y +# ^^ keyword.operator.arithmetic.trilogy +x || y +# ^^ keyword.operator.arithmetic.trilogy + +# Test: Comparison operators +x != y +# ^^ keyword.operator.comparison.trilogy +x > y +# ^ keyword.operator.comparison.trilogy +x < y +# ^ keyword.operator.comparison.trilogy +x >= y +# ^^ keyword.operator.comparison.trilogy +x <= y +# ^^ keyword.operator.comparison.trilogy +x <> y +# ^^ keyword.operator.comparison.trilogy diff --git a/editors/vscode/src/test/grammar/types.test.preql b/editors/vscode/src/test/grammar/types.test.preql new file mode 100644 index 0000000..59c51d0 --- /dev/null +++ b/editors/vscode/src/test/grammar/types.test.preql @@ -0,0 +1,37 @@ +# SYNTAX TEST "source.trilogy" "data types syntax highlighting" + +# Test: Basic data types (those that don't overlap with functions) +STRING +# <----- support.type.trilogy +NUMBER +# <----- support.type.trilogy +NUMERIC +# <------ support.type.trilogy +INT +# <-- support.type.trilogy +BIGINT +# <----- support.type.trilogy +FLOAT +# <---- support.type.trilogy + +# Test: Complex data types +STRUCT +# <----- support.type.trilogy +LIST +# <--- support.type.trilogy +ARRAY +# <---- support.type.trilogy +MAP +# <-- support.type.trilogy +TUPLE +# <---- support.type.trilogy + +# Test: Case insensitivity +string +# <----- support.type.trilogy +int +# <-- support.type.trilogy +float +# <---- support.type.trilogy +bigint +# <----- support.type.trilogy diff --git a/editors/vscode/syntaxes/trilogy.tmLanguage.json b/editors/vscode/syntaxes/trilogy.tmLanguage.json index f9fb6c2..7f3e761 100644 --- a/editors/vscode/syntaxes/trilogy.tmLanguage.json +++ b/editors/vscode/syntaxes/trilogy.tmLanguage.json @@ -303,7 +303,7 @@ }, { "name": "keyword.control.import.trilogy", - "match": "(?i)\\b(?