<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd" [ <!ENTITY wordsep "([][,?;()]|\.$|\.?\s)"> <!-- things that end a TagWord --> ]> <!-- Version 1.01 by Bruno Massa Based on the original Doxygen Highlighter version 1.0 from Copyright 2004 Dominik Haumann (dhdev@gmx.de) Copyright 2007 Matthew Woehlke (mw_triad@users.sourceforge.net) ********************************************************************** * This library 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 of the License, or (at your option) any later version. * * * * This library 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, write to the * * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301, USA. * ********************************************************************** --> <language name="DoxygenLua" version="1.01" kateversion="2.4" section="Markup" extensions="*.dox;*.doxygen" mimetype="text/x-doxygen" author="Bruno Massa (brmassa@gmail.com)" license="LGPL"> <highlighting> <!-- note: all tags may begin with a \ or @ char so if you add/change tags you have to do it twice --> <list name="TagOnly"> <item> \arg </item> <item> \attention </item> <item> \author </item> <item> \callgraph </item> <item> \code </item> <item> \dot </item> <item> \else </item> <item> \endcode </item> <item> \endcond </item> <item> \enddot </item> <item> \endhtmlonly </item> <item> \endif </item> <item> \endlatexonly </item> <item> \endlink </item> <item> \endmanonly </item> <item> \endverbatim </item> <item> \endxmlonly </item> <item> \f[ </item> <item> \f] </item> <item> \f$ </item> <item> \hideinitializer </item> <item> \htmlonly </item> <item> \interface </item> <item> \internal </item> <item> \invariant </item> <item> \~ </item> <item> \@ </item> <item> \$ </item> <item> \\ </item> <item> \# </item> <item> \latexonly </item> <item> \li </item> <item> \manonly </item> <item> \n </item> <item> \nosubgrouping </item> <item> \note </item> <item> \only </item> <item> \post </item> <item> \pre </item> <item> \remarks </item> <item> \return </item> <item> \returns </item> <item> \sa </item> <item> \see </item> <item> \showinitializer </item> <item> \since </item> <item> \test </item> <item> \todo </item> <item> \verbatim </item> <item> \warning </item> <item> \xmlonly </item> <item> @arg </item> <item> @attention </item> <item> @author </item> <item> @callgraph </item> <item> @code </item> <item> @dot </item> <item> @else </item> <item> @endcode </item> <item> @endcond </item> <item> @enddot </item> <item> @endhtmlonly </item> <item> @endif </item> <item> @endlatexonly </item> <item> @endlink </item> <item> @endmanonly </item> <item> @endverbatim </item> <item> @endxmlonly </item> <item> @f[ </item> <item> @f] </item> <item> @f$ </item> <item> @hideinitializer </item> <item> @htmlonly </item> <item> @interface </item> <item> @internal </item> <item> @invariant </item> <item> @~ </item> <item> @@ </item> <item> @$ </item> <item> @\ </item> <item> @# </item> <item> @latexonly </item> <item> @li </item> <item> @manonly </item> <item> @n </item> <item> @nosubgrouping </item> <item> @note </item> <item> @only </item> <item> @post </item> <item> @pre </item> <item> @remarks </item> <item> @return </item> <item> @returns </item> <item> @sa </item> <item> @see </item> <item> @showinitializer </item> <item> @since </item> <item> @test </item> <item> @todo </item> <item> @verbatim </item> <item> @warning </item> <item> @xmlonly </item> </list> <list name="TagWord"> <item> \addtogroup </item> <item> \a </item> <item> \anchor </item> <item> \b </item> <item> \c </item> <item> \class </item> <item> \cond </item> <item> \copydoc </item> <item> \def </item> <item> \dontinclude </item> <item> \dotfile </item> <item> \e </item> <item> \elseif </item> <item> \em </item> <item> \enum </item> <item> \example </item> <item> \exception </item> <item> \exceptions </item> <item> \file </item> <item> \htmlinclude </item> <item> \if </item> <item> \ifnot </item> <item> \include </item> <item> \link </item> <item> \namespace </item> <item> \p </item> <item> \package </item> <item> \ref </item> <item> \relatesalso </item> <item> \relates </item> <item> \retval </item> <item> \throw </item> <item> \throws </item> <item> \verbinclude </item> <item> \version </item> <item> \xrefitem </item> <item> @addtogroup </item> <item> @a </item> <item> @anchor </item> <item> @b </item> <item> @c </item> <item> @class </item> <item> @cond </item> <item> @copydoc </item> <item> @def </item> <item> @dontinclude </item> <item> @dotfile </item> <item> @e </item> <item> @elseif </item> <item> @em </item> <item> @enum </item> <item> @example </item> <item> @exception </item> <item> @exceptions </item> <item> @file </item> <item> @htmlinclude </item> <item> @if </item> <item> @ifnot </item> <item> @include </item> <item> @link </item> <item> @namespace </item> <item> @p </item> <item> @package </item> <item> @ref </item> <item> @relatesalso </item> <item> @relates </item> <item> @retval </item> <item> @throw </item> <item> @throws </item> <item> @verbinclude </item> <item> @version </item> <item> @xrefitem </item> </list> <list name="TagParam"> <item> \param </item> <item> @param </item> </list> <list name="TagWordWord"> <item> \image </item> <item> @image </item> </list> <list name="TagWordString"> <item> \defgroup </item> <item> \page </item> <item> \paragraph </item> <item> \section </item> <item> \struct </item> <item> \subsection </item> <item> \subsubsection </item> <item> \union </item> <item> \weakgroup </item> <item> @defgroup </item> <item> @page </item> <item> @paragraph </item> <item> @section </item> <item> @struct </item> <item> @subsection </item> <item> @subsubsection </item> <item> @union </item> <item> @weakgroup </item> </list> <list name="TagString"> <item> \addindex </item> <item> \brief </item> <item> \bug </item> <item> \date </item> <item> \deprecated </item> <item> \fn </item> <item> \ingroup </item> <item> \line </item> <item> \mainpage </item> <item> \name </item> <item> \overload </item> <item> \par </item> <item> \short </item> <item> \skip </item> <item> \skipline </item> <item> \typedef </item> <item> \until </item> <item> \var </item> <item> @addindex </item> <item> @brief </item> <item> @bug </item> <item> @date </item> <item> @deprecated </item> <item> @fn </item> <item> @ingroup </item> <item> @line </item> <item> @mainpage </item> <item> @name </item> <item> @overload </item> <item> @par </item> <item> @short </item> <item> @skip </item> <item> @skipline </item> <item> @typedef </item> <item> @until </item> <item> @var </item> </list> <contexts> <!-- different formats: @tag : TagOnly @tag rest_of_line : TagString @tag <word> : TagWord @tag <word> <word> : TagWordWord @tag <word> rest_of_line : TagWordString --> <context attribute="Normal Text" lineEndContext="#stay" name="Normal"> <RegExpr attribute="Comment" context="BlockComment" beginRegion="BlockComment" String="--\[(=*)\[" dynamic="true" /> <StringDetect attribute="Comment" context="LineComment" String="--"/> </context> <context attribute="Comment" lineEndContext="#pop" name="LineComment"> <DetectSpaces /> <IncludeRules context="##Alerts" /> <keyword attribute="Tags" context="#stay" String="TagOnly" /> <keyword attribute="Tags" context="SL_TagWord" String="TagWord" /> <keyword attribute="Tags" context="SL_TagParam" String="TagParam" /> <keyword attribute="Tags" context="SL_TagWordWord" String="TagWordWord" /> <keyword attribute="Tags" context="SL_TagString" String="TagString" /> <keyword attribute="Tags" context="SL_TagWordString" String="TagWordString" /> <DetectIdentifier /> <StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="<!--" /> <Detect2Chars attribute="Comment" context="#stay" char="<" char1="<" /> <RegExpr attribute="HTML Tag" context="SL_htmltag" String="<\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" /> </context> <context attribute="Comment" lineEndContext="#stay" name="BlockComment" dynamic="true" > <DetectSpaces /> <RegExpr attribute="Comment" context="#pop" endRegion="BlockComment" String="\]%1\]" dynamic="true" /> <IncludeRules context="##Alerts" /> <Detect2Chars attribute="Region" context="#stay" char="@" char1="{" /> <Detect2Chars attribute="Region" context="#stay" char="@" char1="}" /> <keyword attribute="Tags" context="#stay" String="TagOnly" /> <keyword attribute="Tags" context="ML_TagWord" String="TagWord" /> <keyword attribute="Tags" context="ML_TagParam" String="TagParam" /> <keyword attribute="Tags" context="ML_TagWordWord" String="TagWordWord" /> <keyword attribute="Tags" context="ML_TagString" String="TagString" /> <keyword attribute="Tags" context="ML_TagWordString" String="TagWordString" /> <DetectIdentifier /> <RegExpr attribute="Tags" context="#stay" String="\\(<|>)" /> <Detect2Chars attribute="Comment" context="#stay" char="<" char1="<" /> <RegExpr attribute="HTML Tag" context="ML_htmltag" String="<\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" /> <StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="<!--" /> </context> <!-- NOTE: all contexts beginning with ML_ are for multiline comments The following contexts contain a Detect2Chars that looks for a */ sequence to end multiline comments. Singleline comments do not have this limitation - that's why all contexts are copy&pasted and the line <Detect2Chars ... */> is removed. <IncludeRules context="acontext"> could be used instead but it would make context switching much more complex and very hard to understand! (But use IncludeRules where the rules don't refer to another SL_*/ML_* context, to help maintainability.) --> <!-- tag contexts --> <context attribute="Comment" lineEndContext="#pop" name="ML_TagWord"> <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/> <IncludeRules context="SL_TagWord" /> </context> <context attribute="Comment" lineEndContext="#pop" name="ML_TagParam"> <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/> <DetectSpaces /> <StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[in]" /> <StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[out]" /> <StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[in,out]" /> <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" /> <RegExpr attribute="Word" context="#stay" String="\S" /> </context> <context attribute="Comment" lineEndContext="#pop" name="ML_TagWordWord"> <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/> <DetectSpaces /> <RegExpr attribute="Word" context="ML_Tag2ndWord" String="\S(?=&wordsep;)" /> <RegExpr attribute="Word" context="#stay" String="\S" /> </context> <!-- TODO for kate 2.x, convert references to "#pop!ML_TagWord" --> <context attribute="Comment" lineEndContext="#pop#pop" name="ML_Tag2ndWord"> <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" lookAhead="true"/> <IncludeRules context="SL_Tag2ndWord" /> </context> <context attribute="Comment" lineEndContext="#pop" name="ML_TagString"> <DetectSpaces /> <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/> <StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="<!--" /> <Detect2Chars attribute="Comment" context="#stay" char="<" char1="<" /> <RegExpr attribute="HTML Tag" context="ML_htmltag" String="<\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" /> <RegExpr attribute="Description" context="#stay" String="." /> </context> <context attribute="Comment" lineEndContext="#pop" name="ML_TagWordString"> <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/> <IncludeRules context="SL_TagWordString" /> </context> <!-- html contexts --> <context name="ML_htmltag" attribute="Identifier" lineEndContext="#stay"> <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/> <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1=">" /> <DetectChar attribute="HTML Tag" context="#pop" char=">"/> <RegExpr attribute="Identifier" context="ML_identifiers" String="\s*=\s*"/> </context> <context name="ML_htmlcomment" attribute="HTML Comment" lineEndContext="#stay"> <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/> <IncludeRules context="##Alerts" /> <StringDetect attribute="HTML Comment" context="#pop" String="-->" /> </context> <context name="ML_identifiers" attribute="Identifier" lineEndContext="#stay"> <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/> <RegExpr attribute="String" context="#pop" String="\s*#?[a-zA-Z0-9]*" /> <DetectChar attribute="Types" context="ML_types1" char="'" /> <DetectChar attribute="Types" context="ML_types2" char=""" /> </context> <context name="ML_types1" attribute="Types" lineEndContext="#stay"> <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/> <DetectChar attribute="Types" context="#pop#pop" char="'" /> </context> <context name="ML_types2" attribute="Types" lineEndContext="#stay"> <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/> <DetectChar attribute="Types" context="#pop#pop" char=""" /> </context> <!-- NOTE: all contexts beginning with SL_ are for singleline comments --> <!-- tag contexts --> <context attribute="Comment" lineEndContext="#pop" name="SL_TagWord"> <DetectSpaces /> <keyword attribute="Tags" context="#pop" String="TagWord" lookAhead="true"/> <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" /> <RegExpr attribute="Word" context="#stay" String="\S" /> </context> <context attribute="Comment" lineEndContext="#pop" name="SL_TagParam"> <DetectSpaces /> <StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[in]" /> <StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[out]" /> <StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[in,out]" /> <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" /> <RegExpr attribute="Word" context="#stay" String="\S" /> </context> <context attribute="Comment" lineEndContext="#pop" name="SL_TagWordWord"> <DetectSpaces /> <RegExpr attribute="Word" context="SL_Tag2ndWord" String="\S(?=&wordsep;)" /> <RegExpr attribute="Word" context="#stay" String="\S" /> </context> <!-- TODO for kate 2.x, convert references to "#pop!SL_TagWord" --> <context attribute="Comment" lineEndContext="#pop#pop" name="SL_Tag2ndWord"> <DetectSpaces /> <RegExpr attribute="Word" context="#pop#pop" String="\S(?=&wordsep;)" /> <RegExpr attribute="Word" context="#stay" String="\S" /> </context> <context attribute="Comment" lineEndContext="#pop" name="SL_TagString"> <DetectSpaces /> <StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="<!--" /> <Detect2Chars attribute="Comment" context="#stay" char="<" char1="<" /> <RegExpr attribute="HTML Tag" context="SL_htmltag" String="<\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" /> <RegExpr attribute="Description" context="#stay" String="." /> </context> <context attribute="Comment" lineEndContext="#pop" name="SL_TagWordString"> <DetectSpaces /> <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" /> <RegExpr attribute="Word" context="#stay" String="\S" /> </context> <!-- html contexts --> <context name="SL_htmltag" attribute="Identifier" lineEndContext="#pop"> <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1=">" /> <DetectChar attribute="HTML Tag" context="#pop" char=">"/> <RegExpr attribute="Identifier" context="SL_identifiers" String="\s*=\s*"/> </context> <context name="SL_htmlcomment" attribute="HTML Comment" lineEndContext="#pop"> <IncludeRules context="##Alerts" /> <StringDetect attribute="HTML Comment" context="#pop" String="-->" /> </context> <context name="SL_identifiers" attribute="Identifier" lineEndContext="#pop"> <RegExpr attribute="String" context="#pop" String="\s*#?[a-zA-Z0-9]*" /> <DetectChar attribute="Types" context="SL_types1" char="'" /> <DetectChar attribute="Types" context="SL_types2" char=""" /> </context> <context name="SL_types1" attribute="Types" lineEndContext="#pop"> <DetectChar attribute="Types" context="#pop#pop" char="'" /> </context> <context name="SL_types2" attribute="Types" lineEndContext="#pop"> <DetectChar attribute="Types" context="#pop#pop" char=""" /> </context> </contexts> <itemDatas> <itemData name="Normal Text" defStyleNum="dsNormal" /> <itemData name="Tags" defStyleNum="dsKeyword" color="#ca60ca" selColor="#ffffff" bold="1" italic="0" /> <itemData name="Word" defStyleNum="dsKeyword" color="#0095ff" selColor="#ffffff" bold="1" italic="0" /> <itemData name="HTML Tag" defStyleNum="dsKeyword"/> <itemData name="Description" defStyleNum="dsString" /> <itemData name="Comment" defStyleNum="dsComment"/> <itemData name="Region" defStyleNum="dsRegionMarker" /> <itemData name="Identifier" defStyleNum="dsOthers" /> <itemData name="HTML Comment" defStyleNum="dsComment" /> <itemData name="Types" defStyleNum="dsDataType" /> </itemDatas> </highlighting> <general> <comments> <comment name="singleLine" start="--" /> <comment name="multiLine" start="--[[" end="]]" /> </comments> <keywords casesensitive="0" weakDeliminator="\$~" /> </general> </language>