diff --git a/Syntaxes/CoffeeScript (Literate).tmLanguage b/Syntaxes/CoffeeScript (Literate).tmLanguage
index 9e96cd8..67fd1bf 100644
--- a/Syntaxes/CoffeeScript (Literate).tmLanguage
+++ b/Syntaxes/CoffeeScript (Literate).tmLanguage
@@ -558,9 +558,79 @@
1
name
- variable.parameter.function.coffee
+ punctuation.definition.parameters.begin.coffee
2
+
+ patterns
+
+
+ captures
+
+ 1
+
+ name
+ variable.parameter.function.coffee
+
+ 2
+
+ name
+ punctuation.separator.key-value.coffee
+
+ 3
+
+ name
+ string.quoted.double.coffee
+
+ 4
+
+ name
+ punctuation.definition.string.begin.coffee
+
+ 5
+
+ name
+ punctuation.definition.string.end.coffee
+
+ 6
+
+ name
+ string.quoted.single.coffee
+
+ 7
+
+ name
+ punctuation.definition.string.begin.coffee
+
+ 8
+
+ name
+ punctuation.definition.string.end.coffee
+
+
+ match
+ ([^()\s,]+)\s+(=)\s+(?:((")[^"]*("))|((')[^']*(')))
+
+
+ match
+ [^()\s,]+
+ name
+ variable.parameter.function.coffee
+
+
+ match
+ ,
+ name
+ punctuation.separator.arguments.coffee
+
+
+
+ 3
+
+ name
+ punctuation.definition.parameters.begin.coffee
+
+ 4
name
storage.type.function.coffee
@@ -569,7 +639,7 @@
comment
match stuff like: a -> …
match
- (\([^()]*?\))\s*([=-]>)
+ (\()([^()]*?)(\))\s*([=-]>)
name
meta.inline.function.coffee
@@ -846,19 +916,89 @@
name
entity.name.function.coffee
- 4
+ 5
name
- variable.parameter.function.coffee
+ punctuation.definition.parameters.begin.coffee
- 5
+ 6
+
+ patterns
+
+
+ captures
+
+ 1
+
+ name
+ variable.parameter.function.coffee
+
+ 2
+
+ name
+ punctuation.separator.key-value.coffee
+
+ 3
+
+ name
+ string.quoted.double.coffee
+
+ 4
+
+ name
+ punctuation.definition.string.begin.coffee
+
+ 5
+
+ name
+ punctuation.definition.string.end.coffee
+
+ 6
+
+ name
+ string.quoted.single.coffee
+
+ 7
+
+ name
+ punctuation.definition.string.begin.coffee
+
+ 8
+
+ name
+ punctuation.definition.string.end.coffee
+
+
+ match
+ ([^()\s,]+)\s+(=)\s+(?:((")[^"]*("))|((')[^']*(')))
+
+
+ match
+ [^()\s,]+
+ name
+ variable.parameter.function.coffee
+
+
+ match
+ ,
+ name
+ punctuation.separator.arguments.coffee
+
+
+
+ 7
+
+ name
+ punctuation.definition.parameters.begin.coffee
+
+ 8
name
storage.type.function.coffee
match
- (\s*)(?=@?[a-zA-Z\$_])(@?[a-zA-Z\$_](\w|\$|:|\.)*\s*(?=[:=](\s*\(.*\))?\s*((=|-)>)))
+ (\s*)(?=@?[a-zA-Z\$_])(@?[a-zA-Z\$_](\w|\$|:|\.)*\s*(?=[:=](\s*(\()(.*)(\)))?\s*((=|-)>)))
name
meta.function.coffee
diff --git a/Syntaxes/CoffeeScript.tmLanguage b/Syntaxes/CoffeeScript.tmLanguage
index 0556c96..ec69df7 100644
--- a/Syntaxes/CoffeeScript.tmLanguage
+++ b/Syntaxes/CoffeeScript.tmLanguage
@@ -28,9 +28,79 @@
1
name
- variable.parameter.function.coffee
+ punctuation.definition.parameters.begin.coffee
2
+
+ patterns
+
+
+ captures
+
+ 1
+
+ name
+ variable.parameter.function.coffee
+
+ 2
+
+ name
+ punctuation.separator.key-value.coffee
+
+ 3
+
+ name
+ string.quoted.double.coffee
+
+ 4
+
+ name
+ punctuation.definition.string.begin.coffee
+
+ 5
+
+ name
+ punctuation.definition.string.end.coffee
+
+ 6
+
+ name
+ string.quoted.single.coffee
+
+ 7
+
+ name
+ punctuation.definition.string.begin.coffee
+
+ 8
+
+ name
+ punctuation.definition.string.end.coffee
+
+
+ match
+ ([^()\s,]+)\s+(=)\s+(?:((")[^"]*("))|((')[^']*(')))
+
+
+ match
+ [^()\s,]+
+ name
+ variable.parameter.function.coffee
+
+
+ match
+ ,
+ name
+ punctuation.separator.arguments.coffee
+
+
+
+ 3
+
+ name
+ punctuation.definition.parameters.begin.coffee
+
+ 4
name
storage.type.function.coffee
@@ -39,7 +109,7 @@
comment
match stuff like: a -> …
match
- (\([^()]*?\))\s*([=-]>)
+ (\()([^()]*?)(\))\s*([=-]>)
name
meta.inline.function.coffee
@@ -325,12 +395,82 @@
name
entity.name.function.coffee
- 4
+ 5
name
- variable.parameter.function.coffee
+ punctuation.definition.parameters.begin.coffee
- 5
+ 6
+
+ patterns
+
+
+ captures
+
+ 1
+
+ name
+ variable.parameter.function.coffee
+
+ 2
+
+ name
+ punctuation.separator.key-value.coffee
+
+ 3
+
+ name
+ string.quoted.double.coffee
+
+ 4
+
+ name
+ punctuation.definition.string.begin.coffee
+
+ 5
+
+ name
+ punctuation.definition.string.end.coffee
+
+ 6
+
+ name
+ string.quoted.single.coffee
+
+ 7
+
+ name
+ punctuation.definition.string.begin.coffee
+
+ 8
+
+ name
+ punctuation.definition.string.end.coffee
+
+
+ match
+ ([^()\s,]+)\s+(=)\s+(?:((")[^"]*("))|((')[^']*(')))
+
+
+ match
+ [^()\s,]+
+ name
+ variable.parameter.function.coffee
+
+
+ match
+ ,
+ name
+ punctuation.separator.arguments.coffee
+
+
+
+ 7
+
+ name
+ punctuation.definition.parameters.begin.coffee
+
+ 8
name
storage.type.function.coffee
@@ -342,7 +482,7 @@
(?=@?[a-zA-Z\$_])
(
@?[a-zA-Z\$_](\w|\$|:|\.)*\s*
- (?=[:=](\s*\(.*\))?\s*([=-]>))
+ (?=[:=](\s*(\()(.*)(\)))?\s*([=-]>))
)
name