Skip to content

Commit 70fa4e1

Browse files
committed
Improve highlighting of URL-like YASnippet fields
1 parent 7a99636 commit 70fa4e1

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

grammars/yasnippet.cson

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ repository:
3535
patterns: [{
3636
# Simple keys
3737
name: "meta.directive.snippet-$1.yasnippet"
38-
match: "(?<=[\\s#])(key|name|group|uuid|contributor)\\s*(:)(?:\\s*(\\S.*))?"
38+
match: "(?<=[\\s#])(key|name|group|uuid)\\s*(:)(?:\\s*(\\S.*))?"
3939
captures:
4040
1: name: "variable.assignment.$1.yasnippet"
4141
2: name: "punctuation.separator.dictionary.key-value.colon.yasnippet"
@@ -90,6 +90,40 @@ repository:
9090
1: name: "variable.assignment.$1.yasnippet"
9191
2: name: "punctuation.separator.dictionary.key-value.colon.yasnippet"
9292
3: name: "constant.language.type-specifier.yasnippet"
93+
},{
94+
# Directives that look better rendered with underlines
95+
name: "meta.directive.$1.yasnippet"
96+
match: "(?<=[\\s#])(contributor|atom-description-more-url)\\s*(:)(?:\\s*(\\S.*))"
97+
captures:
98+
1: name: "variable.assignment.$1.yasnippet"
99+
2: name: "punctuation.separator.dictionary.key-value.colon.yasnippet"
100+
3: patterns: [{
101+
# URL
102+
contentName: "constant.other.reference.link"
103+
begin: "(?:^|\\G)\\s*(?=(?:[a-z][-+a-z0-9]*:\\S))"
104+
end: "\\s|$"
105+
},{
106+
# Author <email@address>
107+
match: "([^\\s<>,](?:[^\\s<>,]|\\s[^<>,])*+)(?:\\s+((<)([^@>\\s]+@[^<>@\\s]+)(>)))?"
108+
captures:
109+
1: name: "entity.name.author.yasnippet"
110+
2: name: "meta.email-address.yasnippet"
111+
3: name: "punctuation.definition.bracket.angle.begin.yasnippet"
112+
4: name: "constant.other.reference.link.underline.email.yasnippet"
113+
5: name: "punctuation.definition.bracket.angle.end.yasnippet"
114+
},{
115+
# <email@address>
116+
name: "meta.email-address.yasnippet"
117+
match: "(<)([^@>\\s]+@[^<>@\\s]+)(>)"
118+
captures:
119+
1: name: "punctuation.definition.bracket.angle.begin.yasnippet"
120+
2: name: "constant.other.reference.link.underline.email.yasnippet"
121+
3: name: "punctuation.definition.bracket.angle.end.yasnippet"
122+
},{
123+
# E-mail separators
124+
name: "punctuation.separator.comma.yasnippet"
125+
match: ","
126+
}]
93127
},{
94128
# Miscellaneous directives
95129
name: "meta.directive.other.yasnippet"

0 commit comments

Comments
 (0)