PageRenderTime 47ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/jEdit/tags/jedit-4-2-pre14/modes/pike.xml

#
XML | 242 lines | 175 code | 28 blank | 39 comment | 0 complexity | f09a14d8abc0c9a0bb32ff474278b718 MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
  1. <?xml version="1.0"?>
  2. <!-- Pike mode, contributed by
  3. Marco G?tze, <gomar@gmx.net> -->
  4. <!-- Small fixes and autodoc support contributed by
  5. Peter Lundqvist <peterl@update.uu.se> -->
  6. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  7. <MODE>
  8. <PROPS>
  9. <PROPERTY NAME="commentStart" VALUE="/*"/>
  10. <PROPERTY NAME="commentEnd" VALUE="*/"/>
  11. <PROPERTY NAME="lineComment" VALUE="//"/>
  12. <PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*`"/>
  13. <!-- Auto indent -->
  14. <PROPERTY NAME="indentOpenBrackets" VALUE="{"/>
  15. <PROPERTY NAME="indentCloseBrackets" VALUE="}"/>
  16. <PROPERTY NAME="indentNextLine" VALUE="\s*(((if|(for(each)?)|while|catch|gauge)\s*\(|(do|else)\s*|else\s+if\s*\()[^{;]*)"/>
  17. <!-- set this to 'true' if you want to use GNU coding style -->
  18. <PROPERTY NAME="doubleBracketIndent" VALUE="false"/>
  19. <PROPERTY NAME="lineUpClosingBracket" VALUE="true"/>
  20. </PROPS>
  21. <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="(0x[[:xdigit:]]+|[[:digit]]+|0[bB][01]+)[lLdDfF]?">
  22. <!-- comments -->
  23. <SPAN TYPE="COMMENT1" DELEGATE="COMMENT">
  24. <BEGIN>/*</BEGIN>
  25. <END>*/</END>
  26. </SPAN>
  27. <SEQ TYPE="INVALID">*/</SEQ>
  28. <!-- Autodoc comment -->
  29. <EOL_SPAN TYPE="COMMENT1" DELEGATE="AUTODOC">//!</EOL_SPAN>
  30. <!-- C++ line comment -->
  31. <EOL_SPAN TYPE="COMMENT1" DELEGATE="COMMENT">//</EOL_SPAN>
  32. <!-- string, char literals -->
  33. <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" DELEGATE="STRING_LITERAL">
  34. <BEGIN>"</BEGIN>
  35. <END>"</END>
  36. </SPAN>
  37. <SPAN TYPE="LITERAL1" DELEGATE="STRING_LITERAL">
  38. <BEGIN>#"</BEGIN>
  39. <END>"</END>
  40. </SPAN>
  41. <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
  42. <BEGIN>'</BEGIN>
  43. <END>'</END>
  44. </SPAN>
  45. <!-- preprocessor statements -->
  46. <SEQ_REGEXP TYPE="KEYWORD2" HASH_CHAR="#" AT_LINE_START="TRUE">#.*?(?=($|/\*|//))</SEQ_REGEXP>
  47. <!-- operators -->
  48. <SEQ TYPE="OPERATOR">({</SEQ>
  49. <SEQ TYPE="OPERATOR">})</SEQ>
  50. <SEQ TYPE="OPERATOR">([</SEQ>
  51. <SEQ TYPE="OPERATOR">])</SEQ>
  52. <SEQ TYPE="OPERATOR">(&lt;</SEQ>
  53. <SEQ TYPE="OPERATOR">&gt;)</SEQ>
  54. <SEQ TYPE="OPERATOR">=</SEQ>
  55. <SEQ TYPE="OPERATOR">!</SEQ>
  56. <SEQ TYPE="OPERATOR">+</SEQ>
  57. <SEQ TYPE="OPERATOR">-</SEQ>
  58. <SEQ TYPE="OPERATOR">/</SEQ>
  59. <SEQ TYPE="OPERATOR">*</SEQ>
  60. <SEQ TYPE="OPERATOR">&gt;</SEQ>
  61. <SEQ TYPE="OPERATOR">&lt;</SEQ>
  62. <SEQ TYPE="OPERATOR">%</SEQ>
  63. <SEQ TYPE="OPERATOR">&amp;</SEQ>
  64. <SEQ TYPE="OPERATOR">|</SEQ>
  65. <SEQ TYPE="OPERATOR">^</SEQ>
  66. <SEQ TYPE="OPERATOR">~</SEQ>
  67. <SEQ TYPE="OPERATOR">@</SEQ>
  68. <SEQ TYPE="OPERATOR">`</SEQ>
  69. <SEQ TYPE="OPERATOR">.</SEQ>
  70. <!-- function calls -->
  71. <MARK_PREVIOUS TYPE="FUNCTION" EXCLUDE_MATCH="TRUE">(</MARK_PREVIOUS>
  72. <KEYWORDS>
  73. <!-- type modifiers -->
  74. <KEYWORD1>constant</KEYWORD1>
  75. <KEYWORD1>extern</KEYWORD1>
  76. <KEYWORD1>final</KEYWORD1>
  77. <KEYWORD1>inline</KEYWORD1>
  78. <KEYWORD1>local</KEYWORD1>
  79. <KEYWORD1>nomask</KEYWORD1>
  80. <KEYWORD1>optional</KEYWORD1>
  81. <KEYWORD1>private</KEYWORD1>
  82. <KEYWORD1>protected</KEYWORD1>
  83. <KEYWORD1>public</KEYWORD1>
  84. <KEYWORD1>static</KEYWORD1>
  85. <KEYWORD1>variant</KEYWORD1>
  86. <!-- types -->
  87. <KEYWORD3>array</KEYWORD3>
  88. <KEYWORD3>class</KEYWORD3>
  89. <KEYWORD3>float</KEYWORD3>
  90. <KEYWORD3>function</KEYWORD3>
  91. <KEYWORD3>int</KEYWORD3>
  92. <KEYWORD3>mapping</KEYWORD3>
  93. <KEYWORD3>mixed</KEYWORD3>
  94. <KEYWORD3>multiset</KEYWORD3>
  95. <KEYWORD3>object</KEYWORD3>
  96. <KEYWORD3>program</KEYWORD3>
  97. <KEYWORD3>string</KEYWORD3>
  98. <KEYWORD3>void</KEYWORD3>
  99. <!-- flow control and block-introducing keywords -->
  100. <KEYWORD1>break</KEYWORD1>
  101. <KEYWORD1>case</KEYWORD1>
  102. <KEYWORD1>catch</KEYWORD1>
  103. <KEYWORD1>continue</KEYWORD1>
  104. <KEYWORD1>default</KEYWORD1>
  105. <KEYWORD1>do</KEYWORD1>
  106. <KEYWORD1>else</KEYWORD1>
  107. <KEYWORD1>for</KEYWORD1>
  108. <KEYWORD1>foreach</KEYWORD1>
  109. <KEYWORD1>gauge</KEYWORD1>
  110. <KEYWORD1>if</KEYWORD1>
  111. <KEYWORD1>lambda</KEYWORD1>
  112. <KEYWORD1>return</KEYWORD1>
  113. <KEYWORD1>sscanf</KEYWORD1>
  114. <KEYWORD1>switch</KEYWORD1>
  115. <KEYWORD1>while</KEYWORD1>
  116. <!-- special instructions -->
  117. <KEYWORD2>import</KEYWORD2>
  118. <KEYWORD2>inherit</KEYWORD2>
  119. </KEYWORDS>
  120. </RULES>
  121. <RULES SET="COMMENT" IGNORE_CASE="FALSE" DEFAULT="COMMENT1">
  122. <KEYWORDS>
  123. <COMMENT2>FIXME</COMMENT2>
  124. <COMMENT2>XXX</COMMENT2>
  125. </KEYWORDS>
  126. </RULES>
  127. <RULES SET="AUTODOC" IGNORE_CASE="TRUE" DEFAULT="COMMENT1">
  128. <EOL_SPAN TYPE="NULL" DELEGATE="MAIN" EXCLUDE_MATCH="TRUE">@decl</EOL_SPAN>
  129. <!-- XML tags -->
  130. <SPAN TYPE="MARKUP" DELEGATE="xml::TAGS">
  131. <BEGIN>@xml{</BEGIN>
  132. <END>@}</END>
  133. </SPAN>
  134. <!-- Cross references -->
  135. <SPAN TYPE="FUNCTION" NO_LINE_BREAK="TRUE">
  136. <BEGIN>@[</BEGIN>
  137. <END>]</END>
  138. </SPAN>
  139. <!-- Brace keywords -->
  140. <SEQ_REGEXP TYPE="FUNCTION" HASH_CHAR="@">@(b|i|u|tt|url|pre|ref|code|expr|image)?(\{.*@\})</SEQ_REGEXP>
  141. <KEYWORDS>
  142. <!-- Meta keywords -->
  143. <LABEL>@appears</LABEL>
  144. <LABEL>@belongs</LABEL>
  145. <LABEL>@class</LABEL>
  146. <LABEL>@endclass</LABEL>
  147. <LABEL>@example</LABEL>
  148. <LABEL>@module</LABEL>
  149. <LABEL>@endmodule</LABEL>
  150. <LABEL>@namespace</LABEL>
  151. <LABEL>@endnamespace</LABEL>
  152. <!-- <LABEL>@decl</LABEL>
  153. -->
  154. <!-- Single keywords -->
  155. <LABEL>@deprecated</LABEL>
  156. <!-- Delimiter keywords -->
  157. <LABEL>@note</LABEL>
  158. <LABEL>@example</LABEL>
  159. <LABEL>@bugs</LABEL>
  160. <LABEL>@returns</LABEL>
  161. <LABEL>@throws</LABEL>
  162. <LABEL>@param</LABEL>
  163. <LABEL>@seealso</LABEL>
  164. <LABEL>@fixme</LABEL>
  165. <LABEL>@constant</LABEL>
  166. <LABEL>@member</LABEL>
  167. <LABEL>@index</LABEL>
  168. <LABEL>@elem</LABEL>
  169. <LABEL>@value</LABEL>
  170. <LABEL>@type</LABEL>
  171. <LABEL>@item</LABEL>
  172. <!-- Container keywords -->
  173. <LABEL>@section</LABEL>
  174. <LABEL>@mapping</LABEL>
  175. <LABEL>@endmapping</LABEL>
  176. <LABEL>@multiset</LABEL>
  177. <LABEL>@endmultiset</LABEL>
  178. <LABEL>@array</LABEL>
  179. <LABEL>@endarray</LABEL>
  180. <LABEL>@int</LABEL>
  181. <LABEL>@endint</LABEL>
  182. <LABEL>@string</LABEL>
  183. <LABEL>@endstring</LABEL>
  184. <LABEL>@mixed</LABEL>
  185. <LABEL>@endmixed</LABEL>
  186. <LABEL>@dl</LABEL>
  187. <LABEL>@enddl</LABEL>
  188. <LABEL>@ol</LABEL>
  189. <LABEL>@endol</LABEL>
  190. <LABEL>@ul</LABEL>
  191. <LABEL>@endol</LABEL>
  192. <!-- Special keywords -->
  193. <LABEL>@ignore</LABEL>
  194. <LABEL>@endignore</LABEL>
  195. </KEYWORDS>
  196. <!-- Attempt to get syntax highlighting of @decl-ed functions
  197. inside of the autodoc-rule.
  198. It works - but jEdit 4.1 has problems keeping it highlighted
  199. (the syntax highlighting works depending on how you travel
  200. past the @decl-ed region).
  201. Can't figure aout how to to proper coloring of the @decl
  202. keyword either.
  203. If there are problems with what regions are highlighted -
  204. try to uncomment this first.
  205. -->
  206. <EOL_SPAN TYPE="NULL" DELEGATE="MAIN">@decl</EOL_SPAN>
  207. </RULES>
  208. <RULES SET="STRING_LITERAL" ESCAPE="\" IGNORE_CASE="TRUE" DEFAULT="LITERAL1">
  209. <SEQ_REGEXP TYPE="LITERAL2" HASH_CHAR="%">%([^ a-z]*[a-z]|\[[^\]]*\])</SEQ_REGEXP>
  210. <SEQ_REGEXP TYPE="COMMENT2" HASH_CHAR="D">DEBUG:</SEQ_REGEXP>
  211. </RULES>
  212. </MODE>