Warning, /frameworks/syntax-highlighting/data/syntax/doxygen.xml is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language
0003 [
0004     <!ENTITY wordsep "(?:[][,?;()]|\.$|\.?\s|$)">   <!-- things that end a TagWord -->
0005     <!ENTITY sl_word ".*?(?=&wordsep;)">
0006     <!ENTITY ml_word ".*?(?=&wordsep;|\*/)">
0007 ]>
0008 <language name="Doxygen"
0009           version="15"
0010           kateversion="5.0"
0011           section="Markup"
0012           extensions="*.dox;*.doxygen"
0013           mimetype="text/x-doxygen"
0014           author="Dominik Haumann (dhaumann@kde.org)"
0015           license="MIT"
0016           priority="9">
0017   <highlighting>
0018     <!-- NOTE: all tags may begin with a \ or @ char
0019          so if you add/change tags you have to do it twice -->
0020     <!-- NOTE: Tags @code/@endcode, @dot/@enddot, @vermatim/@endverbatim, @msc/@endmsc, @f[/@f]
0021          do not present in keywords due separate handle rules...
0022     -->
0023     <list name="TagOnly">
0024       <item>\arg</item>              <item>@arg</item>
0025       <item>\author</item>           <item>@author</item>
0026       <item>\authors</item>          <item>@authors</item>
0027       <item>\brief</item>            <item>@brief</item>
0028       <item>\callgraph</item>        <item>@callgraph</item>
0029       <item>\callergraph</item>      <item>@callergraph</item>
0030       <item>\date</item>             <item>@date</item>
0031       <item>\deprecated</item>       <item>@deprecated</item>
0032       <item>\details</item>          <item>@details</item>
0033       <item>\docbookonly</item>      <item>@docbookonly</item>
0034       <item>\else</item>             <item>@else</item>
0035       <item>\endcond</item>          <item>@endcond</item>
0036       <item>\enddocbookonly</item>   <item>@enddocbookonly</item>
0037       <item>\endhtmlonly</item>      <item>@endhtmlonly</item>
0038       <item>\endif</item>            <item>@endif</item>
0039       <item>\endinternal</item>      <item>@endinternal</item>
0040       <item>\endlatexonly</item>     <item>@endlatexonly</item>
0041       <item>\endlink</item>          <item>@endlink</item>
0042       <item>\endmanonly</item>       <item>@endmanonly</item>
0043       <item>\endparblock</item>      <item>@endparblock</item>
0044       <item>\endrtfonly</item>       <item>@endrtfonly</item>
0045       <item>\endsecreflist</item>    <item>@endsecreflist</item>
0046       <item>\endxmlonly</item>       <item>@endxmlonly</item>
0047       <item>\hideinitializer</item>  <item>@hideinitializer</item>
0048       <item>\htmlonly</item>         <item>@htmlonly</item>
0049       <!-- TODO @internal is a candidate to be handled separately, cuz may introduce folding region -->
0050       <item>\internal</item>         <item>@internal</item>
0051       <item>\invariant</item>        <item>@invariant</item>
0052       <item>\latexonly</item>        <item>@latexonly</item>
0053       <item>\li</item>               <item>@li</item>
0054       <item>\manonly</item>          <item>@manonly</item>
0055       <item>\n</item>                <item>@n</item>
0056       <item>\nosubgrouping</item>    <item>@nosubgrouping</item>
0057       <item>\only</item>             <item>@only</item>
0058       <item>\parblock</item>         <item>@parblock</item>
0059       <item>\post</item>             <item>@post</item>
0060       <item>\pre</item>              <item>@pre</item>
0061       <item>\private</item>          <item>@pivate</item>
0062       <item>\privatesection</item>   <item>@pivatesection</item>
0063       <item>\protected</item>        <item>@protected</item>
0064       <item>\protectedsection</item> <item>@protectedsection</item>
0065       <item>\public</item>           <item>@public</item>
0066       <item>\publicsection</item>    <item>@publicsection</item>
0067       <item>\pure</item>             <item>@pure</item>
0068       <item>\remark</item>           <item>@remark</item>
0069       <item>\remarks</item>          <item>@remarks</item>
0070       <item>\return</item>           <item>@return</item>
0071       <item>\returns</item>          <item>@returns</item>
0072       <item>\result</item>           <item>@result</item>
0073       <item>\rtfonly</item>          <item>@rtfonly</item>
0074       <item>\sa</item>               <item>@sa</item>
0075       <item>\secreflist</item>       <item>@secreflist</item>
0076       <item>\see</item>              <item>@see</item>
0077       <item>\short</item>            <item>@short</item>
0078       <item>\showinitializer</item>  <item>@showinitializer</item>
0079       <item>\since</item>            <item>@since</item>
0080       <item>\static</item>           <item>@static</item>
0081       <item>\tableofcontents</item>  <item>@tableofcontents</item>
0082       <item>\test</item>             <item>@test</item>
0083       <item>\version</item>          <item>@version</item>
0084       <item>\xmlonly</item>          <item>@xmlonly</item>
0085     </list>
0086 
0087     <list name="TagWord">
0088       <item>\a</item>                <item>@a</item>
0089       <item>\anchor</item>           <item>@anchor</item>
0090       <item>\b</item>                <item>@b</item>
0091       <item>\c</item>                <item>@c</item>
0092       <item>\cite</item>             <item>@cite</item>
0093       <item>\cond</item>             <item>@cond</item>
0094       <item>\copybrief</item>        <item>@copybrief</item>
0095       <item>\copydetails</item>      <item>@copydetails</item>
0096       <item>\copydoc</item>          <item>@copydoc</item>
0097       <item>\def</item>              <item>@def</item>
0098       <item>\dir</item>              <item>@dir</item>
0099       <item>\dontinclude</item>      <item>@dontinclude</item>
0100       <item>\e</item>                <item>@e</item>
0101       <item>\elseif</item>           <item>@elseif</item>
0102       <item>\em</item>               <item>@em</item>
0103       <item>\enum</item>             <item>@enum</item>
0104       <item>\example</item>          <item>@example</item>
0105       <item>\exception</item>        <item>@exception</item>
0106       <item>\exceptions</item>       <item>@exceptions</item>
0107       <item>\extends</item>          <item>@extends</item>
0108       <item>\file</item>             <item>@file</item>
0109       <item>\htmlinclude</item>      <item>@htmlinclude</item>
0110       <item>\idlexcept</item>        <item>@idlexcept</item>
0111       <item>\if</item>               <item>@if</item>
0112       <item>\ifnot</item>            <item>@ifnot</item>
0113       <item>\implements</item>       <item>@implements</item>
0114       <item>\include</item>          <item>@include</item>
0115       <item>\includelineno</item>    <item>@includelineno</item>
0116       <item>\latexinclude</item>     <item>@latexinclude</item>
0117       <item>\link</item>             <item>@link</item>
0118       <item>\memberof</item>         <item>@memberof</item>
0119       <item>\namespace</item>        <item>@namespace</item>
0120       <item>\p</item>                <item>@p</item>
0121       <item>\package</item>          <item>@package</item>
0122       <item>\property</item>         <item>@property</item>
0123       <item>\relatedalso</item>      <item>@relatedalso</item>
0124       <item>\relatesalso</item>      <item>@relatesalso</item>
0125       <item>\related</item>          <item>@related</item>
0126       <item>\relates</item>          <item>@relates</item>
0127       <item>\retval</item>           <item>@retval</item>
0128       <item>\throw</item>            <item>@throw</item>
0129       <item>\throws</item>           <item>@throws</item>
0130       <item>\verbinclude</item>      <item>@verbinclude</item>
0131       <item>\version</item>          <item>@version</item>
0132       <!-- TODO Introduce separate context for @xrefitem? -->
0133       <item>\xrefitem</item>         <item>@xrefitem</item>
0134     </list>
0135     <list name="TagParam">
0136       <item>\param</item>            <item>@param</item>
0137       <!-- TODO @tparam has no optional direction actually! -->
0138       <item>\tparam</item>           <item>@tparam</item>
0139     </list>
0140     <!-- TODO Better (separate?) highlighting for @image required -->
0141     <list name="TagWordWord">
0142       <item>\image</item>            <item>@image</item>
0143     </list>
0144       <!-- TODO @union, @struct, @protocol, @interface, @class, @category
0145            actually takes 3 params, 1 mandatory and 2 optional
0146         -->
0147       <!-- TODO @headerfile actually takes 2 params, where last one is optional -->
0148     <list name="TagWordString">
0149       <item>\addtogroup</item>       <item>@addtogroup</item>
0150       <item>\category</item>         <item>@category</item>
0151       <item>\class</item>            <item>@class</item>
0152       <item>\diafile</item>          <item>@diafile</item>
0153       <item>\dotfile</item>          <item>@dotfile</item>
0154       <item>\defgroup</item>         <item>@defgroup</item>
0155       <item>\interface</item>        <item>@interface</item>
0156       <item>\headerfile</item>       <item>@headerfile</item>
0157       <item>\mscfile</item>          <item>@mscfile</item>
0158       <item>\page</item>             <item>@page</item>
0159       <item>\paragraph</item>        <item>@paragraph</item>
0160       <item>\protocol</item>         <item>@prtocol</item>
0161       <item>\ref</item>              <item>@ref</item>
0162       <item>\section</item>          <item>@section</item>
0163       <item>\snippet</item>          <item>@snippet</item>
0164       <item>\struct</item>           <item>@struct</item>
0165       <item>\subpage</item>          <item>@subpage</item>
0166       <item>\subsection</item>       <item>@subsection</item>
0167       <item>\subsubsection</item>    <item>@subsubsection</item>
0168       <item>\union</item>            <item>@union</item>
0169       <item>\weakgroup</item>        <item>@weakgroup</item>
0170     </list>
0171     <list name="TagString">
0172       <item>\addindex</item>         <item>@addindex</item>
0173       <item>\copyright</item>        <item>@copyright</item>
0174       <item>\fn</item>               <item>@fn</item>
0175       <item>\ingroup</item>          <item>@ingroup</item>
0176       <item>\line</item>             <item>@line</item>
0177       <item>\mainpage</item>         <item>@mainpage</item>
0178       <item>\name</item>             <item>@name</item>
0179       <item>\overload</item>         <item>@overload</item>
0180       <item>\par</item>              <item>@par</item>
0181       <item>\skip</item>             <item>@skip</item>
0182       <item>\skipline</item>         <item>@skipline</item>
0183       <item>\typedef</item>          <item>@typedef</item>
0184       <item>\until</item>            <item>@until</item>
0185       <item>\var</item>              <item>@var</item>
0186       <item>\vhdlflow</item>         <item>@vhdlflow</item>
0187     </list>
0188     <list name="TagEnd">
0189       <item>\endcode</item>          <item>@endcode</item>
0190       <item>\endverbatim</item>      <item>@endverbatim</item>
0191       <item>\endmsc</item>           <item>@endmsc</item>
0192       <item>\enddot</item>           <item>@enddot</item>
0193     </list>
0194     <list name="Note">
0195       <item>\note</item>             <item>@note</item>
0196     </list>
0197     <list name="Warning">
0198       <item>\warning</item>          <item>@warning</item>
0199     </list>
0200     <list name="Attention">
0201       <item>\attention</item>        <item>@attention</item>
0202       <item>\bug</item>              <item>@bug</item>
0203     </list>
0204     <list name="Todo">
0205       <item>\todo</item>             <item>@todo</item>
0206     </list>
0207 
0208     <contexts>
0209     <!--
0210       Different types of recognized command formats:
0211       (w/ params specified according doxygen manual (http://www.stack.nl/~dimitri/doxygen/commands.html))
0212 
0213       @tag                       : TagOnly
0214       @tag <word>                : TagWord
0215       @tag (rest_of_line)        : TagString
0216       @tag {paragraph}           : TagOnly
0217       @tag <word> <word>         : TagWordWord
0218       @tag <word> (rest_of_line) : TagWordString
0219 
0220       TODO Not all commands are handled properly nowadays :( Need few more contexts...
0221     -->
0222       <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
0223         <RegExpr attribute="Comment" context="LineComment" String="//(?:!|(?:/(?=[^/]|$)))&lt;?" />
0224         <RegExpr attribute="Comment" context="BlockComment" String="/\*(?:\*[^*/]|!|[*!]&lt;|\*$)" beginRegion="BlockComment" />
0225         <RegExpr attribute="Region" context="#stay" String="//\s*@\{\s*$" beginRegion="MemberGroup" />
0226         <RegExpr attribute="Region" context="#stay" String="//\s*@\}\s*$"   endRegion="MemberGroup" />
0227         <RegExpr attribute="Region" context="#stay" String="/\*\s*@\{\s*\*/" beginRegion="MemberGroup" />
0228         <RegExpr attribute="Region" context="#stay" String="/\*\s*@\}\s*\*/"   endRegion="MemberGroup" />
0229       </context>
0230       <context attribute="Comment" lineEndContext="#pop" name="LineComment">
0231         <LineContinue attribute="Comment" context="#stay" />
0232         <DetectSpaces />
0233         <IncludeRules context="##Comments" />
0234         <DetectIdentifier />
0235         <AnyChar attribute="Comment" context="SL_StartTag" String="\@" lookAhead="true" />
0236         <DetectChar attribute="Comment" context="SL_StartHTMLTag" char="&lt;" lookAhead="true" />
0237         <DetectChar attribute="Comment" context="Entities" char="&amp;" lookAhead="true" />
0238       </context>
0239       <context attribute="Comment" lineEndContext="#stay" name="BlockComment">
0240         <DetectSpaces />
0241         <IncludeRules context="##Comments" />
0242         <DetectIdentifier />
0243         <AnyChar attribute="Comment" context="ML_StartTag" String="\@" lookAhead="true" />
0244         <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment" />
0245         <DetectChar attribute="Comment" context="ML_StartHTMLTag" char="&lt;" lookAhead="true" />
0246         <DetectChar attribute="Comment" context="Entities" char="&amp;" lookAhead="true" />
0247       </context>
0248 
0249       <!-- NOTE: all contexts beginning with ML_ are for multiline comments
0250                  The following contexts contain a Detect2Chars that looks for a */ sequence
0251                  to end multiline comments. Singleline comments do not have this limitation -
0252                  that's why all contexts are copy&pasted and the line <Detect2Chars ... */> is removed.
0253                  <IncludeRules context="acontext"> could be used instead but it would make context switching
0254                  much more complex and very hard to understand! (But use IncludeRules where the rules don't
0255                  refer to another SL_*/ML_* context, to help maintainability.)
0256       -->
0257       <context attribute="Comment" lineEndContext="#pop" name="ML_StartTag">
0258         <keyword attribute="Tags" context="#pop!ML_TagWord" String="TagWord" />
0259         <keyword attribute="Tags" context="#pop!ML_TagParam" String="TagParam" />
0260         <keyword attribute="Tags" context="#pop!ML_TagWordWord" String="TagWordWord" />
0261         <keyword attribute="Tags" context="#pop!ML_TagString" String="TagString" />
0262         <keyword attribute="Tags" context="#pop!ML_TagWordString" String="TagWordString" />
0263         <WordDetect attribute="Tags" context="#pop!ML_Code" String="\code" beginRegion="VerbatimBlock" />
0264         <WordDetect attribute="Tags" context="#pop!ML_Code" String="@code" beginRegion="VerbatimBlock" />
0265         <WordDetect attribute="Tags" context="#pop!ML_Verbatim" String="\verbatim" beginRegion="VerbatimBlock" />
0266         <WordDetect attribute="Tags" context="#pop!ML_Verbatim" String="@verbatim" beginRegion="VerbatimBlock" />
0267         <WordDetect attribute="Tags" context="#pop!ML_Formula" String="\f[" beginRegion="VerbatimBlock" />
0268         <WordDetect attribute="Tags" context="#pop!ML_Formula" String="@f[" beginRegion="VerbatimBlock" />
0269         <StringDetect attribute="Tags" context="#pop!ML_FormulaShort" String="\f$" beginRegion="VerbatimBlock" />
0270         <StringDetect attribute="Tags" context="#pop!ML_FormulaShort" String="@f$" beginRegion="VerbatimBlock" />
0271         <StringDetect attribute="Tags" context="#pop!ML_FormulaEnv" String="\f{" beginRegion="VerbatimBlock" />
0272         <StringDetect attribute="Tags" context="#pop!ML_FormulaEnv" String="@f{" beginRegion="VerbatimBlock" />
0273         <WordDetect attribute="Tags" context="#pop!ML_Msc" String="\msc" beginRegion="VerbatimBlock" />
0274         <WordDetect attribute="Tags" context="#pop!ML_Msc" String="@msc" beginRegion="VerbatimBlock" />
0275         <WordDetect attribute="Tags" context="#pop!ML_Dot" String="\dot" beginRegion="VerbatimBlock" />
0276         <WordDetect attribute="Tags" context="#pop!ML_Dot" String="@dot" beginRegion="VerbatimBlock" />
0277         <IncludeRules context="Inc_OtherTag" />
0278       </context>
0279       <context attribute="Comment" lineEndContext="#pop" name="ML_StartHTMLTag">
0280         <Detect2Chars attribute="Comment" context="#pop" char="&lt;" char1="&lt;" />
0281         <RegExpr attribute="HTML Tag" context="#pop!ML_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
0282         <StringDetect attribute="HTML Comment" context="#pop!ML_htmlcomment" String="&lt;!--" />
0283         <DetectChar attribute="Comment" context="#pop" char="&lt;" />
0284       </context>
0285 
0286       <!-- tag contexts -->
0287       <context attribute="Comment" lineEndContext="#pop" name="ML_TagWord">
0288         <DetectSpaces />
0289         <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
0290         <keyword attribute="Tags" context="#pop!ML_TagWord" String="TagWord" />
0291         <IncludeRules context="ML_Inc_Word" />
0292       </context>
0293       <context attribute="Comment" lineEndContext="#pop" name="ML_TagParam">
0294         <DetectSpaces />
0295         <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
0296         <StringDetect attribute="Tags" context="#pop!ML_TagWord" String="[in]" />
0297         <StringDetect attribute="Tags" context="#pop!ML_TagWord" String="[out]" />
0298         <StringDetect attribute="Tags" context="#pop!ML_TagWord" String="[in,out]" />
0299         <IncludeRules context="ML_Inc_Word" />
0300       </context>
0301       <context attribute="Comment" lineEndContext="#pop" name="ML_TagWordWord">
0302         <DetectSpaces />
0303         <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
0304         <RegExpr attribute="Word" context="#pop!ML_TagWord" String="&ml_word;" />
0305       </context>
0306       <context attribute="Comment" lineEndContext="#pop" name="ML_TagString">
0307         <DetectSpaces />
0308         <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
0309         <StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="&lt;!--" />
0310         <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
0311         <RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
0312         <RegExpr attribute="Description" context="#stay" String="[&lt;*]?[^&lt;*\s]+" />
0313       </context>
0314       <context attribute="Comment" lineEndContext="#pop" name="ML_TagWordString">
0315         <DetectSpaces />
0316         <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
0317         <IncludeRules context="ML_Inc_Word" />
0318       </context>
0319 
0320       <context name="ML_Inc_Word" attribute="Word" lineEndContext="#pop">
0321         <RegExpr attribute="Word" context="#pop" String="&ml_word;" />
0322       </context>
0323 
0324 
0325       <!-- html contexts -->
0326       <context name="ML_htmltag" attribute="Identifier" lineEndContext="#stay">
0327         <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
0328         <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
0329         <DetectChar attribute="HTML Tag" context="#pop" char="&gt;" />
0330         <DetectSpaces />
0331         <DetectChar attribute="Identifier" context="ML_identifiers" char="=" />
0332       </context>
0333       <context name="ML_htmlcomment" attribute="HTML Comment" lineEndContext="#stay">
0334         <DetectSpaces />
0335         <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
0336         <IncludeRules context="##Comments" />
0337         <DetectIdentifier />
0338         <StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
0339       </context>
0340       <context name="ML_identifiers" attribute="Identifier" lineEndContext="#stay">
0341         <DetectSpaces />
0342         <Detect2Chars attribute="Comment" context="#pop#pop#pop" char="*" char1="/" endRegion="BlockComment" />
0343         <DetectChar attribute="Types" context="ML_types1" char="'" />
0344         <DetectChar attribute="Types" context="ML_types2" char="&quot;" />
0345       </context>
0346       <context name="ML_types1" attribute="Types" lineEndContext="#stay">
0347         <Detect2Chars attribute="Comment" context="#pop#pop#pop#pop" char="*" char1="/" endRegion="BlockComment" />
0348         <DetectChar attribute="Types" context="#pop#pop" char="'" />
0349       </context>
0350       <context name="ML_types2" attribute="Types" lineEndContext="#stay">
0351         <Detect2Chars attribute="Comment" context="#pop#pop#pop#pop" char="*" char1="/" endRegion="BlockComment" />
0352         <DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
0353       </context>
0354 
0355       <context name="ML_FindNextLine" attribute="Comment" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
0356         <DetectSpaces />
0357         <Detect2Chars attribute="Comment" context="#pop!ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
0358         <Detect2Chars attribute="Comment" context="ML_VerbatimPrefix" char="*" char1="*" lookAhead="true" />
0359         <DetectChar attribute="Comment" context="#pop" char="*" />
0360       </context>
0361       <context name="ML_VerbatimPrefix" attribute="Comment" lineEndContext="#stay">
0362         <DetectChar attribute="Comment" context="#pop" char="*" />
0363       </context>
0364 
0365       <context name="ML_End_BlockComment" attribute="Comment" lineEndContext="#stay">
0366         <Detect2Chars attribute="Error" context="#pop#pop#pop" char="*" char1="/" endRegion="BlockComment"/>
0367       </context>
0368 
0369       <context name="ML_Code" attribute="Code" lineEndContext="ML_FindNextLine">
0370         <Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
0371         <WordDetect attribute="Tags" context="#pop" String="\endcode" endRegion="VerbatimBlock" />
0372         <WordDetect attribute="Tags" context="#pop" String="@endcode" endRegion="VerbatimBlock" />
0373       </context>
0374 
0375       <context name="ML_Verbatim" attribute="Verbatim" lineEndContext="ML_FindNextLine">
0376         <Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
0377         <WordDetect attribute="Tags" context="#pop" String="\endverbatim" endRegion="VerbatimBlock" />
0378         <WordDetect attribute="Tags" context="#pop" String="@endverbatim" endRegion="VerbatimBlock" />
0379       </context>
0380 
0381       <context name="ML_Formula" attribute="Formulas" lineEndContext="ML_FindNextLine">
0382         <Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
0383         <StringDetect attribute="Tags" context="#pop" String="\f]" endRegion="VerbatimBlock" />
0384         <StringDetect attribute="Tags" context="#pop" String="@f]" endRegion="VerbatimBlock" />
0385         <!-- TODO: How to force LaTeX math context here?? -->
0386         <!-- <IncludeRules context="##LaTeX" /> -->
0387       </context>
0388 
0389       <context name="ML_FormulaShort" attribute="Formulas" lineEndContext="ML_FindNextLine">
0390         <Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
0391         <StringDetect attribute="Tags" context="#pop" String="\f$" endRegion="VerbatimBlock" />
0392         <StringDetect attribute="Tags" context="#pop" String="@f$" endRegion="VerbatimBlock" />
0393         <!-- TODO: How to force LaTeX math context here?? -->
0394         <!-- <IncludeRules context="##LaTeX" /> -->
0395       </context>
0396 
0397       <context name="ML_FormulaEnv" attribute="Word" lineEndContext="ML_FindNextLine">
0398         <DetectChar attribute="Tags" context="#pop!ML_FormulaEnvStart" char="}" />
0399         <Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
0400       </context>
0401 
0402       <context name="ML_FormulaEnvStart" attribute="Formulas" lineEndContext="ML_FindNextLine" fallthrough="true" fallthroughContext="#pop!ML_FormulaEnvFormula">
0403         <DetectSpaces attribute="Comment" />
0404         <DetectChar attribute="Tags" context="#pop!ML_FormulaEnvFormula" char="{" />
0405         <Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
0406       </context>
0407 
0408       <context name="ML_FormulaEnvFormula" attribute="Formulas" lineEndContext="ML_FindNextLine">
0409         <Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
0410         <StringDetect attribute="Tags" context="#pop" String="\f}" endRegion="VerbatimBlock" />
0411         <StringDetect attribute="Tags" context="#pop" String="@f}" endRegion="VerbatimBlock" />
0412         <!-- TODO: How to force LaTeX math context here?? -->
0413         <!-- <IncludeRules context="##LaTeX" /> -->
0414       </context>
0415 
0416       <context name="ML_Msc" attribute="Message Sequence Chart" lineEndContext="ML_FindNextLine">
0417         <Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
0418         <WordDetect attribute="Tags" context="#pop" String="\endmsc" endRegion="VerbatimBlock" />
0419         <WordDetect attribute="Tags" context="#pop" String="@endmsc" endRegion="VerbatimBlock" />
0420       </context>
0421 
0422       <context name="ML_Dot" attribute="Dot Graph" lineEndContext="ML_FindNextLine">
0423         <Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
0424         <WordDetect attribute="Tags" context="#pop" String="\enddot" endRegion="VerbatimBlock" />
0425         <WordDetect attribute="Tags" context="#pop" String="@enddot" endRegion="VerbatimBlock" />
0426       </context>
0427 
0428       <!-- NOTE: all contexts beginning with SL_ are for singleline comments -->
0429       <context attribute="Comment" lineEndContext="#pop" name="SL_StartTag">
0430         <keyword attribute="Tags" context="#pop!SL_TagWord" String="TagWord" />
0431         <keyword attribute="Tags" context="#pop!SL_TagParam" String="TagParam" />
0432         <keyword attribute="Tags" context="#pop!SL_TagWordWord" String="TagWordWord" />
0433         <keyword attribute="Tags" context="#pop!SL_TagString" String="TagString" />
0434         <keyword attribute="Tags" context="#pop!SL_TagWordString" String="TagWordString" />
0435         <WordDetect attribute="Tags" context="#pop!SL_Code" String="\code" beginRegion="VerbatimBlock" />
0436         <WordDetect attribute="Tags" context="#pop!SL_Code" String="@code" beginRegion="VerbatimBlock" />
0437         <WordDetect attribute="Tags" context="#pop!SL_Verbatim" String="\verbatim" beginRegion="VerbatimBlock" />
0438         <WordDetect attribute="Tags" context="#pop!SL_Verbatim" String="@verbatim" beginRegion="VerbatimBlock" />
0439         <WordDetect attribute="Tags" context="#pop!SL_Formula" String="\f[" beginRegion="VerbatimBlock" />
0440         <WordDetect attribute="Tags" context="#pop!SL_Formula" String="@f[" beginRegion="VerbatimBlock" />
0441         <StringDetect attribute="Tags" context="#pop!SL_FormulaShort" String="\f$" beginRegion="VerbatimBlock" />
0442         <StringDetect attribute="Tags" context="#pop!SL_FormulaShort" String="@f$" beginRegion="VerbatimBlock" />
0443         <StringDetect attribute="Tags" context="#pop!SL_FormulaEnv" String="\f{" beginRegion="VerbatimBlock" />
0444         <StringDetect attribute="Tags" context="#pop!SL_FormulaEnv" String="@f{" beginRegion="VerbatimBlock" />
0445         <WordDetect attribute="Tags" context="#pop!SL_Msc" String="\msc" beginRegion="VerbatimBlock" />
0446         <WordDetect attribute="Tags" context="#pop!SL_Msc" String="@msc" beginRegion="VerbatimBlock" />
0447         <WordDetect attribute="Tags" context="#pop!SL_Dot" String="\dot" beginRegion="VerbatimBlock" />
0448         <WordDetect attribute="Tags" context="#pop!SL_Dot" String="@dot" beginRegion="VerbatimBlock" />
0449         <IncludeRules context="Inc_OtherTag" />
0450       </context>
0451       <context attribute="Comment" lineEndContext="#pop" name="SL_StartHTMLTag">
0452         <Detect2Chars attribute="Comment" context="#pop" char="&lt;" char1="&lt;" />
0453         <RegExpr attribute="HTML Tag" context="#pop!SL_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
0454         <StringDetect attribute="HTML Comment" context="#pop!SL_htmlcomment" String="&lt;!--" />
0455         <DetectChar attribute="Comment" context="#pop" char="&lt;" />
0456       </context>
0457 
0458       <!-- tag contexts -->
0459       <context attribute="Comment" lineEndContext="#pop" name="SL_TagWord">
0460         <DetectSpaces />
0461         <keyword attribute="Tags" context="#pop!SL_TagWord" String="TagWord" />
0462         <IncludeRules context="SL_Inc_Word" />
0463       </context>
0464       <context attribute="Comment" lineEndContext="#pop" name="SL_TagParam">
0465         <DetectSpaces />
0466         <StringDetect attribute="Tags" context="#pop!SL_TagWord" String="[in]" />
0467         <StringDetect attribute="Tags" context="#pop!SL_TagWord" String="[out]" />
0468         <StringDetect attribute="Tags" context="#pop!SL_TagWord" String="[in,out]" />
0469         <IncludeRules context="SL_Inc_Word" />
0470       </context>
0471       <context attribute="Comment" lineEndContext="#pop" name="SL_TagWordWord">
0472         <DetectSpaces />
0473         <RegExpr attribute="Word" context="#pop!SL_TagWord" String="&sl_word;" />
0474       </context>
0475       <context attribute="Comment" lineEndContext="#pop" name="SL_TagString">
0476         <DetectSpaces />
0477         <StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="&lt;!--" />
0478         <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
0479         <RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
0480         <RegExpr attribute="Description" context="#stay" String="&lt;?[^&lt;\s]+" />
0481       </context>
0482       <context attribute="Comment" lineEndContext="#pop" name="SL_TagWordString">
0483         <DetectSpaces />
0484         <IncludeRules context="SL_Inc_Word" />
0485       </context>
0486       <context name="SL_Inc_Word" attribute="Word" lineEndContext="#pop">
0487         <RegExpr attribute="Word" context="#pop" String="&sl_word;" />
0488       </context>
0489 
0490       <!-- html contexts -->
0491       <context name="SL_htmltag" attribute="Identifier" lineEndContext="#pop">
0492         <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
0493         <DetectChar attribute="HTML Tag" context="#pop" char="&gt;" />
0494         <DetectSpaces />
0495         <DetectChar attribute="Identifier" context="SL_identifiers" char="=" />
0496       </context>
0497       <context name="SL_htmlcomment" attribute="HTML Comment" lineEndContext="#pop">
0498         <DetectSpaces />
0499         <IncludeRules context="##Comments" />
0500         <DetectIdentifier />
0501         <StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
0502       </context>
0503       <context name="SL_identifiers" attribute="Identifier" lineEndContext="#pop">
0504         <DetectSpaces />
0505         <DetectChar attribute="Types" context="SL_types1" char="'" />
0506         <DetectChar attribute="Types" context="SL_types2" char="&quot;" />
0507       </context>
0508       <context name="SL_types1" attribute="Types" lineEndContext="#pop">
0509         <DetectChar attribute="Types" context="#pop#pop" char="'" />
0510       </context>
0511       <context name="SL_types2" attribute="Types" lineEndContext="#pop">
0512         <DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
0513       </context>
0514 
0515       <context name="SL_FindNextLine" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop#pop">
0516         <DetectSpaces />
0517         <StringDetect attribute="Comment" context="#pop" String="///" />
0518         <StringDetect attribute="Comment" context="#pop" String="//!" />
0519         <RegExpr attribute="Comment" context="#pop#pop#pop" String="." lookAhead="true" endRegion="VerbatimBlock" />
0520       </context>
0521 
0522       <context name="SL_Code" attribute="Code" lineEndContext="SL_FindNextLine">
0523         <WordDetect attribute="Tags" context="#pop" String="\endcode" endRegion="VerbatimBlock" />
0524         <WordDetect attribute="Tags" context="#pop" String="@endcode" endRegion="VerbatimBlock" />
0525       </context>
0526 
0527       <context name="SL_Verbatim" attribute="Verbatim" lineEndContext="SL_FindNextLine">
0528         <WordDetect attribute="Tags" context="#pop" String="\endverbatim" endRegion="VerbatimBlock" />
0529         <WordDetect attribute="Tags" context="#pop" String="@endverbatim" endRegion="VerbatimBlock" />
0530       </context>
0531 
0532       <context name="SL_Formula" attribute="Formulas" lineEndContext="SL_FindNextLine">
0533         <StringDetect attribute="Tags" context="#pop" String="\f]" endRegion="VerbatimBlock" />
0534         <StringDetect attribute="Tags" context="#pop" String="@f]" endRegion="VerbatimBlock" />
0535         <!-- TODO: How to force LaTeX math context here?? -->
0536         <!-- <IncludeRules context="##LaTeX" /> -->
0537       </context>
0538 
0539       <context name="SL_FormulaShort" attribute="Formulas" lineEndContext="SL_FindNextLine">
0540         <StringDetect attribute="Tags" context="#pop" String="\f$" endRegion="VerbatimBlock" />
0541         <StringDetect attribute="Tags" context="#pop" String="@f$" endRegion="VerbatimBlock" />
0542         <!-- TODO: How to force LaTeX math context here?? -->
0543         <!-- <IncludeRules context="##LaTeX" /> -->
0544       </context>
0545 
0546       <context name="SL_FormulaEnv" attribute="Word" lineEndContext="SL_FindNextLine">
0547         <DetectChar attribute="Tags" context="#pop!SL_FormulaEnvStart" char="}" />
0548       </context>
0549 
0550       <context name="SL_FormulaEnvStart" attribute="Formulas" lineEndContext="SL_FindNextLine" fallthrough="true" fallthroughContext="#pop!SL_FormulaEnvFormula">
0551         <DetectSpaces attribute="Comment" />
0552         <DetectChar attribute="Tags" context="#pop!SL_FormulaEnvFormula" char="{" />
0553       </context>
0554 
0555       <context name="SL_FormulaEnvFormula" attribute="Formulas" lineEndContext="SL_FindNextLine">
0556         <StringDetect attribute="Tags" context="#pop" String="\f}" endRegion="VerbatimBlock" />
0557         <StringDetect attribute="Tags" context="#pop" String="@f}" endRegion="VerbatimBlock" />
0558         <!-- TODO: How to force LaTeX math context here?? -->
0559         <!-- <IncludeRules context="##LaTeX" /> -->
0560       </context>
0561 
0562       <context name="SL_Msc" attribute="Message Sequence Chart" lineEndContext="SL_FindNextLine">
0563         <WordDetect attribute="Tags" context="#pop" String="\endmsc" endRegion="VerbatimBlock" />
0564         <WordDetect attribute="Tags" context="#pop" String="@endmsc" endRegion="VerbatimBlock" />
0565       </context>
0566 
0567       <context name="SL_Dot" attribute="Dot Graph" lineEndContext="SL_FindNextLine">
0568         <WordDetect attribute="Tags" context="#pop" String="\enddot" endRegion="VerbatimBlock" />
0569         <WordDetect attribute="Tags" context="#pop" String="@enddot" endRegion="VerbatimBlock" />
0570       </context>
0571 
0572       <context name="Entities" attribute="Word" lineEndContext="#stay">
0573         <RegExpr attribute="Entities" context="#pop" String="&amp;[A-Za-z]+&#59;" />
0574         <DetectChar attribute="Comment" context="#pop" char="&amp;" />
0575       </context>
0576 
0577       <context name="Inc_OtherTag" attribute="Comment" lineEndContext="#pop">
0578         <keyword attribute="Note" context="#pop" String="Note" />
0579         <keyword attribute="Warning" context="#pop" String="Warning" />
0580         <keyword attribute="Attention" context="#pop" String="Attention" />
0581         <keyword attribute="Todo" context="#pop" String="Todo" />
0582         <keyword attribute="Tags" context="#pop" String="TagOnly" />
0583         <Detect2Chars attribute="Region" context="#pop" char="@" char1="{" beginRegion="Group" />
0584         <Detect2Chars attribute="Region" context="#pop" char="@" char1="}" endRegion="Group" />
0585         <Detect2Chars attribute="Tags" context="#pop!LanguageId" char="\" char1="~" />
0586         <Detect2Chars attribute="Tags" context="#pop!LanguageId" char="@" char1="~" />
0587         <keyword attribute="Error" context="#pop" String="TagEnd" />
0588         <RegExpr attribute="Error" context="#pop" String="[@\\]f[]}]" />
0589         <RegExpr attribute="Escape sequence" context="#pop" String="[@\\](?:[#$%&amp;&lt;&gt;&quot;@\\.~=|]|::|---?)" />
0590         <RegExpr attribute="Custom Tags" context="#pop" String="[@\\](?:[^@\\ \t\*]|\*(?!/))+" />
0591         <AnyChar attribute="Comment" context="#pop" String="\@" />
0592       </context>
0593 
0594       <context name="LanguageId" attribute="Word" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
0595         <DetectIdentifier />
0596       </context>
0597 
0598   </contexts>
0599     <itemDatas>
0600       <itemData name="Normal Text"  defStyleNum="dsNormal" />
0601       <itemData name="Escape sequence" defStyleNum="dsSpecialChar" />
0602       <itemData name="Tags"         defStyleNum="dsAnnotation" bold="1" />
0603       <itemData name="Custom Tags"  defStyleNum="dsAnnotation" />
0604       <itemData name="Word"         defStyleNum="dsCommentVar" bold="1" italic="0" />
0605       <itemData name="HTML Tag"     defStyleNum="dsKeyword" bold="1" italic="0" />
0606       <itemData name="Entities"     defStyleNum="dsOthers" color="#4086C0" bold="1" italic="1" />
0607       <itemData name="Description"  defStyleNum="dsDocumentation" />
0608       <itemData name="Comment"      defStyleNum="dsComment" />
0609       <itemData name="Region"       defStyleNum="dsRegionMarker" />
0610       <itemData name="Identifier"   defStyleNum="dsOthers" />
0611       <itemData name="HTML Comment" defStyleNum="dsComment" />
0612       <itemData name="Types"        defStyleNum="dsDataType" />
0613       <itemData name="Code"         defStyleNum="dsComment" />
0614       <itemData name="Dot Graph"    defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
0615       <itemData name="Formulas"     defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
0616       <itemData name="Message Sequence Chart" defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
0617       <itemData name="Verbatim"     defStyleNum="dsComment" />
0618       <itemData name="Note"         defStyleNum="dsInformation" bold="1" italic="0" />
0619       <itemData name="Warning"      defStyleNum="dsWarning" bold="1" italic="0" />
0620       <itemData name="Attention"    defStyleNum="dsAnnotation" bold="1" italic="0" />
0621       <itemData name="Todo"         defStyleNum="dsAnnotation" bold="1" italic="0" />
0622       <itemData name="Error"        defStyleNum="dsError" />
0623     </itemDatas>
0624   </highlighting>
0625   <general>
0626     <keywords casesensitive="1" weakDeliminator="\$" />
0627   </general>
0628 </language>
0629 <!-- kate: indent-width 2; -->