From 1407f3a7f81d59198434d315f2a39c5b0bdd465c Mon Sep 17 00:00:00 2001 From: heyzec <61238538+heyzec@users.noreply.github.com> Date: Sun, 29 Jun 2025 18:07:18 +0800 Subject: [PATCH 1/2] fix: highlighting of function with multiple params --- syntaxes/source.tmLanguage.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntaxes/source.tmLanguage.yaml b/syntaxes/source.tmLanguage.yaml index b80d36d..198ad64 100644 --- a/syntaxes/source.tmLanguage.yaml +++ b/syntaxes/source.tmLanguage.yaml @@ -101,7 +101,7 @@ repository: function-declaration: patterns: - name: meta.function - begin: (function)\s?(\w+)\((\w*)\)\s?\{ + begin: (function)\s?(\w+)\(([\w\s,]*)\)\s?\{ beginCaptures: "1": { name: storage.type.function } "2": { name: entity.name.function } From 74747f6a70500209fb6c785e3bc087f164487504 Mon Sep 17 00:00:00 2001 From: heyzec <61238538+heyzec@users.noreply.github.com> Date: Sun, 29 Jun 2025 18:48:34 +0800 Subject: [PATCH 2/2] fix: nested function call highlighting --- syntaxes/source.tmLanguage.yaml | 10 ++++++---- tests/syntaxes/function-call.test | 28 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 tests/syntaxes/function-call.test diff --git a/syntaxes/source.tmLanguage.yaml b/syntaxes/source.tmLanguage.yaml index 198ad64..109d465 100644 --- a/syntaxes/source.tmLanguage.yaml +++ b/syntaxes/source.tmLanguage.yaml @@ -209,15 +209,17 @@ repository: function-call: patterns: - name: meta.function-call - match: (\w+)\((.+)\) + match: (\w+)(\()([^)]*)(\)) captures: "1": { name: entity.name.function } - "2": { patterns: [{ include: "#expression" }] } + "2": { name: meta.brace.round } + "3": { patterns: [{ include: "#expression" }] } + "4": { name: meta.brace.round } - name: meta.function-call begin: (\w+)(\() beginCaptures: - "0": { name: entity.name.function } - "1": { name: meta.brace.round } + "1": { name: entity.name.function } + "2": { name: meta.brace.round } end: \) endCaptures: "0": { name: meta.brace.round } diff --git a/tests/syntaxes/function-call.test b/tests/syntaxes/function-call.test new file mode 100644 index 0000000..38459bb --- /dev/null +++ b/tests/syntaxes/function-call.test @@ -0,0 +1,28 @@ +// SYNTAX TEST "source.source" "function-call" + +f() +// <- entity.name.function +// <~-- meta.brace.round + +f(1) +// <- entity.name.function +// <~- meta.brace.round +// <~~- constant.numeric.integer.decimal +// ^ meta.brace.round + +f(1, "hello") +// <- entity.name.function +// <~- meta.brace.round +// <~~- constant.numeric.integer.decimal +// ^^^^^^^ string.quoted.double +// ^ meta.brace.round + +f( +// <~- meta.brace.round +) +// <- meta.brace.round + +f( +// <~- meta.brace.round +g()) +// <~--- meta.brace.round