From b589eac40d2d83ef5a5eb224229161fc177d7fe3 Mon Sep 17 00:00:00 2001 From: Dominik Nakamura Date: Fri, 2 Feb 2024 14:23:40 +0900 Subject: [PATCH] fix: expand tmLanguage regexes for tuples and arrays The tuples and arrays were correctly parsed for individual types, but the field regex didn't include possible token which made it fail to include those types in them matching. --- book/src/guide/examples/01.mabo | 7 ++++++- vscode-extension/syntaxes/mabo.tmLanguage.json | 2 +- vscode-extension/syntaxes/mabo.tmLanguage.yaml | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/book/src/guide/examples/01.mabo b/book/src/guide/examples/01.mabo index 0bae770..1b47c22 100644 --- a/book/src/guide/examples/01.mabo +++ b/book/src/guide/examples/01.mabo @@ -1,4 +1,5 @@ use other::schema::DateTime; + struct User { first_name: string @1, last_name: string @2, @@ -6,6 +7,11 @@ struct User { gender: option @4, /// Latitude and longitude. current_location: (f64, f64) @5, + /// Previous three locations. + /// + /// Will be `(0.0, 0.0)` if there are less than three + /// history entries. + location_history: [(f64, f64); 3] @6, } mod user { @@ -15,4 +21,3 @@ mod user { NonBinary(string @1) @3, } } - diff --git a/vscode-extension/syntaxes/mabo.tmLanguage.json b/vscode-extension/syntaxes/mabo.tmLanguage.json index 75568eb..bc71952 100644 --- a/vscode-extension/syntaxes/mabo.tmLanguage.json +++ b/vscode-extension/syntaxes/mabo.tmLanguage.json @@ -277,7 +277,7 @@ "fieldNamed": { "patterns": [ { - "match": "\\s*([a-zA-Z0-9_]+)\\s*(:)\\s*(&?[a-zA-Z0-9_]+(?:<.+>)?)\\s*(@\\d+)?(,)?", + "match": "\\s*([a-zA-Z0-9_]+)\\s*(:)\\s*(&?[a-zA-Z0-9_,;\\[\\]\\(\\)\\s]+(?:<.+>)?)\\s*(@\\d+)?(,)?", "captures": { "1": { "name": "variable.language.mabo variable.other.mabo" diff --git a/vscode-extension/syntaxes/mabo.tmLanguage.yaml b/vscode-extension/syntaxes/mabo.tmLanguage.yaml index b9b1de8..4bd586d 100644 --- a/vscode-extension/syntaxes/mabo.tmLanguage.yaml +++ b/vscode-extension/syntaxes/mabo.tmLanguage.yaml @@ -118,7 +118,7 @@ repository: - include: "#fieldNamed" fieldNamed: patterns: - - match: \s*([a-zA-Z0-9_]+)\s*(:)\s*(&?[a-zA-Z0-9_]+(?:<.+>)?)\s*(@\d+)?(,)? + - match: \s*([a-zA-Z0-9_]+)\s*(:)\s*(&?[a-zA-Z0-9_,;\[\]\(\)\s]+(?:<.+>)?)\s*(@\d+)?(,)? captures: "1": { name: variable.language.mabo variable.other.mabo } "2": { name: punctuation.colon.mabo }