diff options
author | Mart Raudsepp <leio@gentoo.org> | 2020-08-31 09:54:10 +0300 |
---|---|---|
committer | Mart Raudsepp <leio@gentoo.org> | 2020-08-31 09:54:22 +0300 |
commit | 06334c394e4dc5827778387e5086813af9527b39 (patch) | |
tree | d81e30f8ad2fa3caf19f86c1471f4b76edee6f89 /x11-libs/gtksourceview/files | |
parent | dev-perl/File-Remove: Bump to version 1.580.0 (diff) | |
download | gentoo-06334c394e4dc5827778387e5086813af9527b39.tar.gz gentoo-06334c394e4dc5827778387e5086813af9527b39.tar.bz2 gentoo-06334c394e4dc5827778387e5086813af9527b39.zip |
x11-libs/gtksourceview: quick-fix gentoo syntax highlighting
This makes it not error and restore some basic highlighting for
ebuild and eclass files, though still does not update to all the
other changes in gtksourceview - for example not all built-in
commands might be updated, as the bare minimum was done, while
a full recheck against upstream sh.lang is really needed.
Bug: https://bugs.gentoo.org/730766
Package-Manager: Portage-2.3.103, Repoman-2.3.20
Signed-off-by: Mart Raudsepp <leio@gentoo.org>
Diffstat (limited to 'x11-libs/gtksourceview/files')
-rw-r--r-- | x11-libs/gtksourceview/files/4.6-gentoo.lang | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/x11-libs/gtksourceview/files/4.6-gentoo.lang b/x11-libs/gtksourceview/files/4.6-gentoo.lang new file mode 100644 index 000000000000..8d539a8a9f3c --- /dev/null +++ b/x11-libs/gtksourceview/files/4.6-gentoo.lang @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + GtkSourceView syntax highlight for Gentoo-specific files + + Originally written for gtksourceview-1.x by: + Leonardo Ferreira Fontenelle <leo.fontenelle@gmail.com>, 2006. + Rewritten for gtksourceview-2 by: + Rene 'Necoro' Neumann <necoro@necoro.net>, 2007 + + Distributed under the same license(s) as gtksourceview. + + TODO: + - do not highlight "enable" in the configure options + - perhaps highlight portage variables and portage functions different + +--> + +<language name="gentoo" id="gentoo" version="2.0" _section="Scripts"> + <metadata> + <property name="globs">*.ebuild;*.eclass</property> + <property name="line-comment-start">#</property> + </metadata> + + <styles> + <style id="variable" _name="Portage variables" map-to="def:builtin" /> + <style id="command" _name="Portage command" map-to="def:type" /> + <style id="function" _name="Portage function" map-to="def:function" /> + <style id="string" _name="String" map-to="def:string" /> + </styles> + + <definitions> + + <!-- rewrite shell string to show highlighted variables --> + <context id="string" style-ref="def:string"> + <start>"</start> + <end>"</end> + <include> + <context ref="def:escape"/> + <context ref="def:line-continue"/> + <context ref="sh:variable"/> + </include> + </context> + + <context id="string-2" style-ref="def:string"> + <start>'</start> + <end>'</end> + <include> + <context ref="def:escape"/> + <context ref="def:line-continue"/> + <context ref="sh:variable"/> + </include> + </context> + + <!-- subprograms: + - $(..) is not supported currently in the normal sh.lang + - `...` is interpreted as string - I think the subshell behavior is more acurate --> + <context id="subprogram"> + <start>\$\(</start> + <end>\)</end> + <include> + <context sub-pattern="0" where="start" style-ref="sh:keyword"/> + <context sub-pattern="0" where="end" style-ref="sh:keyword"/> + <context ref="gentoo"/> + </include> + </context> + + <context id="subprogram-2"> + <start>`</start> + <end>`</end> + <include> + <context sub-pattern="0" where="start" style-ref="sh:keyword"/> + <context sub-pattern="0" where="end" style-ref="sh:keyword"/> + <context ref="gentoo"/> + </include> + </context> + + <!-- portage variables - currently unused --> + <context id="portvars" style-ref="variable"> + <match>\b((ARCH|HOMEPAGE|DESCRIPTION|IUSE|SRC_URI|LICENSE|SLOT|KEYWORDS|FILESDIR|WORKDIR|(P|R)?DEPEND|PROVIDE|DISTDIR|RESTRICT|USERLAND)|(S|D|T|PV|PF|P|PN|A)|C(XX)?FLAGS|LDFLAGS|C(HOST|TARGET|BUILD))\b</match> + </context> + + <!-- portage functions - currently unused --> + <context id="portfuncs" style-ref="function"> + <match>^(src_(unpack|compile|install|test)|pkg_(config|nofetch|setup|(pre|post)(inst|rm)))</match> + </context> + + <!-- extra portage commands --> + <context id="portcmds" style-ref="command"> + <match>\b(e(begin|end|conf|install|make|warn|infon?|error|patch)|die|use(_(with|enable))?|inherit|has|(has|best)_version|unpack|(do|new)(ins|s?bin|doc|lib(|\.so|\.a)|man|info|exe|initd|confd|envd|pam|menu|icon)|do(python|sed|dir|hard|sym|html|jar|mo)|keepdir|prepall(|docs|info|man|strip)|prep(info|lib|lib\.(so|a)|man|strip)|(|doc|ins|exe)into|f(owners|perms)|(exe|ins|dir)opts)\b</match> + </context> + + <context id="built-in-command"> + <include> <!-- do not include "sh:built-in-command" as it is replaced down there - which would lead to an endless loop --> + <context ref="sh:reserved-word" /> + <context ref="sh:let-command" /> + <context ref="portcmds" /> + </include> + </context> + + <!-- gentoo is just a shell with the replacements --> + <replace id="sh:built-in-command" ref="built-in-command" /> + <replace id="sh:backtick-subshell" ref="subprogram-2" /> + <context id="gentoo"> + <include> + <context ref="subprogram"/> + <context ref="sh:sh"/> + </include> + </context> + </definitions> +</language> |