ultraviolet 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (212) hide show
  1. data/History.txt +5 -0
  2. data/Manifest.txt +216 -0
  3. data/README.txt +52 -0
  4. data/Rakefile +51 -0
  5. data/bin/theme2render +104 -0
  6. data/bin/uv +162 -0
  7. data/lib/uv.rb +84 -0
  8. data/lib/uv/html_processor.rb +89 -0
  9. data/render/old/txt2tags.render +131 -0
  10. data/render/xhtml/active4d.render +105 -0
  11. data/render/xhtml/all_hallows_eve.render +69 -0
  12. data/render/xhtml/amy.render +144 -0
  13. data/render/xhtml/blackboard.render +84 -0
  14. data/render/xhtml/brilliance_black.render +575 -0
  15. data/render/xhtml/brilliance_dull.render +534 -0
  16. data/render/xhtml/cobalt.render +135 -0
  17. data/render/xhtml/dawn.render +99 -0
  18. data/render/xhtml/eiffel.render +105 -0
  19. data/render/xhtml/espresso_libre.render +96 -0
  20. data/render/xhtml/files/css/active4d.css +114 -0
  21. data/render/xhtml/files/css/all_hallows_eve.css +72 -0
  22. data/render/xhtml/files/css/amy.css +144 -0
  23. data/render/xhtml/files/css/blackboard.css +88 -0
  24. data/render/xhtml/files/css/brilliance_black.css +632 -0
  25. data/render/xhtml/files/css/brilliance_dull.css +579 -0
  26. data/render/xhtml/files/css/cobalt.css +149 -0
  27. data/render/xhtml/files/css/dawn.css +121 -0
  28. data/render/xhtml/files/css/eiffel.css +121 -0
  29. data/render/xhtml/files/css/espresso_libre.css +109 -0
  30. data/render/xhtml/files/css/idle.css +62 -0
  31. data/render/xhtml/files/css/iplastic.css +80 -0
  32. data/render/xhtml/files/css/lazy.css +73 -0
  33. data/render/xhtml/files/css/mac_classic.css +123 -0
  34. data/render/xhtml/files/css/magicwb_amiga.css +101 -0
  35. data/render/xhtml/files/css/pastels_on_dark.css +188 -0
  36. data/render/xhtml/files/css/slush_poppies.css +85 -0
  37. data/render/xhtml/files/css/spacecadet.css +51 -0
  38. data/render/xhtml/files/css/sunburst.css +180 -0
  39. data/render/xhtml/files/css/twilight.css +137 -0
  40. data/render/xhtml/files/css/zenburnesque.css +88 -0
  41. data/render/xhtml/idle.render +66 -0
  42. data/render/xhtml/iplastic.render +72 -0
  43. data/render/xhtml/lazy.render +69 -0
  44. data/render/xhtml/mac_classic.render +108 -0
  45. data/render/xhtml/magicwb_amiga.render +90 -0
  46. data/render/xhtml/pastels_on_dark.render +177 -0
  47. data/render/xhtml/slush_poppies.render +96 -0
  48. data/render/xhtml/spacecadet.render +54 -0
  49. data/render/xhtml/sunburst.render +159 -0
  50. data/render/xhtml/twilight.render +126 -0
  51. data/render/xhtml/zenburnesque.render +99 -0
  52. data/syntax/actionscript.syntax +97 -0
  53. data/syntax/active4d.syntax +276 -0
  54. data/syntax/active4d_html.syntax +311 -0
  55. data/syntax/active4d_ini.syntax +50 -0
  56. data/syntax/active4d_library.syntax +21 -0
  57. data/syntax/ada.syntax +33 -0
  58. data/syntax/antlr.syntax +128 -0
  59. data/syntax/apache.syntax +176 -0
  60. data/syntax/applescript.syntax +384 -0
  61. data/syntax/asp.syntax +70 -0
  62. data/syntax/asp_vb.net.syntax +129 -0
  63. data/syntax/bibtex.syntax +151 -0
  64. data/syntax/blog_html.syntax +41 -0
  65. data/syntax/blog_markdown.syntax +42 -0
  66. data/syntax/blog_text.syntax +27 -0
  67. data/syntax/blog_textile.syntax +27 -0
  68. data/syntax/buggy/nemerle.yaml +74 -0
  69. data/syntax/build.syntax +53 -0
  70. data/syntax/bulletin_board.syntax +287 -0
  71. data/syntax/c++.syntax +109 -0
  72. data/syntax/c.syntax +326 -0
  73. data/syntax/cake.syntax +55 -0
  74. data/syntax/camlp4.syntax +36 -0
  75. data/syntax/coldfusion.syntax +118 -0
  76. data/syntax/context_free.syntax +176 -0
  77. data/syntax/cs.syntax +59 -0
  78. data/syntax/css.syntax +190 -0
  79. data/syntax/css_experimental.syntax +1925 -0
  80. data/syntax/csv.syntax +68 -0
  81. data/syntax/d.syntax +138 -0
  82. data/syntax/diff.syntax +81 -0
  83. data/syntax/dokuwiki.syntax +204 -0
  84. data/syntax/dot.syntax +47 -0
  85. data/syntax/doxygen.syntax +43 -0
  86. data/syntax/dylan.syntax +62 -0
  87. data/syntax/eiffel.syntax +78 -0
  88. data/syntax/erlang.syntax +922 -0
  89. data/syntax/f-script.syntax +80 -0
  90. data/syntax/fortran.syntax +141 -0
  91. data/syntax/fxscript.syntax +142 -0
  92. data/syntax/greasemonkey.syntax +34 -0
  93. data/syntax/gri.syntax +83 -0
  94. data/syntax/groovy.syntax +189 -0
  95. data/syntax/gtd2_text.syntax +31 -0
  96. data/syntax/gtdalt.syntax +143 -0
  97. data/syntax/haml.syntax +88 -0
  98. data/syntax/haskell.syntax +88 -0
  99. data/syntax/html-asp.syntax +27 -0
  100. data/syntax/html.syntax +362 -0
  101. data/syntax/html_django.syntax +36 -0
  102. data/syntax/html_for_asp.net.syntax +424 -0
  103. data/syntax/html_mason.syntax +119 -0
  104. data/syntax/html_rails.syntax +40 -0
  105. data/syntax/html_tcl.syntax +26 -0
  106. data/syntax/icalendar.syntax +32 -0
  107. data/syntax/inform.syntax +48 -0
  108. data/syntax/ini.syntax +54 -0
  109. data/syntax/installer_distribution_script.syntax +77 -0
  110. data/syntax/io.syntax +81 -0
  111. data/syntax/java.syntax +211 -0
  112. data/syntax/javaproperties.syntax +20 -0
  113. data/syntax/javascript.syntax +255 -0
  114. data/syntax/javascript_+_prototype.syntax +72 -0
  115. data/syntax/javascript_+_prototype_bracketed.syntax +140 -0
  116. data/syntax/jquery_javascript.syntax +114 -0
  117. data/syntax/json.syntax +136 -0
  118. data/syntax/languagedefinition.syntax +697 -0
  119. data/syntax/latex.syntax +566 -0
  120. data/syntax/latex_beamer.syntax +41 -0
  121. data/syntax/latex_log.syntax +50 -0
  122. data/syntax/latex_memoir.syntax +64 -0
  123. data/syntax/lexflex.syntax +219 -0
  124. data/syntax/lighttpd.syntax +54 -0
  125. data/syntax/lilypond.syntax +492 -0
  126. data/syntax/lisp.syntax +61 -0
  127. data/syntax/literate_haskell.syntax +24 -0
  128. data/syntax/logo.syntax +29 -0
  129. data/syntax/logtalk.syntax +152 -0
  130. data/syntax/lua.syntax +86 -0
  131. data/syntax/m.syntax +142 -0
  132. data/syntax/macports_portfile.syntax +143 -0
  133. data/syntax/mail.syntax +118 -0
  134. data/syntax/makefile.syntax +35 -0
  135. data/syntax/man.syntax +17 -0
  136. data/syntax/markdown.syntax +543 -0
  137. data/syntax/mediawiki.syntax +567 -0
  138. data/syntax/mel.syntax +92 -0
  139. data/syntax/mips.syntax +66 -0
  140. data/syntax/mod_perl.syntax +50 -0
  141. data/syntax/modula-3.syntax +47 -0
  142. data/syntax/moinmoin.syntax +189 -0
  143. data/syntax/mootools.syntax +572 -0
  144. data/syntax/movable_type.syntax +162 -0
  145. data/syntax/multimarkdown.syntax +39 -0
  146. data/syntax/objective-c++.syntax +18 -0
  147. data/syntax/objective-c.syntax +226 -0
  148. data/syntax/ocaml.syntax +764 -0
  149. data/syntax/ocamllex.syntax +167 -0
  150. data/syntax/ocamlyacc.syntax +184 -0
  151. data/syntax/old/YAML.yaml +160 -0
  152. data/syntax/old/txt2tags.yaml +139 -0
  153. data/syntax/opengl.syntax +14 -0
  154. data/syntax/pascal.syntax +77 -0
  155. data/syntax/perl.syntax +1075 -0
  156. data/syntax/php.syntax +678 -0
  157. data/syntax/plain_text.syntax +32 -0
  158. data/syntax/postscript.syntax +114 -0
  159. data/syntax/processing.syntax +106 -0
  160. data/syntax/prolog.syntax +40 -0
  161. data/syntax/property_list.syntax +645 -0
  162. data/syntax/python.syntax +865 -0
  163. data/syntax/python_django.syntax +21 -0
  164. data/syntax/qmake_project.syntax +114 -0
  165. data/syntax/qt_c++.syntax +26 -0
  166. data/syntax/quake3_config.syntax +32 -0
  167. data/syntax/r.syntax +81 -0
  168. data/syntax/r_console.syntax +16 -0
  169. data/syntax/ragel.syntax +201 -0
  170. data/syntax/rd_r_documentation.syntax +91 -0
  171. data/syntax/regexp.syntax +50 -0
  172. data/syntax/regular_expressions_oniguruma.syntax +107 -0
  173. data/syntax/regular_expressions_python.syntax +109 -0
  174. data/syntax/release_notes.syntax +37 -0
  175. data/syntax/remind.syntax +253 -0
  176. data/syntax/restructuredtext.syntax +250 -0
  177. data/syntax/rez.syntax +80 -0
  178. data/syntax/ruby.syntax +1035 -0
  179. data/syntax/ruby_experimental.syntax +145 -0
  180. data/syntax/ruby_on_rails.syntax +88 -0
  181. data/syntax/s5.syntax +69 -0
  182. data/syntax/scheme.syntax +347 -0
  183. data/syntax/scilab.syntax +41 -0
  184. data/syntax/setext.syntax +147 -0
  185. data/syntax/shell-unix-generic.syntax +384 -0
  186. data/syntax/slate.syntax +149 -0
  187. data/syntax/smarty.syntax +63 -0
  188. data/syntax/sql.syntax +237 -0
  189. data/syntax/sql_rails.syntax +18 -0
  190. data/syntax/ssh-config.syntax +33 -0
  191. data/syntax/standard_ml.syntax +45 -0
  192. data/syntax/strings_file.syntax +39 -0
  193. data/syntax/subversion_commit_message.syntax +36 -0
  194. data/syntax/sweave.syntax +84 -0
  195. data/syntax/swig.syntax +57 -0
  196. data/syntax/tcl.syntax +152 -0
  197. data/syntax/template_toolkit.syntax +121 -0
  198. data/syntax/tex.syntax +86 -0
  199. data/syntax/tex_math.syntax +49 -0
  200. data/syntax/textile.syntax +215 -0
  201. data/syntax/tsv.syntax +50 -0
  202. data/syntax/twiki.syntax +241 -0
  203. data/syntax/txt2tags.syntax +79 -0
  204. data/syntax/vectorscript.syntax +57 -0
  205. data/syntax/xhtml_1.0.syntax +4027 -0
  206. data/syntax/xml.syntax +179 -0
  207. data/syntax/xml_strict.syntax +92 -0
  208. data/syntax/xsl.syntax +60 -0
  209. data/syntax/yaml.syntax +160 -0
  210. data/syntax/yui_javascript.syntax +176 -0
  211. data/test/test_uv.rb +0 -0
  212. metadata +270 -0
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: Plain Text
3
+ fileTypes:
4
+ - txt
5
+ scopeName: text.plain
6
+ uuid: 3130E4FA-B10E-11D9-9F75-000D93589AF6
7
+ patterns:
8
+ - name: meta.bullet-point.strong
9
+ captures:
10
+ "1":
11
+ name: punctuation.definition.item.text
12
+ match: "^\\s*(\xE2\x80\xA2).*$\\n?"
13
+ - name: meta.bullet-point.light
14
+ captures:
15
+ "1":
16
+ name: punctuation.definition.item.text
17
+ match: "^\\s*(\xC2\xB7).*$\\n?"
18
+ - name: meta.bullet-point.star
19
+ captures:
20
+ "1":
21
+ name: punctuation.definition.item.text
22
+ match: ^\s*(\*).*$\n?
23
+ - begin: ^([ \t]*)(?=\S)
24
+ contentName: meta.paragraph.text
25
+ end: ^(?!\1(?=\S))
26
+ patterns:
27
+ - name: markup.underline.link
28
+ match: "(?x)\n\
29
+ \t\t\t\t\t\t( (https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt)://|mailto:)\n\
30
+ \t\t\t\t\t\t[-:@a-zA-Z0-9_.,~%+/?=&#]+(?<![.,?:])\n\
31
+ \t\t\t\t\t"
32
+ keyEquivalent: ^~P
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: Postscript
3
+ fileTypes:
4
+ - ps
5
+ - eps
6
+ firstLineMatch: ^%!PS
7
+ scopeName: source.postscript
8
+ repository:
9
+ string_content:
10
+ patterns:
11
+ - name: constant.numeric.octal.postscript
12
+ match: \\[0-7]{1,3}
13
+ - name: constant.character.escape.postscript
14
+ match: \\(\\|[nrtbf\(\)]|[0-7]{1,3}|\r?\n)
15
+ - name: invalid.illegal.unknown-escape.postscript.ignored
16
+ match: \\
17
+ - begin: \(
18
+ end: \)
19
+ patterns:
20
+ - include: "#string_content"
21
+ uuid: B89483CD-6AE0-4517-BE2C-82F8083B7359
22
+ foldingStartMarker: /\*\*|\{\s*$
23
+ patterns:
24
+ - name: string.other.postscript
25
+ endCaptures:
26
+ "0":
27
+ name: punctuation.definition.string.end.postscript
28
+ begin: \(
29
+ beginCaptures:
30
+ "0":
31
+ name: punctuation.definition.string.begin.postscript
32
+ end: \)
33
+ patterns:
34
+ - include: "#string_content"
35
+ - name: meta.Document-Structuring-Comment.postscript
36
+ captures:
37
+ "1":
38
+ name: keyword.other.DSC.postscript
39
+ "3":
40
+ name: string.unquoted.DSC.postscript
41
+ match: ^(%%(BeginBinary:|BeginCustomColor:|BeginData:|BeginDefaults|BeginDocument:|BeginEmulation:|BeginExitServer:|BeginFeature:|BeginFile:|BeginFont:|BeginObject:|BeginPageSetup:|BeginPaperSize:|BeginPreview:|BeginProcSet|BeginProcessColor:|BeginProlog|BeginResource:|BeginSetup|BoundingBox:|CMYKCustomColor:|ChangeFont:|Copyright:|CreationDate:|Creator:|DocumentCustomColors:|DocumentData:|DocumentFonts:|DocumentMedia:|DocumentNeededFiles:|DocumentNeededFonts:|DocumentNeededProcSets:|DocumentNeededResources:|DocumentPaperColors:|DocumentPaperForms:|DocumentPaperSizes:|DocumentPaperWeights:|DocumentPrinterRequired:|DocumentProcSets:|DocumentProcessColors:|DocumentSuppliedFiles:|DocumentSuppliedFonts:|DocumentSuppliedProcSets:|DocumentSuppliedResources:|EOF|Emulation:|EndBinary:|EndComments|EndCustomColor:|EndData:|EndDefaults|EndDocument:|EndEmulation:|EndExitServer:|EndFeature:|EndFile:|EndFont:|EndObject:|EndPageSetup:|EndPaperSize:|EndPreview:|EndProcSet|EndProcessColor:|EndProlog|EndResource:|EndSetup|ExecuteFile:|Extensions:|Feature:|For:|IncludeDocument:|IncludeFeature:|IncludeFile:|IncludeFont:|IncludeProcSet:|IncludeResource:|LanguageLevel:|OperatorIntervention:|OperatorMessage:|Orientation:|Page:|PageBoundingBox:|PageCustomColors|PageCustomColors:|PageFiles:|PageFonts:|PageMedia:|PageOrder:|PageOrientation:|PageProcessColors|PageProcessColors:|PageRequirements:|PageResources:|PageTrailer|Pages:|PaperColor:|PaperForm:|PaperSize:|PaperWeight:|ProofMode:|RGBCustomColor:|Requirements:|Routing:|Title:|Trailer|VMlocation:|VMusage:|Version|Version:|\+|\?BeginFeatureQuery:|\?BeginFileQuery:|\?BeginFontListQuery:|\?BeginFontQuery:|\?BeginPrinterQuery:|\?BeginProcSetQuery:|\?BeginQuery:|\?BeginResourceListQuery:|\?BeginResourceQuery:|\?BeginVMStatus:|\?EndFeatureQuery:|\?EndFileQuery:|\?EndFontListQuery:|\?EndFontQuery:|\?EndPrinterQuery:|\?EndProcSetQuery:|\?EndQuery:|\?EndResourceListQuery:|\?EndResourceQuery:|\?EndVMStatus:))\s*(.*)$\n?
42
+ - name: comment.line.percentage.postscript
43
+ captures:
44
+ "1":
45
+ name: punctuation.definition.comment.postscript
46
+ match: (%).*$\n?
47
+ - name: meta.dictionary.postscript
48
+ captures:
49
+ "0":
50
+ name: punctuation.definition.dictionary.postscript
51
+ begin: \<\<
52
+ end: \>\>
53
+ patterns:
54
+ - include: $self
55
+ - name: meta.array.postscript
56
+ captures:
57
+ "0":
58
+ name: punctuation.definition.array.postscript
59
+ begin: \[
60
+ end: \]
61
+ patterns:
62
+ - include: $self
63
+ - name: meta.procedure.postscript
64
+ captures:
65
+ "0":
66
+ name: punctuation.definition.procedure.postscript
67
+ begin: "{"
68
+ end: "}"
69
+ patterns:
70
+ - include: $self
71
+ - name: string.other.base85.postscript
72
+ endCaptures:
73
+ "0":
74
+ name: punctuation.definition.string.end.postscript
75
+ begin: \<\~
76
+ beginCaptures:
77
+ "0":
78
+ name: punctuation.definition.string.begin.postscript
79
+ end: \~\>
80
+ patterns:
81
+ - match: "[!-z\\s]+"
82
+ - name: invalid.illegal.base85.char.postscript
83
+ match: .
84
+ - name: string.other.hexadecimal.postscript
85
+ endCaptures:
86
+ "0":
87
+ name: punctuation.definition.string.end.postscript
88
+ begin: \<
89
+ beginCaptures:
90
+ "0":
91
+ name: punctuation.definition.string.begin.postscript
92
+ end: \>
93
+ patterns:
94
+ - match: "[0-9A-Fa-f\\s]+"
95
+ - name: invalid.illegal.hexadecimal.char.postscript
96
+ match: .
97
+ - name: constant.numeric.radix.postscript
98
+ match: "[0-3]?[0-9]#[0-9a-zA-Z]+"
99
+ comment: well, not really, but short of listing rules for all bases from 2-36 best we can do
100
+ - name: constant.numeric.postscript
101
+ match: (\-|\+)?\d+(\.\d*)?([eE](\-|\+)?\d+)?
102
+ - name: constant.numeric.postscript
103
+ match: (\-|\+)?\.\d+([eE](\-|\+)?\d+)?
104
+ - name: keyword.operator.postscript
105
+ match: \b(abs|add|aload|anchorsearch|and|arc|arcn|arct|arcto|array|ashow|astore|atan|awidthshow|begin|bind|bitshift|bytesavailable|cachestatus|ceiling|charpath|clear|cleartomark|cleardictstack|clip|clippath|closefile|closepath|colorimage|concat|concatmatrix|condition|configurationerror|copy|copypage|cos|count|countdictstack|countexecstack|counttomark|cshow|currentblackgeneration|currentcacheparams|currentcmykcolor|currentcolor|currentcolorrendering|currentcolorscreen|currentcolorspace|currentcolortransfer|currentcontext|currentdash|currentdevparams|currentdict|currentfile|currentflat|currentfont|currentglobal|currentgray|currentgstate|currenthalftone|currenthalftonephase|currenthsbcolor|currentlinecap|currentlinejoin|currentlinewidth|currentmatrix|currentmiterlimit|currentobjectformat|currentpacking|currentpagedevice|currentpoint|currentrgbcolor|currentscreen|currentshared|currentstrokeadjust|currentsystemparams|currenttransfer|currentundercolorremoval|currentuserparams|curveto|cvi|cvlit|cvn|cvr|cvrs|cvs|cvx|def|defaultmatrix|definefont|defineresource|defineusername|defineuserobject|deletefile|detach|deviceinfo|dict|dictfull|dictstack|dictstackoverflow|dictstackunderflow|div|dtransform|dup|echo|eexec|end|eoclip|eofill|eoviewclip|eq|erasepage|errordict|exch|exec|execform|execstack|execstackoverflow|execuserobject|executeonly|executive|exit|exp|false|file|filenameforall|fileposition|fill|filter|findencoding|findfont|findresource|flattenpath|floor|flush|flushfile|FontDirectory|for|forall|fork|ge|get|getinterval|globaldict|GlobalFontDirectory|glyphshow|grestore|grestoreall|gsave|gstate|gt|handleerror|identmatrix|idiv|idtransform|if|ifelse|image|imagemask|index|ineofill|infill|initclip|initgraphics|initmatrix|initviewclip|instroke|internaldict|interrupt|inueofill|inufill|inustroke|invalidaccess|invalidcontext|invalidexit|invalidfileaccess|invalidfont|invalidid|invalidrestore|invertmatrix|ioerror|ISOLatin1Encoding|itransform|join|kshow|known|languagelevel|le|length|limitcheck|lineto|ln|load|lock|log|loop|lt|makefont|makepattern|mark|matrix|maxlength|mod|monitor|moveto|mul|ne|neg|newpath|noaccess|nocurrentpoint|not|notify|null|nulldevice|or|packedarray|pathbbox|pathforall|pop|print|printobject|product|prompt|pstack|put|putinterval|quit|rand|rangecheck|rcurveto|read|readhexstring|readline|readonly|readstring|realtime|rectclip|rectfill|rectstroke|rectviewclip|renamefile|repeat|resetfile|resourceforall|resourcestatus|restore|reversepath|revision|rlineto|rmoveto|roll|rootfont|rotate|round|rrand|run|save|scale|scalefont|scheck|search|selectfont|serialnumber|setbbox|setblackgeneration|setcachedevice|setcachedevice2|setcachelimit|setcacheparams|setcharwidth|setcmykcolor|setcolor|setcolorrendering|setcolorscreen|setcolorspace|setcolortransfer|setdash|setdevparams|setfileposition|setflat|setfont|setglobal|setgray|setgstate|sethalftone|sethalftonephase|sethsbcolor|setlinecap|setlinejoin|setlinewidth|setmatrix|setmiterlimit|setobjectformat|setoverprint|setpacking|setpagedevice|setpattern|setrgbcolor|setscreen|setshared|setstrokeadjust|setsystemparams|settransfer|setucacheparams|setundercolorremoval|setuserparams|setvmthreshold|shareddict|show|showpage|sin|sqrt|srand|stack|stackoverflow|stackunderflow|StandardEncoding|start|startjob|status|statusdict|stop|stopped|store|string|stringwidth|stroke|strokepath|sub|syntaxerror|systemdict|timeout|transform|translate|true|truncate|type|typecheck|token|uappend|ucache|ucachestatus|ueofill|ufill|undef|undefined|undefinedfilename|undefineresource|undefinedresult|undefinefont|undefineresource|undefinedresource|undefineuserobject|unmatchedmark|unregistered|upath|userdict|UserObjects|usertime|ustroke|ustrokepath|version|viewclip|viewclippath|VMerror|vmreclaim|vmstatus|wait|wcheck|where|widthshow|write|writehexstring|writeobject|writestring|wtranslation|xcheck|xor|xshow|xyshow|yield|yshow)\b
106
+ - name: variable.other.immediately-evaluated.postscript
107
+ match: //[^\(\)\<\>\[\]\{\}\/\%\s]+
108
+ - name: variable.other.literal.postscript
109
+ match: /[^\(\)\<\>\[\]\{\}\/\%\s]+
110
+ - name: variable.other.name.postscript
111
+ match: "[^\\(\\)\\<\\>\\[\\]\\{\\}\\/\\%\\s]+"
112
+ comment: stuff like 22@ff will show as number 22 followed by name @ff, but should be name 22@ff!
113
+ foldingStopMarker: \*\*/|^\s*\}
114
+ keyEquivalent: ^~P
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: Processing
3
+ fileTypes:
4
+ - pde
5
+ scopeName: source.processing
6
+ uuid: EF0D256C-2FCB-4A87-9250-0F5F82A366B9
7
+ foldingStartMarker: (/\*\*|\{\s*$)
8
+ patterns:
9
+ - name: support.function.processing
10
+ match: \b(abs|acos|alpha|alpha|ambient|ambientLight|append|applyMatrix|arc|asin|atan2|atan|background|beginCamera|beginShape|bezier|bezierDetail|bezierPoint|bezierTangent|bezierVertex|binary|blend|blend|blue|boolean|box|brightness|byte|cache|camera|ceil|char|charAt|color|colorMode|concat|constrain|contract|copy|copy|cos|createFont|cursor|curve|curveDetail|curvePoint|curveSegments|curveTightness|curveVertex|day|degrees|delay|directionalLight|dist|duration|ellipse|ellipseMode|emissive|endCamera|endShape|equals|exp|expand|fill|filter|filter|float|floor|framerate|frustum|get|get|green|hex|hint|hour|hue|image|imageMode|indexOf|int|join|keyPressed|keyReleased|length|lerp|lightFalloff|lightSpecular|lights|line|link|list|loadBytes|loadFont|loadImage|loadPixels|loadSound|loadStrings|log|lookat|loop|loop|mag|mask|max|millis|min|minute|modelX|modelY|modelZ|month|mouseDragged|mouseMoved|mousePressed|mouseReleased|nf|nfc|nfp|nfs|noCursor|noFill|noLoop|noLoop|noSmooth|noStroke|noTint|noise|noiseDetail|noiseSeed|normal|open|openStream|ortho|param|pause|perspective|play|point|pointLight|popMatrix|pow|print|printCamera|printMatrix|printProjection|println|pushMatrix|quad|radians|random|randomSeed|rect|rectMode|red|redraw|resetMatrix|reverse|rotate|rotateX|rotateY|rotateZ|round|saturation|save|saveBytes|saveFrame|saveStrings|scale|screenX|screenY|screenZ|second|set|set|shininess|shorten|sin|size|smooth|sort|specular|sphere|sphereDetail|splice|split|spotLight|sq|sqrt|status|stop|str|stroke|strokeCap|strokeJoin|strokeWeight|subset|substring|switch|tan|text|textAlign|textAscent|textDescent|textFont|textLeading|textMode|textSize|textWidth|texture|textureMode|time|tint|toLowerCase|toUpperCase|translate|triangle|trim|unHint|unbinary|unhex|updatePixels|vertex|volume|year|draw|setup)\b
11
+ - name: comment.block.empty.processing
12
+ captures:
13
+ "0":
14
+ name: punctuation.definition.comment.processing
15
+ match: /\*\*/
16
+ - name: comment.block.processing
17
+ captures:
18
+ "0":
19
+ name: punctuation.definition.comment.processing
20
+ begin: /\*
21
+ end: \*/
22
+ - name: comment.block.documentation.processing
23
+ captures:
24
+ "0":
25
+ name: punctuation.definition.comment.processing
26
+ begin: /\*\*
27
+ end: \*/
28
+ patterns:
29
+ - captures:
30
+ "1":
31
+ name: keyword.other.documentation.params.processing
32
+ "2":
33
+ name: keyword.other.documentation.value.processing
34
+ match: \*\s*@(param)\s*([a-z][a-zA-Z0-9_]+)\s*
35
+ - captures:
36
+ "1":
37
+ name: keyword.other.embedded-docs.params.processing
38
+ match: \*\s*@([a-zA-Z0-9_-]+)\s*
39
+ - name: comment.line.double-slash.processing
40
+ captures:
41
+ "1":
42
+ name: punctuation.definition.comment.processing
43
+ match: (//).*$\n?
44
+ - name: storage.type.processing
45
+ match: \b(class|interface|void|color|string|byte|short|char|int|long|float|double|boolean|[A-Z][A-Za-z0-9]+)\b
46
+ - name: storage.modifier.access-control.processing
47
+ match: \b(private|protected|public)\b
48
+ - name: storage.modifier.processing
49
+ match: \b(abstract|final|native|static|transient|synchronized|volatile|strictfp|extends|implements)\b
50
+ - name: keyword.control.catch-exception.processing
51
+ match: \b(try|catch|finally|throw)\b
52
+ - name: keyword.control.processing
53
+ match: \b(return|break|case|continue|default|do|while|for|switch|if|else)\b
54
+ - name: keyword.other.class-fns.processing
55
+ match: \b(import|new|package|throws)\b
56
+ - name: keyword.operator.processing
57
+ match: \b(instanceof)\b
58
+ - name: constant.language.processing
59
+ match: \b(false|null|true)\b
60
+ - name: constant.other.processing
61
+ match: \b(focused|frameCount|framerate|height|height|key|keyCode|keyPressed|mouseButton|mousePressed|mouseX|mouseY|online|pixels|pmouseX|pmouseY|screen|width)\b
62
+ - name: support.constant.processing
63
+ match: \b(ADD|ALIGN_CENTER|ALIGN_LEFT|ALIGN_RIGHT|ALPHA|ALPHA_MASK|ALT|AMBIENT|ARGB|ARROW|BACKSPACE|BEVEL|BLEND|BLEND|BLUE_MASK|BLUR|CENTER|CENTER_RADIUS|CHATTER|CODED|COMPLAINT|COMPONENT|COMPOSITE|CONCAVE_POLYGON|CONTROL|CONVEX_POLYGON|CORNER|CORNERS|CROSS|CUSTOM|DARKEST|DEGREES|DEG_TO_RAD|DELETE|DIFFERENCE|DIFFUSE|DISABLED|DISABLE_TEXT_SMOOTH|DOWN|ENTER|EPSILON|ESC|GIF|GREEN_MASK|GREY|HALF|HALF_PI|HALF_PI|HAND|HARD_LIGHT|HSB|IMAGE|INVERT|JAVA2D|JPEG|LEFT|LIGHTEST|LINES|LINE_LOOP|LINE_STRIP|MAX_FLOAT|MITER|MODEL|MOVE|MULTIPLY|NORMALIZED|NO_DEPTH_TEST|NTSC|ONE|OPAQUE|OPENGL|ORTHOGRAPHIC|OVERLAY|P2D|P3D|PAL|PERSPECTIVE|PI|PI|PIXEL_CENTER|POINTS|POLYGON|POSTERIZE|PROBLEM|PROJECT|QUADS|QUAD_STRIP|QUARTER_PI|RADIANS|RAD_TO_DEG|RED_MASK|REPLACE|RETURN|RGB|RIGHT|ROUND|SCREEN|SECAM|SHIFT|SOFT_LIGHT|SPECULAR|SQUARE|SUBTRACT|SVIDEO|TAB|TARGA|TEXT|TFF|THIRD_PI|THRESHOLD|TIFF|TRIANGLES|TRIANGLE_FAN|TRIANGLE_STRIP|TUNER|TWO|TWO_PI|TWO_PI|UP|WAIT|WHITESPACE)\b
64
+ - name: support.class.processing
65
+ match: \b(Array|Character|Integer|Math|Object|PFont|PImage|PSound|StringBuffer|Thread)\b
66
+ - name: variable.language.processing
67
+ match: \b(this|super)\b
68
+ - name: constant.numeric.processing
69
+ match: \b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\b
70
+ - name: string.quoted.double.processing
71
+ endCaptures:
72
+ "0":
73
+ name: punctuation.definition.string.end.processing
74
+ begin: "\""
75
+ beginCaptures:
76
+ "0":
77
+ name: punctuation.definition.string.begin.processing
78
+ end: "\""
79
+ patterns:
80
+ - name: constant.character.escape.processing
81
+ match: \\.
82
+ - name: string.quoted.single.processing
83
+ endCaptures:
84
+ "0":
85
+ name: punctuation.definition.string.end.processing
86
+ begin: "'"
87
+ beginCaptures:
88
+ "0":
89
+ name: punctuation.definition.string.begin.processing
90
+ end: "'"
91
+ patterns:
92
+ - name: constant.character.escape.processing
93
+ match: \\.
94
+ - name: meta.class.processing
95
+ captures:
96
+ "1":
97
+ name: storage.type.class.processing
98
+ "2":
99
+ name: entity.name.type.class.processing
100
+ "3":
101
+ name: storage.modifier.extends.processing
102
+ "4":
103
+ name: entity.other.inherited-class.processing
104
+ match: \b(class)\s+([a-zA-Z_](?:\w|\.)*)(?:\s+(extends)\s+([a-zA-Z_](?:\w|\.)*))?
105
+ foldingStopMarker: (\*\*/|^\s*\})
106
+ keyEquivalent: ^~P
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: Prolog
3
+ fileTypes: []
4
+
5
+ scopeName: source.prolog
6
+ uuid: C0E2ADB0-1706-4A28-8DB7-263BDC8B5C5C
7
+ foldingStartMarker: "%\\s*region \\w*"
8
+ patterns:
9
+ - name: string.quoted.single.prolog
10
+ endCaptures:
11
+ "0":
12
+ name: punctuation.definition.string.end.prolog
13
+ begin: "'"
14
+ beginCaptures:
15
+ "0":
16
+ name: punctuation.definition.string.begin.prolog
17
+ end: "'"
18
+ patterns:
19
+ - name: constant.character.escape.prolog
20
+ match: \\.
21
+ - name: constant.character.escape.quote.prolog
22
+ match: "''"
23
+ - name: comment.line.percent.prolog
24
+ captures:
25
+ "1":
26
+ name: punctuation.definition.comment.prolog
27
+ match: (%).*$\n?
28
+ - name: keyword.operator.definition.prolog
29
+ match: ":-"
30
+ - name: variable.other.prolog
31
+ match: \b[A-Z][a-zA-Z0-9_]*\b
32
+ - name: constant.other.symbol.prolog
33
+ match: \b[a-z][a-zA-Z0-9_]*\b
34
+ comment: "\n\
35
+ \t\t\tI changed this from entity to storage.type, but have no idea what it is -- Allan\n\
36
+ \t\t\tAnd I changed this to constant.other.symbol after glancing over the docs,\n\
37
+ \t\t\t might still be wrong. -- Infininight\n\
38
+ \t\t\t"
39
+ foldingStopMarker: "%\\s*end(\\s*region)?"
40
+ keyEquivalent: ^~P
@@ -0,0 +1,645 @@
1
+ ---
2
+ name: Property List
3
+ fileTypes:
4
+ - plist
5
+ - dict
6
+ - tmCommand
7
+ - tmDelta
8
+ - tmDragCommand
9
+ - tmLanguage
10
+ - tmMacro
11
+ - tmPreferences
12
+ - tmSnippet
13
+ - tmTheme
14
+ - scriptSuite
15
+ - scriptTerminology
16
+ - savedSearch
17
+ scopeName: ""
18
+ repository:
19
+ openstep_comment:
20
+ patterns:
21
+ - name: comment.block.plist
22
+ captures:
23
+ "0":
24
+ name: punctuation.definition.comment.plist
25
+ begin: /\*
26
+ end: \*/
27
+ - name: comment.line.double-slash.plist
28
+ captures:
29
+ "1":
30
+ name: punctuation.definition.comment.plist
31
+ match: (//).*$\n?
32
+ openstep:
33
+ patterns:
34
+ - include: "#openstep_comment"
35
+ - include: "#openstep_plist"
36
+ - include: "#openstep_stray-char"
37
+ xml_tags:
38
+ patterns:
39
+ - captures:
40
+ "6":
41
+ name: meta.tag.dict.xml.plist
42
+ "11":
43
+ name: punctuation.definition.tag.xml.plist
44
+ "7":
45
+ name: punctuation.definition.tag.xml.plist
46
+ "8":
47
+ name: meta.scope.between-tag-pair.xml.plist
48
+ "9":
49
+ name: entity.name.tag.xml.plist
50
+ "1":
51
+ name: meta.tag.dict.xml.plist
52
+ "2":
53
+ name: punctuation.definition.tag.xml.plist
54
+ "3":
55
+ name: entity.name.tag.xml.plist
56
+ "4":
57
+ name: entity.name.tag.localname.xml.plist
58
+ "10":
59
+ name: entity.name.tag.localname.xml.plist
60
+ "5":
61
+ name: punctuation.definition.tag.xml.plist
62
+ match: ((<)((dict))(>))(((<)/)((dict))(>))
63
+ comment: "Empty tag: Dictionary"
64
+ - captures:
65
+ "6":
66
+ name: meta.tag.array.xml.plist
67
+ "11":
68
+ name: punctuation.definition.tag.xml.plist
69
+ "7":
70
+ name: punctuation.definition.tag.xml.plist
71
+ "8":
72
+ name: meta.scope.between-tag-pair.xml.plist
73
+ "9":
74
+ name: entity.name.tag.xml.plist
75
+ "1":
76
+ name: meta.tag.array.xml.plist
77
+ "2":
78
+ name: punctuation.definition.tag.xml.plist
79
+ "3":
80
+ name: entity.name.tag.xml.plist
81
+ "4":
82
+ name: entity.name.tag.localname.xml.plist
83
+ "10":
84
+ name: entity.name.tag.localname.xml.plist
85
+ "5":
86
+ name: punctuation.definition.tag.xml.plist
87
+ match: ((<)((array))(>))(((<)/)((array))(>))
88
+ comment: "Empty tag: Array"
89
+ - captures:
90
+ "6":
91
+ name: meta.tag.string.xml.plist
92
+ "11":
93
+ name: punctuation.definition.tag.xml.plist
94
+ "7":
95
+ name: punctuation.definition.tag.xml.plist
96
+ "8":
97
+ name: meta.scope.between-tag-pair.xml.plist
98
+ "9":
99
+ name: entity.name.tag.xml.plist
100
+ "1":
101
+ name: meta.tag.string.xml.plist
102
+ "2":
103
+ name: punctuation.definition.tag.xml.plist
104
+ "3":
105
+ name: entity.name.tag.xml.plist
106
+ "4":
107
+ name: entity.name.tag.localname.xml.plist
108
+ "10":
109
+ name: entity.name.tag.localname.xml.plist
110
+ "5":
111
+ name: punctuation.definition.tag.xml.plist
112
+ match: ((<)((string))(>))(((<)/)((string))(>))
113
+ comment: "Empty tag: String"
114
+ - captures:
115
+ "1":
116
+ name: meta.tag.key.xml.plist
117
+ "2":
118
+ name: punctuation.definition.tag.xml.plist
119
+ "3":
120
+ name: entity.name.tag.xml.plist
121
+ "4":
122
+ name: entity.name.tag.localname.xml.plist
123
+ "5":
124
+ name: punctuation.definition.tag.xml.plist
125
+ begin: ((<)((key))(>))
126
+ contentName: constant.other.name.xml.plist
127
+ end: ((</)((key))(>))
128
+ patterns:
129
+ - captures:
130
+ "0":
131
+ name: punctuation.definition.constant.xml
132
+ begin: <!\[CDATA\[
133
+ end: "]]>"
134
+ comment: the extra captures are required to duplicate the effect of the namespace parsing in the XML syntax
135
+ - captures:
136
+ "1":
137
+ name: meta.tag.dict.xml.plist
138
+ "2":
139
+ name: punctuation.definition.tag.xml.plist
140
+ "3":
141
+ name: entity.name.tag.xml.plist
142
+ "4":
143
+ name: entity.name.tag.localname.xml.plist
144
+ "5":
145
+ name: punctuation.definition.tag.xml.plist
146
+ match: ((<)((dict))\s*?/(>))
147
+ comment: Self-closing Dictionary
148
+ - captures:
149
+ "1":
150
+ name: meta.tag.array.xml.plist
151
+ "2":
152
+ name: punctuation.definition.tag.xml.plist
153
+ "3":
154
+ name: entity.name.tag.xml.plist
155
+ "4":
156
+ name: entity.name.tag.localname.xml.plist
157
+ "5":
158
+ name: punctuation.definition.tag.xml.plist
159
+ match: ((<)((array))\s*?/(>))
160
+ comment: Self-closing Array
161
+ - captures:
162
+ "1":
163
+ name: meta.tag.string.xml.plist
164
+ "2":
165
+ name: punctuation.definition.tag.xml.plist
166
+ "3":
167
+ name: entity.name.tag.xml.plist
168
+ "4":
169
+ name: entity.name.tag.localname.xml.plist
170
+ "5":
171
+ name: punctuation.definition.tag.xml.plist
172
+ match: ((<)((string))\s*?/(>))
173
+ comment: Self-closing String
174
+ - captures:
175
+ "1":
176
+ name: meta.tag.key.xml.plist
177
+ "2":
178
+ name: punctuation.definition.tag.xml.plist
179
+ "3":
180
+ name: entity.name.tag.xml.plist
181
+ "4":
182
+ name: entity.name.tag.localname.xml.plist
183
+ "5":
184
+ name: punctuation.definition.tag.xml.plist
185
+ match: ((<)((key))\s*?/(>))
186
+ comment: Self-closing Key
187
+ - captures:
188
+ "1":
189
+ name: meta.tag.dict.xml.plist
190
+ "2":
191
+ name: punctuation.definition.tag.xml.plist
192
+ "3":
193
+ name: entity.name.tag.xml.plist
194
+ "4":
195
+ name: entity.name.tag.localname.xml.plist
196
+ "5":
197
+ name: punctuation.definition.tag.xml.plist
198
+ begin: ((<)((dict))(>))
199
+ end: ((</)((dict))(>))
200
+ patterns:
201
+ - include: "#xml_tags"
202
+ comment: Dictionary
203
+ - captures:
204
+ "1":
205
+ name: meta.tag.array.xml.plist
206
+ "2":
207
+ name: punctuation.definition.tag.xml.plist
208
+ "3":
209
+ name: entity.name.tag.xml.plist
210
+ "4":
211
+ name: entity.name.tag.localname.xml.plist
212
+ "5":
213
+ name: punctuation.definition.tag.xml.plist
214
+ begin: ((<)((array))(>))
215
+ end: ((</)((array))(>))
216
+ patterns:
217
+ - include: "#xml_tags"
218
+ comment: Array
219
+ - captures:
220
+ "1":
221
+ name: meta.tag.string.xml.plist
222
+ "2":
223
+ name: punctuation.definition.tag.xml.plist
224
+ "3":
225
+ name: entity.name.tag.xml.plist
226
+ "4":
227
+ name: entity.name.tag.localname.xml.plist
228
+ "5":
229
+ name: punctuation.definition.tag.xml.plist
230
+ begin: ((<)((string))(>))
231
+ contentName: string.quoted.other.xml.plist
232
+ end: ((</)((string))(>))
233
+ patterns:
234
+ - include: "#xml_innertag"
235
+ - name: string.unquoted.cdata.xml
236
+ captures:
237
+ "0":
238
+ name: punctuation.definition.string.xml
239
+ begin: <!\[CDATA\[
240
+ end: "]]>"
241
+ comment: Strings
242
+ - captures:
243
+ "1":
244
+ name: meta.tag.real.xml.plist
245
+ "2":
246
+ name: punctuation.definition.tag.xml.plist
247
+ "3":
248
+ name: entity.name.tag.xml.plist
249
+ "4":
250
+ name: entity.name.tag.localname.xml.plist
251
+ "5":
252
+ name: punctuation.definition.tag.xml.plist
253
+ begin: ((<)((real))(>))
254
+ end: ((</)((real))(>))
255
+ patterns:
256
+ - captures:
257
+ "0":
258
+ name: punctuation.definition.constant.xml
259
+ "1":
260
+ name: constant.numeric.real.xml.plist
261
+ begin: (<!\[CDATA\[)
262
+ end: (]]>)
263
+ patterns:
264
+ - name: constant.numeric.real.xml.plist
265
+ match: "[-+]?\\d+(\\.\\d*)?(E[-+]\\d+)?"
266
+ - name: invalid.illegal.not-a-number.xml.plist
267
+ match: .
268
+ - name: constant.numeric.real.xml.plist
269
+ match: "[-+]?\\d+(\\.\\d*)?(E[-+]\\d+)?"
270
+ - name: invalid.illegal.not-a-number.xml.plist
271
+ match: .
272
+ comment: Numeric
273
+ - captures:
274
+ "1":
275
+ name: meta.tag.integer.xml.plist
276
+ "2":
277
+ name: punctuation.definition.tag.xml.plist
278
+ "3":
279
+ name: entity.name.tag.xml.plist
280
+ "4":
281
+ name: entity.name.tag.localname.xml.plist
282
+ "5":
283
+ name: punctuation.definition.tag.xml.plist
284
+ begin: ((<)((integer))(>))
285
+ end: ((</)((integer))(>))
286
+ patterns:
287
+ - name: constant.numeric.integer.xml.plist
288
+ match: "[-+]?\\d+"
289
+ - name: invalid.illegal.not-a-number.xml.plist
290
+ match: .
291
+ comment: Integer
292
+ - captures:
293
+ "1":
294
+ name: meta.tag.boolean.xml.plist
295
+ "2":
296
+ name: punctuation.definition.tag.xml.plist
297
+ "3":
298
+ name: entity.name.tag.xml.plist
299
+ "4":
300
+ name: entity.name.tag.localname.xml.plist
301
+ "5":
302
+ name: punctuation.definition.tag.xml.plist
303
+ match: ((<)((true|false))\s*?(/>))
304
+ comment: Boolean
305
+ - captures:
306
+ "1":
307
+ name: meta.tag.data.xml.plist
308
+ "2":
309
+ name: punctuation.definition.tag.xml.plist
310
+ "3":
311
+ name: entity.name.tag.xml.plist
312
+ "4":
313
+ name: entity.name.tag.localname.xml.plist
314
+ "5":
315
+ name: punctuation.definition.tag.xml.plist
316
+ begin: ((<)((data))(>))
317
+ end: ((</)((data))(>))
318
+ patterns:
319
+ - name: constant.numeric.base64.xml.plist
320
+ match: "[A-Za-z0-9+/]"
321
+ - name: constant.numeric.base64.xml.plist
322
+ match: "="
323
+ - name: invalid.illegal.invalid-character.xml.plist
324
+ match: "[^ \\n\\t]"
325
+ comment: Data
326
+ - captures:
327
+ "1":
328
+ name: meta.tag.date.xml.plist
329
+ "2":
330
+ name: punctuation.definition.tag.xml.plist
331
+ "3":
332
+ name: entity.name.tag.xml.plist
333
+ "4":
334
+ name: entity.name.tag.localname.xml.plist
335
+ "5":
336
+ name: punctuation.definition.tag.xml.plist
337
+ begin: ((<)((date))(>))
338
+ end: ((</)((date))(>))
339
+ patterns:
340
+ - name: constant.other.date.xml.plist
341
+ match: "(?x)\n\
342
+ \t\t\t\t\t\t\t\t\t\t[0-9]{4}\t\t\t\t\t\t# Year\n\
343
+ \t\t\t\t\t\t\t\t\t\t-\t\t\t\t\t\t\t\t# Divider\n\
344
+ \t\t\t\t\t\t\t\t\t\t(0[1-9]|1[012])\t\t\t\t\t# Month\n\
345
+ \t\t\t\t\t\t\t\t\t\t-\t\t\t\t\t\t\t\t# Divider\n\
346
+ \t\t\t\t\t\t\t\t\t\t(?!00|3[2-9])[0-3][0-9]\t\t\t# Day\n\
347
+ \t\t\t\t\t\t\t\t\t\tT\t\t\t\t\t\t\t\t# Separator\n\
348
+ \t\t\t\t\t\t\t\t\t\t(?!2[5-9])[0-2][0-9]\t\t\t# Hour\n\
349
+ \t\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t# Divider\n\
350
+ \t\t\t\t\t\t\t\t\t\t[0-5][0-9]\t\t\t\t\t\t# Minute\n\
351
+ \t\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t# Divider\n\
352
+ \t\t\t\t\t\t\t\t\t\t(?!6[1-9])[0-6][0-9]\t\t\t# Second\n\
353
+ \t\t\t\t\t\t\t\t\t\tZ\t\t\t\t\t\t\t\t# Zulu\n\
354
+ \t\t\t\t\t\t\t\t\t"
355
+ comment: Date
356
+ - include: "#xml_invalid"
357
+ - include: "#xml_comment"
358
+ - include: "#xml_stray-char"
359
+ xml_innertag:
360
+ patterns:
361
+ - name: constant.character.entity.xml.plist
362
+ match: "&([a-zA-Z0-9_-]+|#[0-9]+|#x[0-9a-fA-F]+);"
363
+ - name: invalid.illegal.bad-ampersand.xml.plist
364
+ match: "&"
365
+ xml:
366
+ patterns:
367
+ - captures:
368
+ "1":
369
+ name: meta.tag.plist.xml.plist
370
+ "2":
371
+ name: punctuation.definition.tag.xml.plist
372
+ "3":
373
+ name: entity.name.tag.xml.plist
374
+ "4":
375
+ name: entity.name.tag.localname.xml.plist
376
+ "5":
377
+ name: punctuation.definition.tag.xml.plist
378
+ begin: ((<)((plist\b)))
379
+ end: ((/)((plist))(>))
380
+ patterns:
381
+ - name: meta.tag.plist.xml.plist
382
+ begin: (?<=<plist)(?!>)\s*(?:(version)(=)(?:((").*?("))|((').*?('))))?
383
+ beginCaptures:
384
+ "6":
385
+ name: string.quoted.single.xml.plist
386
+ "7":
387
+ name: punctuation.definition.string.begin.xml.plist
388
+ "8":
389
+ name: punctuation.definition.string.end.xml.plist
390
+ "1":
391
+ name: entity.other.attribute-name.version.xml.plist
392
+ "2":
393
+ name: punctuation.separator.key-value.xml.plist
394
+ "3":
395
+ name: string.quoted.double.xml.plist
396
+ "4":
397
+ name: punctuation.definition.string.begin.xml.plist
398
+ "5":
399
+ name: punctuation.definition.string.end.xml.plist
400
+ end: (?=>)
401
+ - captures:
402
+ "1":
403
+ name: meta.tag.plist.xml.plist
404
+ "2":
405
+ name: punctuation.definition.tag.xml.plist
406
+ "3":
407
+ name: meta.scope.between-tag-pair.xml.plist
408
+ match: ((>(<)))(?=/plist)
409
+ comment: Tag with no content
410
+ - endCaptures:
411
+ "0":
412
+ name: meta.tag.plist.xml.plist
413
+ "1":
414
+ name: punctuation.definition.tag.xml.plist
415
+ begin: ((>))(?!</plist)
416
+ beginCaptures:
417
+ "1":
418
+ name: meta.tag.plist.xml.plist
419
+ "2":
420
+ name: punctuation.definition.tag.xml.plist
421
+ end: (<)(?=/plist)
422
+ patterns:
423
+ - include: "#xml_tags"
424
+ - include: "#xml_invalid"
425
+ - include: "#xml_comment"
426
+ - include: text.xml
427
+ - include: "#xml_stray-char"
428
+ openstep_data:
429
+ name: meta.binary-data.plist
430
+ endCaptures:
431
+ "1":
432
+ name: punctuation.terminator.data.plist
433
+ "2":
434
+ name: punctuation.definition.data.plist
435
+ begin: (<)
436
+ beginCaptures:
437
+ "1":
438
+ name: punctuation.definition.data.plist
439
+ end: (=?)\s*?(>)
440
+ patterns:
441
+ - name: constant.numeric.base64.plist
442
+ match: "[A-Za-z0-9+/]"
443
+ - name: invalid.illegal.invalid-character.plist
444
+ match: "[^ \\n]"
445
+ xml_stray-char:
446
+ name: invalid.illegal.character-data-not-allowed-here.xml.plist
447
+ match: \S
448
+ openstep_post-value:
449
+ begin: (?<='|"|\}|\)|>|[-a-zA-Z0-9_.])(?!;)
450
+ end: (?=;)
451
+ patterns:
452
+ - include: "#openstep_stray-char"
453
+ openstep_dictionary:
454
+ name: meta.group.dictionary.plist
455
+ captures:
456
+ "1":
457
+ name: punctuation.section.dictionary.plist
458
+ begin: (\{)
459
+ end: (\})
460
+ patterns:
461
+ - include: "#openstep_name"
462
+ - include: "#openstep_comment"
463
+ - include: "#openstep_stray-char"
464
+ xml_comment:
465
+ name: comment.block.xml.plist
466
+ captures:
467
+ "0":
468
+ name: punctuation.definition.comment.xml.plist
469
+ begin: <!--
470
+ end: (?<!-)-->
471
+ patterns:
472
+ - name: invalid.illegal.double-dash-not-allowed.xml.plist
473
+ match: -(?=-->)|--
474
+ openstep_string-contents:
475
+ name: constant.character.escape.plist
476
+ match: \\([uU](\h{4}|\h{2})|\d{1,3}|.)
477
+ openstep_stray-char:
478
+ name: invalid.illegal.character-not-allowed-here.plist
479
+ match: "[^\\s\\n]"
480
+ xml_invalid:
481
+ captures:
482
+ "1":
483
+ name: meta.tag.boolean.xml.plist
484
+ "2":
485
+ name: punctuation.definition.tag.xml.plist
486
+ "3":
487
+ name: invalid.illegal.tag-not-recognized.xml.plist
488
+ "4":
489
+ name: punctuation.definition.tag.xml.plist
490
+ match: ((<)/?(\w+).*?(>))
491
+ comment: Invalid tag
492
+ openstep_string:
493
+ patterns:
494
+ - name: string.quoted.single.plist
495
+ endCaptures:
496
+ "0":
497
+ name: punctuation.definition.string.end.plist
498
+ begin: "'"
499
+ beginCaptures:
500
+ "0":
501
+ name: punctuation.definition.string.begin.plist
502
+ end: "'"
503
+ patterns:
504
+ - include: "#openstep_string-contents"
505
+ - name: string.quoted.double.plist
506
+ endCaptures:
507
+ "0":
508
+ name: punctuation.definition.string.end.plist
509
+ begin: "\""
510
+ beginCaptures:
511
+ "0":
512
+ name: punctuation.definition.string.begin.plist
513
+ end: "\""
514
+ patterns:
515
+ - include: "#openstep_string-contents"
516
+ - name: constant.numeric.plist
517
+ match: "[-+]?\\d+(\\.\\d*)?(E[-+]\\d+)?"
518
+ - name: string.unquoted.plist
519
+ match: "[-a-zA-Z0-9_.]+"
520
+ openstep_plist:
521
+ name: meta.rule.plist.plist
522
+ captures:
523
+ "0":
524
+ name: punctuation.section.plist.plist
525
+ begin: \{
526
+ end: \}
527
+ patterns:
528
+ - include: "#openstep_comment"
529
+ - include: "#openstep_name"
530
+ - include: "#openstep_stray-char"
531
+ openstep_name:
532
+ patterns:
533
+ - name: meta.rule.named.plist
534
+ endCaptures:
535
+ "1":
536
+ name: punctuation.terminator.array.plist
537
+ "2":
538
+ name: punctuation.terminator.dictionary.plist
539
+ "3":
540
+ name: punctuation.terminator.rule.plist
541
+ begin: (?=([-a-zA-Z0-9_.]+)|("|'))
542
+ end: ((?<=\));)|((?<=\});)|(;)
543
+ patterns:
544
+ - name: constant.other.key.plist
545
+ match: "[-a-zA-Z0-9_.]+"
546
+ - begin: (?<=('|"|[-a-zA-Z0-9_.]))(?!=)|\s
547
+ end: (?==)
548
+ patterns:
549
+ - include: "#openstep_stray-char"
550
+ comment: |-
551
+ Mark anything between the name and the =
552
+ as invalid.
553
+ - name: constant.other.key.plist
554
+ endCaptures:
555
+ "0":
556
+ name: punctuation.definition.string.end.plist
557
+ begin: ("|')
558
+ beginCaptures:
559
+ "0":
560
+ name: punctuation.definition.string.begin.plist
561
+ end: (\1)
562
+ patterns:
563
+ - include: "#openstep_string-contents"
564
+ - begin: (=)(?!;)
565
+ beginCaptures:
566
+ "1":
567
+ name: punctuation.separator.key-value.plist
568
+ end: (?=;)
569
+ patterns:
570
+ - include: "#openstep_post-value"
571
+ - include: "#openstep_string"
572
+ - include: "#openstep_data"
573
+ - include: "#openstep_array"
574
+ - include: "#openstep_dictionary"
575
+ openstep_array-item:
576
+ endCaptures:
577
+ "1":
578
+ name: punctuation.separator.array.plist
579
+ begin: (?={|\(|"|'|[-a-zA-Z0-9_.]|<)
580
+ end: (,)|(?=\))
581
+ patterns:
582
+ - include: "#openstep_string"
583
+ - include: "#openstep_data"
584
+ - include: "#openstep_dictionary"
585
+ - include: "#openstep_array"
586
+ - begin: (?<="|'|\}|\))
587
+ end: (?=,|\))
588
+ patterns:
589
+ - include: "#openstep_comment"
590
+ - include: "#openstep_stray-char"
591
+ comment: Catch stray chars
592
+ openstep_array:
593
+ name: meta.group.array.plist
594
+ captures:
595
+ "1":
596
+ name: punctuation.section.array.plist
597
+ begin: (\()
598
+ end: (\))
599
+ patterns:
600
+ - include: "#openstep_array-item"
601
+ - include: "#openstep_comment"
602
+ - include: "#openstep_stray-char"
603
+ uuid: E62B2729-6B1C-11D9-AE35-000D93589AF6
604
+ foldingStartMarker: "(?x)\n\
605
+ \t\t\t\t\t\t\t(\n\
606
+ \t\t\t\t\t\t\t\t(^|=|=[ ]|\\s\\s|\\t)\t\t\t\t# Openstep foldings\n\
607
+ \t\t\t\t\t\t\t\t(\\{|\\()(?!.*(\\)|\\}))\t\t\t# spaces before them to \n\
608
+ \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# limit false positives\n\
609
+ \t\t\t\t\t\t\t | (\n\
610
+ \t\t\t\t\t\t\t\t\t^\\s*\n\
611
+ \t\t\t\t\t\t\t\t\t(\n\
612
+ \t\t\t\t\t\t\t\t\t\t<[^!?%/](?!.+?(/>\n\
613
+ \t\t\t\t\t\t\t\t\t | </.+?>))\n\
614
+ \t\t\t\t\t\t\t\t\t | <[!%]--(?!.+?--%?>)\n\
615
+ \t\t\t\t\t\t\t\t\t)\n\
616
+ \t\t\t\t\t\t\t\t)\n\
617
+ \t\t\t\t\t\t\t)\n\
618
+ \t\t\t\t\t\t "
619
+ patterns:
620
+ - name: text.xml.plist
621
+ begin: xml|plist
622
+ end: \Z(?!\n)
623
+ comment: This gives us the proper scope for the xml or plist snippet.
624
+ - name: source.plist.binary
625
+ begin: ^bplist00
626
+ end: \Z(?!\n)
627
+ comment: This gives us the proper scope for the convert plist command.
628
+ - name: text.xml.plist
629
+ begin: (?=\s*(<\?xml|<!DOCTYPE\s*plist))
630
+ end: \Z(?!\n)
631
+ patterns:
632
+ - include: "#xml"
633
+ - name: source.plist
634
+ begin: (?=\s*({|//|/\*))
635
+ end: \Z(?!\n)
636
+ patterns:
637
+ - include: "#openstep"
638
+ foldingStopMarker: "(?x)\n\
639
+ \t\t\t\t\t\t\t(\n\
640
+ \t\t\t\t\t\t\t\t(\\}|\\))(,|;)?\t\t\t\t\t# Openstep foldings\n\
641
+ \t\t\t\t\t\t\t\t.*$\t\t\t\t\t\t\t\t# limit false positives\n\
642
+ \t\t\t\t\t\t\t | (^\\s*(</[^>]+>|/>|-->)\\s*$)\t\t# XML\t\t\t\t\t\t\n\
643
+ \t\t\t\t\t\t\t)\n\
644
+ \t\t\t\t\t\t"
645
+ keyEquivalent: ^~P