precedence fixes:

- prevent `pat` from matching before `path` in metavariable types
- reduce the precedence of math operators so that assignment operators match correctly
This commit is contained in:
Dusty Pomerleau 2020-11-07 14:56:06 +11:00
parent ed9f8d53bc
commit ffc5f4cf2b

View file

@ -50,7 +50,7 @@
{ {
"comment": "macro type metavariables", "comment": "macro type metavariables",
"name": "meta.macro.metavariable.type.rust", "name": "meta.macro.metavariable.type.rust",
"match": "(\\$)((crate)|([A-Z][A-Za-z0-9_]*))((:)(block|expr|ident|item|lifetime|literal|meta|pat|path|stmt|tt|ty|vis))?", "match": "(\\$)((crate)|([A-Z][A-Za-z0-9_]*))((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?",
"captures": { "captures": {
"1": { "1": {
"name": "keyword.operator.macro.dollar.rust" "name": "keyword.operator.macro.dollar.rust"
@ -77,7 +77,7 @@
{ {
"comment": "macro metavariables", "comment": "macro metavariables",
"name": "meta.macro.metavariable.rust", "name": "meta.macro.metavariable.rust",
"match": "(\\$)([a-z][A-Za-z0-9_]*)((:)(block|expr|ident|item|lifetime|literal|meta|pat|path|stmt|tt|ty|vis))?", "match": "(\\$)([a-z][A-Za-z0-9_]*)((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?",
"captures": { "captures": {
"1": { "1": {
"name": "keyword.operator.macro.dollar.rust" "name": "keyword.operator.macro.dollar.rust"
@ -675,11 +675,6 @@
"name": "storage.modifier.mut.rust", "name": "storage.modifier.mut.rust",
"match": "\\bmut\\b" "match": "\\bmut\\b"
}, },
{
"comment": "math operators",
"name": "keyword.operator.math.rust",
"match": "(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))"
},
{ {
"comment": "logical operators", "comment": "logical operators",
"name": "keyword.operator.logical.rust", "name": "keyword.operator.logical.rust",
@ -705,6 +700,11 @@
"name": "keyword.operator.comparison.rust", "name": "keyword.operator.comparison.rust",
"match": "(=(=)?(?!>)|!=|<=|(?<!=)>=)" "match": "(=(=)?(?!>)|!=|<=|(?<!=)>=)"
}, },
{
"comment": "math operators",
"name": "keyword.operator.math.rust",
"match": "(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))"
},
{ {
"comment": "less than, greater than (special case)", "comment": "less than, greater than (special case)",
"match": "(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))", "match": "(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))",