diff --git a/syntaxes/source.tmLanguage.yaml b/syntaxes/source.tmLanguage.yaml index b80d36d..109d465 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 } @@ -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