/jEdit/branches/4.3.x-merge-request-2980833/modes/objective-c.xml

# · XML · 119 lines · 93 code · 15 blank · 11 comment · 0 complexity · f3b490eaa298e1d420dbd764329de59d MD5 · raw file

  1. <?xml version="1.0"?>
  2. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  3. <!-- Extension of c.xml to handle Objective-C keywords. -->
  4. <MODE>
  5. <PROPS>
  6. <PROPERTY NAME="commentStart" VALUE="/*" />
  7. <PROPERTY NAME="commentEnd" VALUE="*/" />
  8. <PROPERTY NAME="lineComment" VALUE="//" />
  9. <PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*" />
  10. <!-- Auto indent -->
  11. <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
  12. <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
  13. <PROPERTY NAME="unalignedOpenBrackets" VALUE="(" />
  14. <PROPERTY NAME="unalignedCloseBrackets" VALUE=")" />
  15. <PROPERTY NAME="indentNextLine"
  16. VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />
  17. <PROPERTY NAME="unindentThisLine"
  18. VALUE="^.*(default:\s*|case.*:.*)$" />
  19. <PROPERTY NAME="electricKeys" VALUE=":" />
  20. </PROPS>
  21. <RULES
  22. IGNORE_CASE="FALSE"
  23. HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
  24. <EOL_SPAN TYPE="KEYWORD2" AT_WHITESPACE_END="TRUE" DELEGATE="CPP">#</EOL_SPAN>
  25. <IMPORT DELEGATE="c::LEX"/>
  26. <IMPORT DELEGATE="c::CORE"/>
  27. <IMPORT DELEGATE="CORE"/>
  28. </RULES>
  29. <!-- Core language -->
  30. <RULES SET="CORE"
  31. IGNORE_CASE="FALSE"
  32. HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
  33. <KEYWORDS>
  34. <!-- Types (Objective C) -->
  35. <KEYWORD3>id</KEYWORD3>
  36. <KEYWORD3>Class</KEYWORD3>
  37. <KEYWORD3>SEL</KEYWORD3>
  38. <KEYWORD3>IMP</KEYWORD3>
  39. <KEYWORD3>BOOL</KEYWORD3>
  40. <!-- Keywords (Objective C) -->
  41. <KEYWORD1>oneway</KEYWORD1>
  42. <KEYWORD1>in</KEYWORD1>
  43. <KEYWORD1>out</KEYWORD1>
  44. <KEYWORD1>inout</KEYWORD1>
  45. <KEYWORD1>bycopy</KEYWORD1>
  46. <KEYWORD1>byref</KEYWORD1>
  47. <KEYWORD1>self</KEYWORD1>
  48. <KEYWORD1>super</KEYWORD1>
  49. <!-- Preprocessor Directives (Objective C)-->
  50. <KEYWORD1>@interface</KEYWORD1>
  51. <KEYWORD1>@implementation</KEYWORD1>
  52. <KEYWORD1>@protocol</KEYWORD1>
  53. <KEYWORD1>@end</KEYWORD1>
  54. <KEYWORD1>@private</KEYWORD1>
  55. <KEYWORD1>@protected</KEYWORD1>
  56. <KEYWORD1>@public</KEYWORD1>
  57. <KEYWORD1>@class</KEYWORD1>
  58. <KEYWORD1>@selector</KEYWORD1>
  59. <KEYWORD1>@endcode</KEYWORD1>
  60. <KEYWORD1>@defs</KEYWORD1>
  61. <LITERAL2>TRUE</LITERAL2>
  62. <LITERAL2>FALSE</LITERAL2>
  63. <LITERAL2>YES</LITERAL2>
  64. <LITERAL2>NO</LITERAL2>
  65. <LITERAL2>NULL</LITERAL2>
  66. <LITERAL2>nil</LITERAL2>
  67. <LITERAL2>Nil</LITERAL2>
  68. </KEYWORDS>
  69. </RULES>
  70. <!-- Preprocessor specific rules -->
  71. <RULES SET="CPP"
  72. IGNORE_CASE="FALSE"
  73. HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
  74. <EOL_SPAN_REGEXP HASH_CHAR="include" TYPE="MARKUP" DELEGATE="c::INCLUDE">include\b</EOL_SPAN_REGEXP>
  75. <EOL_SPAN_REGEXP HASH_CHAR="import" TYPE="MARKUP" DELEGATE="c::INCLUDE">import\b</EOL_SPAN_REGEXP>
  76. <EOL_SPAN_REGEXP HASH_CHAR="define" TYPE="MARKUP" DELEGATE="DEFINE">define\b</EOL_SPAN_REGEXP>
  77. <EOL_SPAN_REGEXP HASH_CHAR="endif" TYPE="MARKUP" DELEGATE="c::LEX">endif\b</EOL_SPAN_REGEXP>
  78. <EOL_SPAN_REGEXP HASH_CHAR="elif" TYPE="MARKUP" DELEGATE="c::CONDITION">elif\b</EOL_SPAN_REGEXP>
  79. <EOL_SPAN_REGEXP HASH_CHAR="if" TYPE="MARKUP" DELEGATE="c::CONDITION">if\b</EOL_SPAN_REGEXP>
  80. <IMPORT DELEGATE="LEX"/>
  81. <!-- Directives -->
  82. <KEYWORDS>
  83. <MARKUP>ifdef</MARKUP>
  84. <MARKUP>ifndef</MARKUP>
  85. <MARKUP>else</MARKUP>
  86. <MARKUP>error</MARKUP>
  87. <MARKUP>line</MARKUP>
  88. <MARKUP>pragma</MARKUP>
  89. <MARKUP>undef</MARKUP>
  90. <MARKUP>warning</MARKUP>
  91. </KEYWORDS>
  92. </RULES>
  93. <!-- After #define directive -->
  94. <!-- Almost same as the normal code,
  95. except two additional operators # and ##. -->
  96. <RULES SET="DEFINE"
  97. IGNORE_CASE="FALSE"
  98. HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
  99. <SEQ TYPE="OPERATOR">#</SEQ>
  100. <IMPORT DELEGATE="c::LEX"/>
  101. <IMPORT DELEGATE="c::CORE"/>
  102. <IMPORT DELEGATE="CORE"/>
  103. </RULES>
  104. </MODE>