|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!DOCTYPE language SYSTEM "language.dtd">
|
|
|
|
<!-- Makefile syntaxfile v0.9 by Per Wigren <wigren@home.se> -->
|
|
|
|
<!-- Modified by Joseph Wenninger <jowenn@kde.org> -->
|
|
|
|
<!-- Modified by Rui Santana <santana.rui@gmail.com> -->
|
|
|
|
<!-- v2.0 by Andreas Nordal <andreas.nordal@gmail.com> -->
|
|
|
|
<!-- small priority to allow for example Makefile.cpp to be detected as cpp file -->
|
|
|
|
<!-- v2.1 by Alex Turbov <i.zaufi@gmail.com>
|
|
|
|
improve comments handling -->
|
|
|
|
<language name="Makefile" section="Other"
|
|
|
|
version="2.1" kateversion="2.4"
|
|
|
|
extensions="GNUmakefile;Makefile;makefile;GNUmakefile.*;Makefile.*;makefile.*;*.mk"
|
|
|
|
mimetype="text/x-makefile"
|
|
|
|
author="Per Wigren (wigren@home.se)" license="">
|
|
|
|
<highlighting>
|
|
|
|
<list name = "keywords">
|
|
|
|
<item> include </item>
|
|
|
|
<item> define </item>
|
|
|
|
<item> else </item>
|
|
|
|
<item> endef </item>
|
|
|
|
<item> endif </item>
|
|
|
|
<item> ifdef </item>
|
|
|
|
<item> ifeq </item>
|
|
|
|
<item> ifndef </item>
|
|
|
|
<item> ifneq </item>
|
|
|
|
<item> override </item>
|
|
|
|
</list>
|
|
|
|
<list name = "functions">
|
|
|
|
<item> call </item>
|
|
|
|
<item> subst </item>
|
|
|
|
<item> patsubst </item>
|
|
|
|
<item> strip </item>
|
|
|
|
<item> findstring </item>
|
|
|
|
<item> filter </item>
|
|
|
|
<item> filter-out </item>
|
|
|
|
<item> sort </item>
|
|
|
|
<item> word </item>
|
|
|
|
<item> wordlist </item>
|
|
|
|
<item> words </item>
|
|
|
|
<item> firstword </item>
|
|
|
|
<item> lastword </item>
|
|
|
|
<item> dir </item>
|
|
|
|
<item> notdir </item>
|
|
|
|
<item> suffix </item>
|
|
|
|
<item> basename </item>
|
|
|
|
<item> addsuffix </item>
|
|
|
|
<item> addprefix </item>
|
|
|
|
<item> join </item>
|
|
|
|
<item> wildcard </item>
|
|
|
|
<item> realpath </item>
|
|
|
|
<item> abspath </item>
|
|
|
|
<item> if </item>
|
|
|
|
<item> or </item>
|
|
|
|
<item> and </item>
|
|
|
|
<item> foreach </item>
|
|
|
|
<item> value </item>
|
|
|
|
<item> eval </item>
|
|
|
|
<item> origin </item>
|
|
|
|
<item> flavor </item>
|
|
|
|
<item> shell </item>
|
|
|
|
<item> error </item>
|
|
|
|
<item> warning </item>
|
|
|
|
<item> info </item>
|
|
|
|
</list>
|
|
|
|
|
|
|
|
<contexts>
|
|
|
|
<context name="normal" attribute="Normal" lineEndContext="#stay">
|
|
|
|
<DetectSpaces/>
|
|
|
|
<DetectChar attribute="Comment" context="Comment" char="#"/>
|
|
|
|
<keyword attribute="Keyword" context="#stay" String="keywords"/>
|
|
|
|
<RegExpr attribute="Variable" context="assign" String="[^\s:+?]*\s*(?=:=|=|\+=|\?=)"/>
|
|
|
|
<RegExpr attribute="Section" context="prereq" String="^\.[^.][^:]*:"/>
|
|
|
|
<RegExpr attribute="Target" context="prereq" String="^[^:]*:"/>
|
|
|
|
<DetectIdentifier/>
|
|
|
|
<DetectChar attribute="String" context="string"" char="""/>
|
|
|
|
<DetectChar attribute="String" context="string'" char="'"/>
|
|
|
|
<DetectChar attribute="Operator" context="dollar" char="$"/>
|
|
|
|
<Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
|
|
|
|
<Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
|
|
|
|
<AnyChar attribute="Operator" context="silent" String="@-" firstNonSpace="1"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="prereq" attribute="Prereq" lineEndContext="rule">
|
|
|
|
<DetectSpaces/>
|
|
|
|
<DetectIdentifier/>
|
|
|
|
<LineContinue attribute="Operator" context="#stay"/>
|
|
|
|
<DetectChar attribute="Operator" context="dollar" char="$"/>
|
|
|
|
<Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
|
|
|
|
<Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
|
|
|
|
<DetectChar attribute="Comment" context="Comment" char="#"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="rule" attribute="Normal" lineEndContext="#stay">
|
|
|
|
<LineContinue attribute="Operator" context="#stay"/>
|
|
|
|
<!-- pop if there is a leading non-tab,
|
|
|
|
and in particular, mark leading spaces as errors -->
|
|
|
|
<RegExpr attribute="Error" context="#pop#pop#pop" String="^ +" firstNonSpace="1"/>
|
|
|
|
<RegExpr context="#pop#pop#pop" String="^[^\t]" lookAhead="1" firstNonSpace="1"/>
|
|
|
|
<DetectSpaces/>
|
|
|
|
<DetectIdentifier/>
|
|
|
|
<DetectChar attribute="String" context="string"" char="""/>
|
|
|
|
<DetectChar attribute="String" context="string'" char="'"/>
|
|
|
|
<DetectChar attribute="Operator" context="dollar" char="$"/>
|
|
|
|
<Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
|
|
|
|
<Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
|
|
|
|
<AnyChar attribute="Operator" context="silent" String="@-" firstNonSpace="1"/>
|
|
|
|
<DetectChar attribute="Comment" context="Comment" char="#"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="silent" attribute="Silent" lineEndContext="#pop">
|
|
|
|
<LineContinue attribute="Operator" context="#stay"/>
|
|
|
|
<DetectSpaces/>
|
|
|
|
<DetectIdentifier/>
|
|
|
|
<DetectChar attribute="String" context="string"" char="""/>
|
|
|
|
<DetectChar attribute="String" context="string'" char="'"/>
|
|
|
|
<DetectChar attribute="Operator" context="dollar" char="$"/>
|
|
|
|
<Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
|
|
|
|
<Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
|
|
|
|
<DetectChar attribute="Comment" context="Comment" char="#"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="string"" attribute="String" lineEndContext="#pop">
|
|
|
|
<LineContinue attribute="Operator" context="#stay"/>
|
|
|
|
<DetectChar attribute="String" context="#pop" char="""/>
|
|
|
|
<DetectChar attribute="Operator" context="dollar" char="$"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="string'" attribute="String" lineEndContext="#pop">
|
|
|
|
<LineContinue attribute="String" context="#stay"/>
|
|
|
|
<DetectChar attribute="String" context="#pop" char="'"/>
|
|
|
|
<DetectChar attribute="Operator" context="dollar" char="$"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="assign" attribute="Operator" lineEndContext="#pop">
|
|
|
|
<DetectChar attribute="Operator" context="value" char="="/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="value" attribute="String" lineEndContext="#pop#pop">
|
|
|
|
<LineContinue attribute="Operator"/>
|
|
|
|
<DetectChar attribute="Operator" context="dollar" char="$"/>
|
|
|
|
<RegExpr attribute="Special" context="#pop#pop" String="@[-_\d\w]*@"/>
|
|
|
|
<DetectChar attribute="Operator" char=";" context="#pop#pop"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="dollar" attribute="Operator" lineEndContext="#pop">
|
|
|
|
<DetectChar attribute="Operator" context="call(" char="("/>
|
|
|
|
<DetectChar attribute="Operator" context="call{" char="{"/>
|
|
|
|
<RegExpr attribute="Operator" context="#pop" String="."/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="call(" attribute="Variable" lineEndContext="#stay" fallthroughContext="callVar(" fallthrough="1">
|
|
|
|
<keyword attribute="Keyword" context="callFunc(" String="functions"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="call{" attribute="Variable" lineEndContext="#stay" fallthroughContext="callVar{" fallthrough="1">
|
|
|
|
<keyword attribute="Keyword" context="callFunc{" String="functions"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="callVar(" attribute="Variable" lineEndContext="#stay">
|
|
|
|
<DetectChar attribute="Operator" char=")" context="#pop#pop#pop"/>
|
|
|
|
<DetectChar attribute="Operator" context="dollar" char="$"/>
|
|
|
|
<DetectSpaces attribute="Error" context="#stay"/>
|
|
|
|
<AnyChar attribute="Error" context="#stay" String="=#:"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="callVar{" attribute="Variable" lineEndContext="#stay">
|
|
|
|
<DetectChar attribute="Operator" char="}" context="#pop#pop#pop"/>
|
|
|
|
<DetectChar attribute="Operator" context="dollar" char="$"/>
|
|
|
|
<DetectSpaces attribute="Error" context="#stay"/>
|
|
|
|
<AnyChar attribute="Error" context="#stay" String="=#:"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="callFunc(" attribute="FuncParam" lineEndContext="#stay">
|
|
|
|
<DetectChar attribute="Operator" char=")" context="#pop#pop#pop"/>
|
|
|
|
<DetectChar attribute="Operator" context="dollar" char="$"/>
|
|
|
|
<DetectChar attribute="Keyword" context="#stay" char=","/>
|
|
|
|
<DetectChar attribute="String" context="string'" char="'"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context name="callFunc{" attribute="FuncParam" lineEndContext="#stay">
|
|
|
|
<DetectChar attribute="Operator" char="}" context="#pop#pop#pop"/>
|
|
|
|
<DetectChar attribute="Operator" context="dollar" char="$"/>
|
|
|
|
<DetectChar attribute="Keyword" context="#stay" char=","/>
|
|
|
|
<DetectChar attribute="String" context="string'" char="'"/>
|
|
|
|
</context>
|
|
|
|
|
|
|
|
<context attribute="Comment" lineEndContext="#pop" name="Comment">
|
|
|
|
<LineContinue attribute="Comment" context="#stay" />
|
|
|
|
<IncludeRules context="##Alerts" />
|
|
|
|
<IncludeRules context="##Modelines" />
|
|
|
|
</context>
|
|
|
|
|
|
|
|
</contexts>
|
|
|
|
<itemDatas>
|
|
|
|
<itemData name="Normal" defStyleNum="dsNormal" spellChecking="0"/>
|
|
|
|
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="0"/>
|
|
|
|
<itemData name="Comment" defStyleNum="dsComment"/>
|
|
|
|
<itemData name="String" defStyleNum="dsString" spellChecking="0"/>
|
|
|
|
<itemData name="Variable" defStyleNum="dsDataType" spellChecking="0"/>
|
|
|
|
<itemData name="Target" defStyleNum="dsDecVal" spellChecking="0"/>
|
|
|
|
<itemData name="Section" defStyleNum="dsOthers" spellChecking="0"/>
|
|
|
|
<itemData name="Prereq" defStyleNum="dsDataType" spellChecking="0"/>
|
|
|
|
<itemData name="FuncParam" defStyleNum="dsString" spellChecking="0"/>
|
|
|
|
<itemData name="Operator" defStyleNum="dsChar" spellChecking="0"/>
|
|
|
|
<itemData name="Silent" defStyleNum="dsFunction" spellChecking="0"/>
|
|
|
|
<itemData name="Special" defStyleNum="dsFloat" spellChecking="0"/>
|
|
|
|
<itemData name="Error" defStyleNum="dsError" spellChecking="0"/>
|
|
|
|
</itemDatas>
|
|
|
|
</highlighting>
|
|
|
|
<general>
|
|
|
|
<comments>
|
|
|
|
<comment name = "singleLine" start = "#"/>
|
|
|
|
</comments>
|
|
|
|
<!-- '-' is not a deliminator in function filter-out -->
|
|
|
|
<keywords casesensitive="1" weakDeliminator = "-"/>
|
|
|
|
</general>
|
|
|
|
</language>
|