Skip to content

Commit e0eb9ca

Browse files
Sergei Trofimovichslavaz
authored andcommitted
syntax/ebuild.syntax: new syntax file based on sh.syntax
Fixes: * Added proper highlighting for externally visible global .eclass variables (S, SLOT, SRC_URI nad problems before) * Added new .eclass vars and functions * Added more colorful " " highlighting * Added more shell keywords like 'if', 'then', 'else', 'export', 'unset' etc. Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
1 parent ee3ac86 commit e0eb9ca

1 file changed

Lines changed: 273 additions & 27 deletions

File tree

syntax/ebuild.syntax

Lines changed: 273 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,41 @@
1+
# Author : Sergei Trofimovich <slyfox@inbox.ru>
2+
# Language : shell
3+
# Mode : ebuild
4+
#
5+
# sh.syntax is taken as base.
6+
#
7+
# Note : keep in sync default and " " contexts
8+
#
9+
# 'sh.syntax' header:
10+
# # Since I regulary update ths file, please send any comments
11+
# # to: Michelle Konzack <linux4michelle@freenet.de>
12+
# # Last Update: Thu, 01 Jun 2006 22:10:07 +0200
13+
114
context default
2-
keyword linestart DEPEND brightcyan
3-
keyword linestart DESCRIPTION brightcyan
4-
keyword linestart EAPI brightcyan
5-
keyword linestart HOMEPAGE brightcyan
6-
keyword linestart IUSE brightcyan
7-
keyword linestart KEYWORDS brightcyan
8-
keyword linestart LICENSE brightcyan
9-
keyword linestart PDEPEND brightcyan
10-
keyword linestart PROVIDE brightcyan
11-
keyword linestart RDEPEND brightcyan
12-
keyword linestart RESTRICT brightcyan
13-
keyword linestart S brightcyan
14-
keyword linestart SLOT brightcyan
15-
keyword linestart SRC_URI brightcyan
16-
keyword linestart WANT_AUTOCONF brightcyan
17-
keyword linestart WANT_AUTOMAKE brightcyan
15+
#.ebuild specific commands/glo vars
16+
# TODO: 1. split keywords by .eclass'es
17+
# 2. grep all exports and place here
18+
keyword whole DEPEND brightcyan
19+
keyword whole DESCRIPTION brightcyan
20+
keyword whole EAPI brightcyan
21+
keyword whole EGIT_REPO_URI brightcyan
22+
keyword whole ESVN_REPO_URI brightcyan
23+
keyword whole EXPORT_FUNCTIONS brightcyan
24+
keyword whole HOMEPAGE brightcyan
25+
keyword whole IUSE brightcyan
26+
keyword whole KEYWORDS brightcyan
27+
keyword whole LICENSE brightcyan
28+
keyword whole PDEPEND brightcyan
29+
keyword whole PROVIDE brightcyan
30+
keyword whole RDEPEND brightcyan
31+
keyword whole RESTRICT brightcyan
32+
keyword whole S brightcyan
33+
keyword whole SLOT brightcyan
34+
keyword whole SRC_URI brightcyan
35+
keyword whole WANT_AUTOCONF brightcyan
36+
keyword whole WANT_AUTOMAKE brightcyan
37+
keyword DOCS brightcyan
38+
keyword LINGUAS brightcyan
1839

1940
keyword whole _elibtoolize yellow
2041
keyword whole check_KV yellow
@@ -59,13 +80,16 @@ context default
5980
keyword whole ewarn yellow
6081
keyword whole exeinto yellow
6182
keyword whole exeopts yellow
83+
keyword whole enewgroup yellow
84+
keyword whole enewuser yellow
6285
keyword whole fowners yellow
6386
keyword whole fperms yellow
6487
keyword whole has yellow
6588
keyword whole hasq yellow
6689
keyword whole has_version yellow
6790
keyword whole insinto yellow
6891
keyword whole insopts yellow
92+
keyword whole intltoolize yellow
6993
keyword whole into yellow
7094
keyword whole keepdir yellow
7195
keyword whole libopts yellow
@@ -86,22 +110,244 @@ context default
86110
keyword whole use yellow
87111
keyword whole use_enable yellow
88112
keyword whole use_with yellow
113+
#flag-o-matic
114+
keyword whole append-flags yellow
115+
keyword whole replace-flags yellow
116+
keyword whole strip-flags yellow
117+
#git
118+
keyword whole git_src_unpack yellow
119+
#java-ant-2
120+
keyword whole EANT_BUILD_TARGET yellow
121+
#svn
122+
keyword whole subversion_src_unpack yellow
89123

90-
keyword = yellow
91-
keyword : yellow
92-
keyword ${+} brightgreen
124+
####################
125+
# here starts original sh.syntax (with core commands only)
126+
####################
93127

94-
keyword linestart abcdefghijklmnopqrstuvwxyz_\(\) brightmagenta
128+
keyword ! brightred
129+
keyword ;; brightred
130+
keyword \\@ brightred
131+
keyword \\$ brightred
132+
keyword \\\\ brightred
133+
keyword \\" brightred
134+
keyword \\' brightred
135+
keyword \\` brightred
136+
keyword ` brightred
137+
keyword ; brightcyan
138+
keyword $(*) brightgreen
139+
keyword ${*} brightgreen
140+
keyword { brightcyan
141+
keyword } brightcyan
95142

96-
keyword *() brightcyan
143+
keyword whole linestart #!\[\s\]*\n brightcyan black
97144

98-
keyword { magenta
99-
keyword } magenta
145+
keyword $\* brightred
146+
keyword $@ brightred
147+
keyword $# brightred
148+
keyword $? brightred
149+
keyword $- brightred
150+
keyword $$ brightred
151+
keyword $! brightred
152+
keyword $_ brightred
100153

101-
context linestart inherit \n magenta
102-
keyword whole inherit yellow
154+
keyword whole 2>&1 brightred
155+
keyword whole 1>&2 brightred
156+
keyword whole 2> brightred
157+
keyword whole 1> brightred
158+
159+
keyword wholeright $\[0123456789\] brightred
160+
161+
keyword wholeright $+ brightgreen
162+
163+
keyword $ brightgreen
164+
165+
keyword wholeleft linestart function*() brightmagenta
166+
keyword wholeleft linestart function\[\s\]+ brightmagenta
167+
keyword wholeright +() brightmagenta
168+
169+
wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._
170+
171+
keyword whole break yellow
172+
keyword whole case yellow
173+
keyword whole clear yellow
174+
keyword whole continue yellow
175+
keyword whole declare yellow
176+
keyword whole done yellow
177+
keyword whole do yellow
178+
keyword whole elif yellow
179+
keyword whole else yellow
180+
keyword whole esac yellow
181+
keyword whole exit yellow
182+
keyword whole export yellow
183+
keyword whole fi yellow
184+
keyword whole for yellow
185+
keyword whole getopts yellow
186+
keyword whole if yellow
187+
keyword whole in yellow
188+
keyword whole return yellow
189+
keyword whole select yellow
190+
keyword whole shift yellow
191+
keyword whole source yellow
192+
keyword whole then yellow
193+
keyword whole trap yellow
194+
keyword whole until yellow
195+
keyword whole unset yellow
196+
keyword whole wait yellow
197+
keyword whole while yellow
198+
199+
# here goes usable subset for .ebuild commands
200+
keyword whole awk cyan
201+
keyword whole cd cyan
202+
keyword whole chown cyan
203+
keyword whole chmod cyan
204+
keyword whole cmake cyan
205+
keyword whole cp cyan
206+
keyword whole echo cyan
207+
keyword whole egrep cyan
208+
keyword whole fgrep cyan
209+
keyword whole find cyan
210+
keyword whole grep cyan
211+
keyword whole ln cyan
212+
keyword whole make cyan
213+
keyword whole mkdir cyan
214+
keyword whole mknod cyan
215+
keyword whole mv cyan
216+
keyword whole perl cyan
217+
keyword whole pod2man cyan
218+
keyword whole rm cyan
219+
keyword whole sed cyan
220+
keyword whole touch cyan
221+
keyword whole xmkmf cyan
222+
223+
# some interesting files to copy
224+
keyword whole ANNOUNCEMENT white
225+
keyword whole AUTHORS white
226+
keyword whole CHANGES white
227+
keyword whole COPYING white
228+
keyword whole COPYRIGHT white
229+
keyword whole CREDITS white
230+
keyword whole ChangeLog white
231+
keyword whole FAQ white
232+
keyword whole HACKING white
233+
keyword whole INSTALL white
234+
keyword whole LICENSE white
235+
keyword whole NEWS white
236+
keyword whole README white
237+
keyword whole THANKS white
238+
keyword whole TODO white
239+
240+
keyword whole /dev/audio brightblue
241+
keyword whole /dev/dsp brightblue
242+
keyword whole /dev/null brightblue
243+
keyword whole /dev/mixed brightblue
244+
keyword whole /dev/stdin brightblue
245+
keyword whole /dev/stdout brightblue
246+
keyword whole /dev/stderr brightblue
247+
keyword whole /dev/zero brightblue
248+
249+
wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_
250+
251+
context # \n brown
252+
spellcheck
253+
254+
context exclusive whole <<\[\s\]\[-\]\[\s\]\[\\\]EOF EOF green
255+
context exclusive whole <<\[\s\]\[-\]\[\s\]\[\\\]END END green
103256

104-
context # \n red
257+
context ' ' green
105258

106259
context " " green
107-
keyword wholeright ${+} brightgreen
260+
keyword \\* brightgreen
261+
keyword \\@ brightgreen
262+
keyword \\$ brightgreen
263+
keyword \\\\ brightgreen
264+
keyword \\` brightgreen
265+
keyword \\" brightgreen
266+
keyword $(*) brightgreen
267+
keyword ${*} brightgreen
268+
keyword $\* brightred
269+
keyword $@ brightred
270+
keyword $# brightred
271+
keyword $? brightred
272+
keyword $- brightred
273+
keyword $$ brightred
274+
keyword $! brightred
275+
keyword $_ brightred
276+
keyword wholeright $\[0123456789\] brightred
277+
278+
keyword wholeright $+ brightgreen
279+
280+
keyword $ brightgreen
281+
282+
context exclusive ` ` lightgray black
283+
keyword '*' green
284+
keyword " green
285+
keyword \\` green
286+
keyword ; brightcyan
287+
keyword $(*) brightgreen
288+
keyword ${*} brightgreen
289+
keyword { brightcyan
290+
keyword } brightcyan
291+
292+
keyword $\* brightred
293+
keyword $@ brightred
294+
keyword $# brightred
295+
keyword $? brightred
296+
keyword $- brightred
297+
keyword $$ brightred
298+
keyword $! brightred
299+
keyword $_ brightred
300+
301+
keyword whole 2>&1 brightred
302+
keyword whole 2> brightred
303+
keyword whole 1> brightred
304+
305+
keyword wholeright $\[0123456789\] brightred
306+
307+
keyword wholeright $+ brightgreen
308+
309+
keyword $ brightgreen
310+
311+
wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._
312+
313+
keyword whole break yellow
314+
keyword whole case yellow
315+
keyword whole clear yellow
316+
keyword whole continue yellow
317+
keyword whole declare yellow
318+
keyword whole done yellow
319+
keyword whole do yellow
320+
keyword whole elif yellow
321+
keyword whole else yellow
322+
keyword whole esac yellow
323+
keyword whole exit yellow
324+
keyword whole fi yellow
325+
keyword whole for yellow
326+
keyword whole getopts yellow
327+
keyword whole if yellow
328+
keyword whole in yellow
329+
keyword whole return yellow
330+
keyword whole select yellow
331+
keyword whole shift yellow
332+
keyword whole source yellow
333+
keyword whole then yellow
334+
keyword whole trap yellow
335+
keyword whole until yellow
336+
keyword whole wait yellow
337+
keyword whole while yellow
338+
339+
# here goes usable subset for .ebuild commands
340+
keyword whole awk cyan
341+
keyword whole sed cyan
342+
343+
keyword whole /dev/audio brightblue
344+
keyword whole /dev/dsp brightblue
345+
keyword whole /dev/null brightblue
346+
keyword whole /dev/mixed brightblue
347+
keyword whole /dev/stdin brightblue
348+
keyword whole /dev/stdout brightblue
349+
keyword whole /dev/stderr brightblue
350+
keyword whole /dev/zero brightblue
351+
352+
context inherit \n magenta
353+
keyword whole inherit yellow

0 commit comments

Comments
 (0)