Ticket #160: 0001-syntax-ebuild.syntax-new-syntax-file-based-on-sh.sy.patch

File 0001-syntax-ebuild.syntax-new-syntax-file-based-on-sh.sy.patch, 11.0 KB (added by slyfox, 15 years ago)
  • syntax/ebuild.syntax

    From 62c9bff011586f7fe06aa7eb65df7fb80091fed0 Mon Sep 17 00:00:00 2001
    From: Sergei Trofimovich <slyfox@inbox.ru>
    Date: Tue, 20 Jan 2009 17:26:35 +0200
    Subject: [PATCH] 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>
    ---
     syntax/ebuild.syntax |  300 +++++++++++++++++++++++++++++++++++++++++++++-----
     1 files changed, 273 insertions(+), 27 deletions(-)
    
    diff --git a/syntax/ebuild.syntax b/syntax/ebuild.syntax
    index bbe0fb5..45c478b 100644
    a b  
     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 
    114context 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 
    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 
    context default 
    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 
    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 
     169wholechars 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 
     249wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_ 
     250 
     251context # \n brown 
     252    spellcheck 
     253 
     254context exclusive whole <<\[\s\]\[-\]\[\s\]\[\\\]EOF EOF green 
     255context exclusive whole <<\[\s\]\[-\]\[\s\]\[\\\]END END green 
    103256 
    104 context # \n red 
     257context ' ' green 
    105258 
    106259context " " 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 
     282context 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 
     311wholechars 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 
     352context inherit \n magenta 
     353    keyword whole inherit yellow