%PDF- %PDF-
Direktori : /usr/share/gtksourceview-5/language-specs/ |
Current File : //usr/share/gtksourceview-5/language-specs/makefile.lang |
<?xml version="1.0" encoding="UTF-8"?> <!-- Author: Paolo Borelli <pborelli@katamail.com> Copyright (C) 2005 Paolo Borelli <pborelli@katamail.com> Copyright (C) 2005 Ricardo Lenz GtkSourceView is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. GtkSourceView is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see <http://www.gnu.org/licenses/>. --> <language id="makefile" name="Makefile" version="2.0" _section="Source"> <metadata> <property name="mimetypes">text/x-makefile</property> <property name="globs">[Mm]akefile;GNUmakefile;*.make;*.mak;*.mk</property> <property name="line-comment-start">#</property> <property name="suggested-name">Makefile</property> </metadata> <styles> <style id="variable" name="Variable" map-to="def:type"/> <style id="assignment-rhs" name="Assignment Right Hand Side"/> <style id="assignment-lhs" name="Assignment Left Hand Side"/> <style id="targets" name="targets" map-to="def:function"/> <style id="prereq" name="prereq"/> <style id="command" name="command"/> <style id="trailing-tab" name="Trailing Tab"/> <style id="function" name="function" map-to="def:function"/> <style id="keyword" name="keyword" map-to="def:keyword"/> </styles> <definitions> <replace id="sh:sh" ref="command"/> <replace id="sh:variable" ref="sh-variable"/> <define-regex id="variable">[a-zA-Z_][a-zA-Z0-9_]*</define-regex> <context id="variable-1"> <match>\$\((\%{variable})\)</match> <include> <context sub-pattern="1" style-ref="variable"/> </include> </context> <context id="variable-2"> <match>\$\{(\%{variable})\}</match> <include> <context sub-pattern="1" style-ref="variable"/> </include> </context> <context id="variable"> <include> <context ref="variable-1"/> <context ref="variable-2"/> </include> </context> <context id="sh-variable"> <include> <context ref="variable"/> <context ref="sh:variable" original="true"/> </include> </context> <context id="string"> <include> <!-- skip escaped characters --> <context> <match>\\.</match> </context> <context ref="def:string"/> </include> </context> <context id="assignment-rhs" style-ref="assignment-rhs" end-at-line-end="true"> <start></start> <include> <context ref="def:line-continue"/> <context ref="def:shell-like-comment"/> <context ref="variable"/> <context ref="string"/> <context ref="def:single-quoted-string"/> <context ref="sh:backtick-subshell"/> </include> </context> <context id="command" style-ref="command" extend-parent="false" end-at-line-end="true"> <start></start> <include> <context ref="def:line-continue"/> <context ref="sh:sh" original="true"/> </include> </context> <context id="directives" style-ref="keyword"> <keyword>define</keyword> <keyword>else</keyword> <keyword>endef</keyword> <keyword>endif</keyword> <keyword>if</keyword> <keyword>ifdef</keyword> <keyword>ifeq</keyword> <keyword>ifndef</keyword> <keyword>ifneq</keyword> <keyword>include</keyword> <keyword>override</keyword> <keyword>unexport</keyword> </context> <context id="functions" style-ref="function"> <keyword>addprefix</keyword> <keyword>addsuffix</keyword> <keyword>basename</keyword> <keyword>call</keyword> <keyword>dir</keyword> <keyword>error</keyword> <keyword>filter</keyword> <keyword>filter-out</keyword> <keyword>findstring</keyword> <keyword>firstword</keyword> <keyword>foreach</keyword> <keyword>join</keyword> <keyword>notdir</keyword> <keyword>origin</keyword> <keyword>patsubst</keyword> <keyword>shell</keyword> <keyword>sort</keyword> <keyword>strip</keyword> <keyword>subst</keyword> <keyword>suffix</keyword> <keyword>warning</keyword> <keyword>wildcard</keyword> <keyword>word</keyword> <keyword>words</keyword> </context> <context id="makefile"> <include> <context ref="def:shebang"/> <context ref="def:shell-like-comment"/> <context id="assignment" end-at-line-end="true"> <start>^(\%{variable})\s*[\+\?:]?=</start> <include> <context sub-pattern="1" where="start" style-ref="assignment-lhs"/> <context ref="assignment-rhs"/> </include> </context> <context id="rule"> <start>^([^\t\:][^\:]*)\:</start> <end>^(?!\t)</end> <include> <context sub-pattern="1" where="start" style-ref="targets"/> <context ref="def:shell-like-comment"/> <context ref="directives"/> <context id="prereq" end-at-line-end="true" style-ref="prereq"> <start>(?<=:)(?=.)</start> <end>;</end> <include> <context ref="def:escape"/> <context ref="def:line-continue"/> <context ref="variable"/> <context ref="functions"/> </include> </context> <context id="trailing-tab" style-ref="trailing-tab"> <match>^\t+$</match> </context> <context ref="command"/> </include> </context> <context ref="directives"/> <context ref="functions"/> </include> </context> </definitions> </language>