forked from puranjayjain/language-liquid
-
Notifications
You must be signed in to change notification settings - Fork 0
/
html (liquid).cson
163 lines (163 loc) · 4.22 KB
/
html (liquid).cson
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
'fileTypes': [
'liquid'
'html'
]
'foldingStartMarker': '(?x){%\\s*(if|unless|for|paginate|capture|form|case|tablerow|raw|comment|block|paginate|collection|grouped|archive|item)[^(%})]+%}'
'foldingStopMarker': '(?x){%\\s*(endif|endunless|endfor|endpaginate|endcapture|endform|endcase|endtablerow|endraw|endcomment|endblock|endpaginate|endcollection|endgrouped|endarchive|enditem)[^(%})]+%}'
'name': 'HTML (Liquid)'
'patterns': [
{
'begin': '({%-*)\\s*comment\\s(-*%})'
'end': '({%-*)\\s*endcomment\\s(-*%})'
'name': 'comment.block.liquid'
}
{
'begin': '({{-*)'
'end': '(-*}})'
'name': 'punctuation.output.liquid'
'patterns': [
{
'include': '#template_var'
}
]
}
{
'begin': '({%-*)'
'end': '(-*%})'
'name': 'punctuation.tag.liquid'
'patterns': [
{
'include': '#template_tag_name'
}
{
'include': '#template_var'
}
]
}
{
'include': 'text.html.basic'
}
]
'repository':
'assign_op':
'patterns': [
{
'match': '/='
'name': 'keyword.operator.assignment.augmented.liquid'
}
]
'logic_expression':
'patterns': [
{
'match': '/='
'name': 'keyword.operator.assignment.augmented.liquid'
}
]
'logic_op':
'patterns': [
{
'match': '\\s+(and|or|not|contains|(\\!\\=|\\=\\=|<\\=|>\\=|<|>)\\s+'
'name': 'keyword.operator.logical.liquid'
}
]
'template_tag_name':
'patterns': [
{
'captures':
'2':
'name': 'entity.name.tag.liquid'
'match': '((?<={%)\\s*(\\w+))'
}
]
'template_var':
'patterns': [
{
'captures':
'2':
'name': 'invalid.illegal.filter.liquid'
'3':
'name': 'invalid.illegal.filter.liquid'
'match': '(\\[)(\\|)(?=[^\\]]*)(?=\\])'
}
{
'match': '(?<=\\s)(\\+|\\-|\\/|\\*)(?=\\s)'
'name': 'invalid.illegal.filter.liquid'
}
{
'match': '(false|true|nil)'
'name': 'constant.language.liquid'
}
{
'captures':
'3':
'name': 'invalid.illegal.operator.liquid'
'match': '(?=if|unless|elsif)\\s*[^%}]+\\s(in)\\s'
}
{
'match': '\\s+(and|or|not|contains|in|by|((\\!|\\=|\\<|\\>)\\=))\\s+'
'name': 'keyword.operator.liquid'
}
{
'captures':
'2':
'name': 'invalid.illegal.assignment.liquid'
'match': '(?<=assign)([^\\=]+)(\\=\\=+)'
}
{
'match': '\\|\\s+(?![\\.0-9])[a-zA-Z0-9_-]+\\:\\s+'
'name': 'support.function.with-args.liquid'
}
{
'match': '\\|\\s+(?![\\.0-9])[a-zA-Z0-9_-]+\\s+'
'name': 'support.function.without-args.liquid'
}
{
'match': '(?<=\\s)(with|offset\\:|limit\\:)(?=\\s)'
'name': 'keyword.control.liquid'
}
{
'captures':
'2':
'name': 'invalid.illegal.argument.liquid'
'match': '(?<=include)(.*)(with\\:|offset|limit)(?=\\s)'
}
{
'match': '(?<=\\s)(\\w+\\:)(?=\\:\\s)'
'name': 'invalid.illegal.liquid'
}
{
'begin': '"'
'end': '"'
'name': 'string.quoted.double.liquid'
}
{
'begin': '\''
'end': '\''
'name': 'string.quoted.single.liquid'
}
{
'match': '([-+]?[0-9]+(\\.[0-9]+)?)'
'name': 'constant.numeric.liquid'
}
{
'match': '\\b(collection|product|linklist|linklists|order|link|customer|customer_address|line_item|shop|collections|page_title|template|image|blog|blogs|cart|pages|theme|themes|variant|items|comment|forloop|settings)\\b'
'name': 'support.class.liquid'
}
{
'match': '\\b(assets|author|body|body_raw|current|date|excerpt_raw|meta|next|pages|parent|posts|previous|site|tags|taxonomy|title|url)\\b'
'name': 'support.class.liquid'
}
{
'match': '((?<=\\w\\:\\s)\\w+)'
'name': 'variable.parameter.liquid'
}
{
'match': '(?<=\\.)\\w+\\b'
'name': 'support.variable.liquid'
}
{
'match': '\\w+'
'name': 'variable.other.liquid'
}
]
'scopeName': 'text.html.liquid'