Skip to content

Commit 158145f

Browse files
committed
Merge pull request #73 from r-stein/mouse_map
Syntax for Mouse Map
2 parents f29ddfd + 1edf35f commit 158145f

File tree

4 files changed

+364
-1
lines changed

4 files changed

+364
-1
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<snippet>
2+
<content><![CDATA[{
3+
"button": "${1:button1}",
4+
"modifiers": ["${2:alt}"$3],
5+
"press_command": "${4:drag_select}",
6+
"command": "${5:foo_bar}"$0
7+
}]]></content>
8+
<tabTrigger>k</tabTrigger>
9+
<description>Creates a Mouse binding</description>
10+
<scope>source.sublimemousemap</scope>
11+
</snippet>

Support/Comments.tmPreferences

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<key>name</key>
66
<string>Comments</string>
77
<key>scope</key>
8-
<string>source.sublime-settings, source.sublimemacro, source.sublimekeymap</string>
8+
<string>source.sublime-settings, source.sublimemacro, source.sublimekeymap, source.sublimemousemap</string>
99
<key>settings</key>
1010
<dict>
1111
<key>shellVariables</key>
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# [PackageDev] target_format: plist, ext: tmLanguage
2+
name: Sublime Text Mouse Map
3+
scopeName: source.sublimemousemap
4+
fileTypes: [sublime-mousemap]
5+
uuid: 4df15ed4-7b42-41e2-849d-14347b8a3816
6+
7+
patterns:
8+
- include: '#multiLineComment'
9+
10+
- include: '#lineComment'
11+
12+
- contentName: meta.mousebinding.collection.sublimemousemap
13+
begin: (^\[)
14+
end: (^\])
15+
patterns:
16+
- include: '#multiLineComment'
17+
- include: '#lineComment'
18+
- include: '#button'
19+
- include: '#modifier'
20+
- include: '#mainKeys'
21+
- include: '#supportKeys'
22+
- include: '#string'
23+
- include: '#numericPrimitives'
24+
25+
repository:
26+
multiLineComment:
27+
name: comment.block.sublimemousemap
28+
begin: /\*
29+
end: \*/
30+
31+
lineComment:
32+
name: comment.line.double-slash.sublimemousemap
33+
match: //.*?$
34+
35+
button:
36+
match: |
37+
(?x)
38+
"(button)":
39+
\s*
40+
"(?:(button[1-5]|scroll_(?:down|up))|(\w*))"
41+
captures:
42+
'1': {name: keyword.other.sublimemousemap}
43+
'2': {name: support.function.button.mouse.sublimemousemap}
44+
'3': {name: string.double.quote.button.mouse.sublimemousemap}
45+
46+
modifier:
47+
begin: '"(modifiers)":\s*\['
48+
beginCaptures:
49+
'1': {name: keyword.other.sublimemousemap}
50+
end: \]
51+
patterns:
52+
- contentName: meta.key.sequence.sublimemousemap
53+
begin: (")
54+
beginCaptures:
55+
'1': {name: punctuation.mousebinding.definition.key.sequence.start.sublimemousemap}
56+
end: (")
57+
endCaptures:
58+
'1': {name: punctuation.mousebinding.definition.key.sequence.end.sublimemousemap}
59+
patterns:
60+
- match: (shift|ctrl|alt|super|button[1-5])
61+
captures:
62+
'1': {name: support.function.modifier.key.sublimemousemap}
63+
- match: (\w+)
64+
captures:
65+
'1': {name: invalid.illegal.modifier.key.sublimemousemap}
66+
- include: '#multiLineComment'
67+
- include: '#lineComment'
68+
69+
mainKeys:
70+
match: '"(command|args|press_command|press_args|button|count)":'
71+
captures:
72+
'1': {name: keyword.other.sublimemousemap}
73+
74+
supportKeys:
75+
match: '"([A-z]+?)":'
76+
captures:
77+
'1': {name: support.function.sublimemousemap}
78+
79+
string:
80+
contentName: string.double.quote.sublimemousemap
81+
begin: '"'
82+
end: '"'
83+
patterns:
84+
- name: constant.character.escape.sublimemousemap
85+
match: \\.
86+
- include: source.sublimesnippetraw
87+
88+
numericPrimitives:
89+
patterns:
90+
- name: constant.numeric.boolean.sublimemousemap
91+
match: \b(?:true|false)\b
92+
- name: constant.numeric.sublimemousemap
93+
match: \d+(?:\.\d+)?
Lines changed: 259 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>fileTypes</key>
6+
<array>
7+
<string>sublime-mousemap</string>
8+
</array>
9+
<key>name</key>
10+
<string>Sublime Text Mouse Map</string>
11+
<key>patterns</key>
12+
<array>
13+
<dict>
14+
<key>include</key>
15+
<string>#multiLineComment</string>
16+
</dict>
17+
<dict>
18+
<key>include</key>
19+
<string>#lineComment</string>
20+
</dict>
21+
<dict>
22+
<key>begin</key>
23+
<string>(^\[)</string>
24+
<key>contentName</key>
25+
<string>meta.mousebinding.collection.sublimemousemap</string>
26+
<key>end</key>
27+
<string>(^\])</string>
28+
<key>patterns</key>
29+
<array>
30+
<dict>
31+
<key>include</key>
32+
<string>#multiLineComment</string>
33+
</dict>
34+
<dict>
35+
<key>include</key>
36+
<string>#lineComment</string>
37+
</dict>
38+
<dict>
39+
<key>include</key>
40+
<string>#button</string>
41+
</dict>
42+
<dict>
43+
<key>include</key>
44+
<string>#modifier</string>
45+
</dict>
46+
<dict>
47+
<key>include</key>
48+
<string>#mainKeys</string>
49+
</dict>
50+
<dict>
51+
<key>include</key>
52+
<string>#supportKeys</string>
53+
</dict>
54+
<dict>
55+
<key>include</key>
56+
<string>#string</string>
57+
</dict>
58+
<dict>
59+
<key>include</key>
60+
<string>#numericPrimitives</string>
61+
</dict>
62+
</array>
63+
</dict>
64+
</array>
65+
<key>repository</key>
66+
<dict>
67+
<key>button</key>
68+
<dict>
69+
<key>captures</key>
70+
<dict>
71+
<key>1</key>
72+
<dict>
73+
<key>name</key>
74+
<string>keyword.other.sublimemousemap</string>
75+
</dict>
76+
<key>2</key>
77+
<dict>
78+
<key>name</key>
79+
<string>support.function.button.mouse.sublimemousemap</string>
80+
</dict>
81+
<key>3</key>
82+
<dict>
83+
<key>name</key>
84+
<string>string.double.quote.button.mouse.sublimemousemap</string>
85+
</dict>
86+
</dict>
87+
<key>match</key>
88+
<string>(?x)
89+
"(button)":
90+
\s*
91+
"(?:(button[1-5]|scroll_(?:down|up))|(\w*))"
92+
</string>
93+
</dict>
94+
<key>lineComment</key>
95+
<dict>
96+
<key>match</key>
97+
<string>//.*?$</string>
98+
<key>name</key>
99+
<string>comment.line.double-slash.sublimemousemap</string>
100+
</dict>
101+
<key>mainKeys</key>
102+
<dict>
103+
<key>captures</key>
104+
<dict>
105+
<key>1</key>
106+
<dict>
107+
<key>name</key>
108+
<string>keyword.other.sublimemousemap</string>
109+
</dict>
110+
</dict>
111+
<key>match</key>
112+
<string>"(command|args|press_command|press_args|button|count)":</string>
113+
</dict>
114+
<key>modifier</key>
115+
<dict>
116+
<key>begin</key>
117+
<string>"(modifiers)":\s*\[</string>
118+
<key>beginCaptures</key>
119+
<dict>
120+
<key>1</key>
121+
<dict>
122+
<key>name</key>
123+
<string>keyword.other.sublimemousemap</string>
124+
</dict>
125+
</dict>
126+
<key>end</key>
127+
<string>\]</string>
128+
<key>patterns</key>
129+
<array>
130+
<dict>
131+
<key>begin</key>
132+
<string>(")</string>
133+
<key>beginCaptures</key>
134+
<dict>
135+
<key>1</key>
136+
<dict>
137+
<key>name</key>
138+
<string>punctuation.mousebinding.definition.key.sequence.start.sublimemousemap</string>
139+
</dict>
140+
</dict>
141+
<key>contentName</key>
142+
<string>meta.key.sequence.sublimemousemap</string>
143+
<key>end</key>
144+
<string>(")</string>
145+
<key>endCaptures</key>
146+
<dict>
147+
<key>1</key>
148+
<dict>
149+
<key>name</key>
150+
<string>punctuation.mousebinding.definition.key.sequence.end.sublimemousemap</string>
151+
</dict>
152+
</dict>
153+
<key>patterns</key>
154+
<array>
155+
<dict>
156+
<key>captures</key>
157+
<dict>
158+
<key>1</key>
159+
<dict>
160+
<key>name</key>
161+
<string>support.function.modifier.key.sublimemousemap</string>
162+
</dict>
163+
</dict>
164+
<key>match</key>
165+
<string>(shift|ctrl|alt|super|button[1-5])</string>
166+
</dict>
167+
<dict>
168+
<key>captures</key>
169+
<dict>
170+
<key>1</key>
171+
<dict>
172+
<key>name</key>
173+
<string>invalid.illegal.modifier.key.sublimemousemap</string>
174+
</dict>
175+
</dict>
176+
<key>match</key>
177+
<string>(\w+)</string>
178+
</dict>
179+
</array>
180+
</dict>
181+
<dict>
182+
<key>include</key>
183+
<string>#multiLineComment</string>
184+
</dict>
185+
<dict>
186+
<key>include</key>
187+
<string>#lineComment</string>
188+
</dict>
189+
</array>
190+
</dict>
191+
<key>multiLineComment</key>
192+
<dict>
193+
<key>begin</key>
194+
<string>/\*</string>
195+
<key>end</key>
196+
<string>\*/</string>
197+
<key>name</key>
198+
<string>comment.block.sublimemousemap</string>
199+
</dict>
200+
<key>numericPrimitives</key>
201+
<dict>
202+
<key>patterns</key>
203+
<array>
204+
<dict>
205+
<key>match</key>
206+
<string>\b(?:true|false)\b</string>
207+
<key>name</key>
208+
<string>constant.numeric.boolean.sublimemousemap</string>
209+
</dict>
210+
<dict>
211+
<key>match</key>
212+
<string>\d+(?:\.\d+)?</string>
213+
<key>name</key>
214+
<string>constant.numeric.sublimemousemap</string>
215+
</dict>
216+
</array>
217+
</dict>
218+
<key>string</key>
219+
<dict>
220+
<key>begin</key>
221+
<string>"</string>
222+
<key>contentName</key>
223+
<string>string.double.quote.sublimemousemap</string>
224+
<key>end</key>
225+
<string>"</string>
226+
<key>patterns</key>
227+
<array>
228+
<dict>
229+
<key>match</key>
230+
<string>\\.</string>
231+
<key>name</key>
232+
<string>constant.character.escape.sublimemousemap</string>
233+
</dict>
234+
<dict>
235+
<key>include</key>
236+
<string>source.sublimesnippetraw</string>
237+
</dict>
238+
</array>
239+
</dict>
240+
<key>supportKeys</key>
241+
<dict>
242+
<key>captures</key>
243+
<dict>
244+
<key>1</key>
245+
<dict>
246+
<key>name</key>
247+
<string>support.function.sublimemousemap</string>
248+
</dict>
249+
</dict>
250+
<key>match</key>
251+
<string>"([A-z]+?)":</string>
252+
</dict>
253+
</dict>
254+
<key>scopeName</key>
255+
<string>source.sublimemousemap</string>
256+
<key>uuid</key>
257+
<string>4df15ed4-7b42-41e2-849d-14347b8a3816</string>
258+
</dict>
259+
</plist>

0 commit comments

Comments
 (0)