highlighting 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (236) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +52 -0
  3. data/app/helpers/syntax_helper.rb +2 -0
  4. data/lib/highlighting.rb +6 -0
  5. data/lib/highlighting/version.rb +3 -0
  6. data/vendor/assets/javascripts/prism-abap.js +48 -0
  7. data/vendor/assets/javascripts/prism-abap.min.js +1 -0
  8. data/vendor/assets/javascripts/prism-actionscript.js +17 -0
  9. data/vendor/assets/javascripts/prism-actionscript.min.js +1 -0
  10. data/vendor/assets/javascripts/prism-apacheconf.js +47 -0
  11. data/vendor/assets/javascripts/prism-apacheconf.min.js +1 -0
  12. data/vendor/assets/javascripts/prism-apl.js +29 -0
  13. data/vendor/assets/javascripts/prism-apl.min.js +1 -0
  14. data/vendor/assets/javascripts/prism-applescript.js +20 -0
  15. data/vendor/assets/javascripts/prism-applescript.min.js +1 -0
  16. data/vendor/assets/javascripts/prism-asciidoc.js +271 -0
  17. data/vendor/assets/javascripts/prism-asciidoc.min.js +1 -0
  18. data/vendor/assets/javascripts/prism-aspnet.js +36 -0
  19. data/vendor/assets/javascripts/prism-aspnet.min.js +1 -0
  20. data/vendor/assets/javascripts/prism-autohotkey.js +27 -0
  21. data/vendor/assets/javascripts/prism-autohotkey.min.js +1 -0
  22. data/vendor/assets/javascripts/prism-autoit.js +33 -0
  23. data/vendor/assets/javascripts/prism-autoit.min.js +1 -0
  24. data/vendor/assets/javascripts/prism-bash.js +78 -0
  25. data/vendor/assets/javascripts/prism-bash.min.js +1 -0
  26. data/vendor/assets/javascripts/prism-basic.js +14 -0
  27. data/vendor/assets/javascripts/prism-basic.min.js +1 -0
  28. data/vendor/assets/javascripts/prism-batch.js +99 -0
  29. data/vendor/assets/javascripts/prism-batch.min.js +1 -0
  30. data/vendor/assets/javascripts/prism-bison.js +39 -0
  31. data/vendor/assets/javascripts/prism-bison.min.js +1 -0
  32. data/vendor/assets/javascripts/prism-brainfuck.js +20 -0
  33. data/vendor/assets/javascripts/prism-brainfuck.min.js +1 -0
  34. data/vendor/assets/javascripts/prism-c.js +33 -0
  35. data/vendor/assets/javascripts/prism-c.min.js +1 -0
  36. data/vendor/assets/javascripts/prism-clike.js +26 -0
  37. data/vendor/assets/javascripts/prism-clike.min.js +1 -0
  38. data/vendor/assets/javascripts/prism-coffeescript.js +83 -0
  39. data/vendor/assets/javascripts/prism-coffeescript.min.js +1 -0
  40. data/vendor/assets/javascripts/prism-core.js +434 -0
  41. data/vendor/assets/javascripts/prism-core.min.js +1 -0
  42. data/vendor/assets/javascripts/prism-cpp.js +12 -0
  43. data/vendor/assets/javascripts/prism-cpp.min.js +1 -0
  44. data/vendor/assets/javascripts/prism-crystal.js +53 -0
  45. data/vendor/assets/javascripts/prism-crystal.min.js +1 -0
  46. data/vendor/assets/javascripts/prism-csharp.js +24 -0
  47. data/vendor/assets/javascripts/prism-csharp.min.js +1 -0
  48. data/vendor/assets/javascripts/prism-css-extras.js +15 -0
  49. data/vendor/assets/javascripts/prism-css-extras.min.js +1 -0
  50. data/vendor/assets/javascripts/prism-css.js +48 -0
  51. data/vendor/assets/javascripts/prism-css.min.js +1 -0
  52. data/vendor/assets/javascripts/prism-d.js +64 -0
  53. data/vendor/assets/javascripts/prism-d.min.js +1 -0
  54. data/vendor/assets/javascripts/prism-dart.js +18 -0
  55. data/vendor/assets/javascripts/prism-dart.min.js +1 -0
  56. data/vendor/assets/javascripts/prism-diff.js +20 -0
  57. data/vendor/assets/javascripts/prism-diff.min.js +1 -0
  58. data/vendor/assets/javascripts/prism-docker.js +9 -0
  59. data/vendor/assets/javascripts/prism-docker.min.js +1 -0
  60. data/vendor/assets/javascripts/prism-eiffel.js +24 -0
  61. data/vendor/assets/javascripts/prism-eiffel.min.js +1 -0
  62. data/vendor/assets/javascripts/prism-elixir.js +90 -0
  63. data/vendor/assets/javascripts/prism-elixir.min.js +1 -0
  64. data/vendor/assets/javascripts/prism-erlang.js +41 -0
  65. data/vendor/assets/javascripts/prism-erlang.min.js +1 -0
  66. data/vendor/assets/javascripts/prism-fortran.js +37 -0
  67. data/vendor/assets/javascripts/prism-fortran.min.js +1 -0
  68. data/vendor/assets/javascripts/prism-fsharp.js +33 -0
  69. data/vendor/assets/javascripts/prism-fsharp.min.js +1 -0
  70. data/vendor/assets/javascripts/prism-gherkin.js +78 -0
  71. data/vendor/assets/javascripts/prism-gherkin.min.js +1 -0
  72. data/vendor/assets/javascripts/prism-git.js +68 -0
  73. data/vendor/assets/javascripts/prism-git.min.js +1 -0
  74. data/vendor/assets/javascripts/prism-glsl.js +16 -0
  75. data/vendor/assets/javascripts/prism-glsl.min.js +1 -0
  76. data/vendor/assets/javascripts/prism-go.js +9 -0
  77. data/vendor/assets/javascripts/prism-go.min.js +1 -0
  78. data/vendor/assets/javascripts/prism-groovy.js +51 -0
  79. data/vendor/assets/javascripts/prism-groovy.min.js +1 -0
  80. data/vendor/assets/javascripts/prism-haml.js +154 -0
  81. data/vendor/assets/javascripts/prism-haml.min.js +1 -0
  82. data/vendor/assets/javascripts/prism-handlebars.js +83 -0
  83. data/vendor/assets/javascripts/prism-handlebars.min.js +1 -0
  84. data/vendor/assets/javascripts/prism-haskell.js +32 -0
  85. data/vendor/assets/javascripts/prism-haskell.min.js +1 -0
  86. data/vendor/assets/javascripts/prism-haxe.js +43 -0
  87. data/vendor/assets/javascripts/prism-haxe.min.js +1 -0
  88. data/vendor/assets/javascripts/prism-http.js +50 -0
  89. data/vendor/assets/javascripts/prism-http.min.js +1 -0
  90. data/vendor/assets/javascripts/prism-icon.js +17 -0
  91. data/vendor/assets/javascripts/prism-icon.min.js +1 -0
  92. data/vendor/assets/javascripts/prism-inform7.js +58 -0
  93. data/vendor/assets/javascripts/prism-inform7.min.js +1 -0
  94. data/vendor/assets/javascripts/prism-ini.js +11 -0
  95. data/vendor/assets/javascripts/prism-ini.min.js +1 -0
  96. data/vendor/assets/javascripts/prism-j.js +22 -0
  97. data/vendor/assets/javascripts/prism-j.min.js +1 -0
  98. data/vendor/assets/javascripts/prism-jade.js +198 -0
  99. data/vendor/assets/javascripts/prism-jade.min.js +1 -0
  100. data/vendor/assets/javascripts/prism-java.js +8 -0
  101. data/vendor/assets/javascripts/prism-java.min.js +1 -0
  102. data/vendor/assets/javascripts/prism-javascript.js +45 -0
  103. data/vendor/assets/javascripts/prism-javascript.min.js +1 -0
  104. data/vendor/assets/javascripts/prism-jsx.js +24 -0
  105. data/vendor/assets/javascripts/prism-jsx.min.js +1 -0
  106. data/vendor/assets/javascripts/prism-julia.js +12 -0
  107. data/vendor/assets/javascripts/prism-julia.min.js +1 -0
  108. data/vendor/assets/javascripts/prism-keyman.js +14 -0
  109. data/vendor/assets/javascripts/prism-keyman.min.js +1 -0
  110. data/vendor/assets/javascripts/prism-kotlin.js +68 -0
  111. data/vendor/assets/javascripts/prism-kotlin.min.js +1 -0
  112. data/vendor/assets/javascripts/prism-latex.js +61 -0
  113. data/vendor/assets/javascripts/prism-latex.min.js +1 -0
  114. data/vendor/assets/javascripts/prism-less.js +60 -0
  115. data/vendor/assets/javascripts/prism-less.min.js +1 -0
  116. data/vendor/assets/javascripts/prism-lolcode.js +54 -0
  117. data/vendor/assets/javascripts/prism-lolcode.min.js +1 -0
  118. data/vendor/assets/javascripts/prism-lua.js +17 -0
  119. data/vendor/assets/javascripts/prism-lua.min.js +1 -0
  120. data/vendor/assets/javascripts/prism-makefile.js +31 -0
  121. data/vendor/assets/javascripts/prism-makefile.min.js +1 -0
  122. data/vendor/assets/javascripts/prism-markdown.js +120 -0
  123. data/vendor/assets/javascripts/prism-markdown.min.js +1 -0
  124. data/vendor/assets/javascripts/prism-markup.js +46 -0
  125. data/vendor/assets/javascripts/prism-markup.min.js +1 -0
  126. data/vendor/assets/javascripts/prism-matlab.js +14 -0
  127. data/vendor/assets/javascripts/prism-matlab.min.js +1 -0
  128. data/vendor/assets/javascripts/prism-mel.js +39 -0
  129. data/vendor/assets/javascripts/prism-mel.min.js +1 -0
  130. data/vendor/assets/javascripts/prism-mizar.js +12 -0
  131. data/vendor/assets/javascripts/prism-mizar.min.js +1 -0
  132. data/vendor/assets/javascripts/prism-monkey.js +25 -0
  133. data/vendor/assets/javascripts/prism-monkey.min.js +1 -0
  134. data/vendor/assets/javascripts/prism-nasm.js +24 -0
  135. data/vendor/assets/javascripts/prism-nasm.min.js +1 -0
  136. data/vendor/assets/javascripts/prism-nginx.js +11 -0
  137. data/vendor/assets/javascripts/prism-nginx.min.js +1 -0
  138. data/vendor/assets/javascripts/prism-nim.js +30 -0
  139. data/vendor/assets/javascripts/prism-nim.min.js +1 -0
  140. data/vendor/assets/javascripts/prism-nix.js +39 -0
  141. data/vendor/assets/javascripts/prism-nix.min.js +1 -0
  142. data/vendor/assets/javascripts/prism-nsis.js +19 -0
  143. data/vendor/assets/javascripts/prism-nsis.min.js +1 -0
  144. data/vendor/assets/javascripts/prism-objectivec.js +5 -0
  145. data/vendor/assets/javascripts/prism-objectivec.min.js +1 -0
  146. data/vendor/assets/javascripts/prism-ocaml.js +21 -0
  147. data/vendor/assets/javascripts/prism-ocaml.min.js +1 -0
  148. data/vendor/assets/javascripts/prism-oz.js +21 -0
  149. data/vendor/assets/javascripts/prism-oz.min.js +1 -0
  150. data/vendor/assets/javascripts/prism-parigp.js +27 -0
  151. data/vendor/assets/javascripts/prism-parigp.min.js +1 -0
  152. data/vendor/assets/javascripts/prism-parser.js +66 -0
  153. data/vendor/assets/javascripts/prism-parser.min.js +1 -0
  154. data/vendor/assets/javascripts/prism-pascal.js +50 -0
  155. data/vendor/assets/javascripts/prism-pascal.min.js +1 -0
  156. data/vendor/assets/javascripts/prism-perl.js +140 -0
  157. data/vendor/assets/javascripts/prism-perl.min.js +1 -0
  158. data/vendor/assets/javascripts/prism-php-extras.js +11 -0
  159. data/vendor/assets/javascripts/prism-php-extras.min.js +1 -0
  160. data/vendor/assets/javascripts/prism-php.js +110 -0
  161. data/vendor/assets/javascripts/prism-php.min.js +1 -0
  162. data/vendor/assets/javascripts/prism-powershell.js +48 -0
  163. data/vendor/assets/javascripts/prism-powershell.min.js +1 -0
  164. data/vendor/assets/javascripts/prism-processing.js +18 -0
  165. data/vendor/assets/javascripts/prism-processing.min.js +1 -0
  166. data/vendor/assets/javascripts/prism-prolog.js +17 -0
  167. data/vendor/assets/javascripts/prism-prolog.min.js +1 -0
  168. data/vendor/assets/javascripts/prism-puppet.js +131 -0
  169. data/vendor/assets/javascripts/prism-puppet.min.js +1 -0
  170. data/vendor/assets/javascripts/prism-pure.js +77 -0
  171. data/vendor/assets/javascripts/prism-pure.min.js +1 -0
  172. data/vendor/assets/javascripts/prism-python.js +24 -0
  173. data/vendor/assets/javascripts/prism-python.min.js +1 -0
  174. data/vendor/assets/javascripts/prism-q.js +44 -0
  175. data/vendor/assets/javascripts/prism-q.min.js +1 -0
  176. data/vendor/assets/javascripts/prism-qore.js +17 -0
  177. data/vendor/assets/javascripts/prism-qore.min.js +1 -0
  178. data/vendor/assets/javascripts/prism-r.js +19 -0
  179. data/vendor/assets/javascripts/prism-r.min.js +1 -0
  180. data/vendor/assets/javascripts/prism-rest.js +205 -0
  181. data/vendor/assets/javascripts/prism-rest.min.js +1 -0
  182. data/vendor/assets/javascripts/prism-rip.js +28 -0
  183. data/vendor/assets/javascripts/prism-rip.min.js +1 -0
  184. data/vendor/assets/javascripts/prism-roboconf.js +27 -0
  185. data/vendor/assets/javascripts/prism-roboconf.min.js +1 -0
  186. data/vendor/assets/javascripts/prism-ruby.js +110 -0
  187. data/vendor/assets/javascripts/prism-ruby.min.js +1 -0
  188. data/vendor/assets/javascripts/prism-rust.js +53 -0
  189. data/vendor/assets/javascripts/prism-rust.min.js +1 -0
  190. data/vendor/assets/javascripts/prism-sas.js +31 -0
  191. data/vendor/assets/javascripts/prism-sas.min.js +1 -0
  192. data/vendor/assets/javascripts/prism-sass.js +73 -0
  193. data/vendor/assets/javascripts/prism-sass.min.js +1 -0
  194. data/vendor/assets/javascripts/prism-scala.js +9 -0
  195. data/vendor/assets/javascripts/prism-scala.min.js +1 -0
  196. data/vendor/assets/javascripts/prism-scheme.js +26 -0
  197. data/vendor/assets/javascripts/prism-scheme.min.js +1 -0
  198. data/vendor/assets/javascripts/prism-scss.js +60 -0
  199. data/vendor/assets/javascripts/prism-scss.min.js +1 -0
  200. data/vendor/assets/javascripts/prism-smalltalk.js +31 -0
  201. data/vendor/assets/javascripts/prism-smalltalk.min.js +1 -0
  202. data/vendor/assets/javascripts/prism-smarty.js +127 -0
  203. data/vendor/assets/javascripts/prism-smarty.min.js +1 -0
  204. data/vendor/assets/javascripts/prism-sql.js +17 -0
  205. data/vendor/assets/javascripts/prism-sql.min.js +1 -0
  206. data/vendor/assets/javascripts/prism-stylus.js +102 -0
  207. data/vendor/assets/javascripts/prism-stylus.min.js +1 -0
  208. data/vendor/assets/javascripts/prism-swift.js +24 -0
  209. data/vendor/assets/javascripts/prism-swift.min.js +1 -0
  210. data/vendor/assets/javascripts/prism-tcl.js +43 -0
  211. data/vendor/assets/javascripts/prism-tcl.min.js +1 -0
  212. data/vendor/assets/javascripts/prism-textile.js +254 -0
  213. data/vendor/assets/javascripts/prism-textile.min.js +1 -0
  214. data/vendor/assets/javascripts/prism-twig.js +46 -0
  215. data/vendor/assets/javascripts/prism-twig.min.js +1 -0
  216. data/vendor/assets/javascripts/prism-typescript.js +3 -0
  217. data/vendor/assets/javascripts/prism-typescript.min.js +1 -0
  218. data/vendor/assets/javascripts/prism-verilog.js +17 -0
  219. data/vendor/assets/javascripts/prism-verilog.min.js +1 -0
  220. data/vendor/assets/javascripts/prism-vhdl.js +23 -0
  221. data/vendor/assets/javascripts/prism-vhdl.min.js +1 -0
  222. data/vendor/assets/javascripts/prism-vim.js +10 -0
  223. data/vendor/assets/javascripts/prism-vim.min.js +1 -0
  224. data/vendor/assets/javascripts/prism-wiki.js +81 -0
  225. data/vendor/assets/javascripts/prism-wiki.min.js +1 -0
  226. data/vendor/assets/javascripts/prism-yaml.js +44 -0
  227. data/vendor/assets/javascripts/prism-yaml.min.js +1 -0
  228. data/vendor/assets/javascripts/prism.js +708 -0
  229. data/vendor/assets/stylesheets/prism-coy.css +235 -0
  230. data/vendor/assets/stylesheets/prism-dark.css +128 -0
  231. data/vendor/assets/stylesheets/prism-funky.css +117 -0
  232. data/vendor/assets/stylesheets/prism-okaidia.css +121 -0
  233. data/vendor/assets/stylesheets/prism-tomorrow.css +121 -0
  234. data/vendor/assets/stylesheets/prism-twilight.css +201 -0
  235. data/vendor/assets/stylesheets/prism.css +137 -0
  236. metadata +306 -0
@@ -0,0 +1 @@
1
+ !function(e){var t=/\{\*[\w\W]+?\*\}|\{[\w\W]+?\}/g,a="{literal}",n="{/literal}",o=!1;e.languages.smarty=e.languages.extend("markup",{smarty:{pattern:t,inside:{delimiter:{pattern:/^\{|\}$/i,alias:"punctuation"},string:/(["'])(?:\\?.)*?\1/,number:/\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee][-+]?\d+)?)\b/,variable:[/\$(?!\d)\w+/,/#(?!\d)\w+#/,{pattern:/(\.|->)(?!\d)\w+/,lookbehind:!0},{pattern:/(\[)(?!\d)\w+(?=\])/,lookbehind:!0}],"function":[{pattern:/(\|\s*)@?(?!\d)\w+/,lookbehind:!0},/^\/?(?!\d)\w+/,/(?!\d)\w+(?=\()/],"attr-name":{pattern:/\w+\s*=\s*(?:(?!\d)\w+)?/,inside:{variable:{pattern:/(=\s*)(?!\d)\w+/,lookbehind:!0},operator:/=/}},punctuation:[/[\[\]().,:`]|\->/],operator:[/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,/\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\b/],keyword:/\b(?:false|off|on|no|true|yes)\b/}}}),e.languages.insertBefore("smarty","tag",{"smarty-comment":{pattern:/\{\*[\w\W]*?\*\}/,alias:["smarty","comment"]}}),e.hooks.add("before-highlight",function(e){"smarty"===e.language&&(e.tokenStack=[],e.backupCode=e.code,e.code=e.code.replace(t,function(t){return t===n&&(o=!1),o?t:(t===a&&(o=!0),e.tokenStack.push(t),"___SMARTY"+e.tokenStack.length+"___")}))}),e.hooks.add("before-insert",function(e){"smarty"===e.language&&(e.code=e.backupCode,delete e.backupCode)}),e.hooks.add("after-highlight",function(t){if("smarty"===t.language){for(var a,n=0;a=t.tokenStack[n];n++)t.highlightedCode=t.highlightedCode.replace("___SMARTY"+(n+1)+"___",e.highlight(a,t.grammar,"smarty").replace(/\$/g,"$$$$"));t.element.innerHTML=t.highlightedCode}})}(Prism);
@@ -0,0 +1,17 @@
1
+ Prism.languages.sql= {
2
+ 'comment': {
3
+ pattern: /(^|[^\\])(?:\/\*[\w\W]*?\*\/|(?:--|\/\/|#).*)/,
4
+ lookbehind: true
5
+ },
6
+ 'string' : {
7
+ pattern: /(^|[^@\\])("|')(?:\\?[\s\S])*?\2/,
8
+ lookbehind: true
9
+ },
10
+ 'variable': /@[\w.$]+|@("|'|`)(?:\\?[\s\S])+?\1/,
11
+ 'function': /\b(?:COUNT|SUM|AVG|MIN|MAX|FIRST|LAST|UCASE|LCASE|MID|LEN|ROUND|NOW|FORMAT)(?=\s*\()/i, // Should we highlight user defined functions too?
12
+ 'keyword': /\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR VARYING|CHARACTER (?:SET|VARYING)|CHARSET|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|DATA(?:BASES?)?|DATETIME|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE(?: PRECISION)?|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE KEY|ELSE|ENABLE|ENCLOSED BY|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPE(?:D BY)?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTO|INVOKER|ISOLATION LEVEL|JOIN|KEYS?|KILL|LANGUAGE SQL|LAST|LEFT|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MODIFIES SQL DATA|MODIFY|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL(?: CHAR VARYING| CHARACTER(?: VARYING)?| VARCHAR)?|NATURAL|NCHAR(?: VARCHAR)?|NEXT|NO(?: SQL|CHECK|CYCLE)?|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READ(?:S SQL DATA|TEXT)?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEATABLE|REPLICATION|REQUIRE|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE MODE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|START(?:ING BY)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED BY|TEXT(?:SIZE)?|THEN|TIMESTAMP|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNPIVOT|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?)\b/i,
13
+ 'boolean': /\b(?:TRUE|FALSE|NULL)\b/i,
14
+ 'number': /\b-?(?:0x)?\d*\.?[\da-f]+\b/,
15
+ 'operator': /[-+*\/=%^~]|&&?|\|?\||!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,
16
+ 'punctuation': /[;[\]()`,.]/
17
+ };
@@ -0,0 +1 @@
1
+ Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\w\W]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},string:{pattern:/(^|[^@\\])("|')(?:\\?[\s\S])*?\2/,lookbehind:!0},variable:/@[\w.$]+|@("|'|`)(?:\\?[\s\S])+?\1/,"function":/\b(?:COUNT|SUM|AVG|MIN|MAX|FIRST|LAST|UCASE|LCASE|MID|LEN|ROUND|NOW|FORMAT)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR VARYING|CHARACTER (?:SET|VARYING)|CHARSET|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|DATA(?:BASES?)?|DATETIME|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE(?: PRECISION)?|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE KEY|ELSE|ENABLE|ENCLOSED BY|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPE(?:D BY)?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTO|INVOKER|ISOLATION LEVEL|JOIN|KEYS?|KILL|LANGUAGE SQL|LAST|LEFT|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MODIFIES SQL DATA|MODIFY|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL(?: CHAR VARYING| CHARACTER(?: VARYING)?| VARCHAR)?|NATURAL|NCHAR(?: VARCHAR)?|NEXT|NO(?: SQL|CHECK|CYCLE)?|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READ(?:S SQL DATA|TEXT)?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEATABLE|REPLICATION|REQUIRE|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE MODE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|START(?:ING BY)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED BY|TEXT(?:SIZE)?|THEN|TIMESTAMP|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNPIVOT|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?)\b/i,"boolean":/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b-?(?:0x)?\d*\.?[\da-f]+\b/,operator:/[-+*\/=%^~]|&&?|\|?\||!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/};
@@ -0,0 +1,102 @@
1
+ (function (Prism) {
2
+ var inside = {
3
+ 'url': /url\((["']?).*?\1\)/i,
4
+ 'string': /("|')(?:[^\\\r\n]|\\(?:\r\n|[\s\S]))*?\1/,
5
+ 'interpolation': null, // See below
6
+ 'func': null, // See below
7
+ 'important': /\B!(?:important|optional)\b/i,
8
+ 'keyword': {
9
+ pattern: /(^|\s+)(?:(?:if|else|for|return|unless)(?=\s+|$)|@[\w-]+)/,
10
+ lookbehind: true
11
+ },
12
+ 'hexcode': /#[\da-f]{3,6}/i,
13
+ 'number': /\b\d+(?:\.\d+)?%?/,
14
+ 'boolean': /\b(?:true|false)\b/,
15
+ 'operator': [
16
+ // We want non-word chars around "-" because it is
17
+ // accepted in property names.
18
+ /~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.+|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/
19
+ ],
20
+ 'punctuation': /[{}()\[\];:,]/
21
+ };
22
+
23
+ inside['interpolation'] = {
24
+ pattern: /\{[^\r\n}:]+\}/,
25
+ alias: 'variable',
26
+ inside: Prism.util.clone(inside)
27
+ };
28
+ inside['func'] = {
29
+ pattern: /[\w-]+\([^)]*\).*/,
30
+ inside: {
31
+ 'function': /^[^(]+/,
32
+ rest: Prism.util.clone(inside)
33
+ }
34
+ };
35
+
36
+ Prism.languages.stylus = {
37
+ 'comment': {
38
+ pattern: /(^|[^\\])(\/\*[\w\W]*?\*\/|\/\/.*)/,
39
+ lookbehind: true
40
+ },
41
+ 'atrule-declaration': {
42
+ pattern: /(^\s*)@.+/m,
43
+ lookbehind: true,
44
+ inside: {
45
+ 'atrule': /^@[\w-]+/,
46
+ rest: inside
47
+ }
48
+ },
49
+ 'variable-declaration': {
50
+ pattern: /(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:(?:\{[^}]*\}|.+)|$)/m,
51
+ lookbehind: true,
52
+ inside: {
53
+ 'variable': /^\S+/,
54
+ rest: inside
55
+ }
56
+ },
57
+
58
+ 'statement': {
59
+ pattern: /(^[ \t]*)(?:if|else|for|return|unless)[ \t]+.+/m,
60
+ lookbehind: true,
61
+ inside: {
62
+ keyword: /^\S+/,
63
+ rest: inside
64
+ }
65
+ },
66
+
67
+ // A property/value pair cannot end with a comma or a brace
68
+ // It cannot have indented content unless it ended with a semicolon
69
+ 'property-declaration': {
70
+ pattern: /((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)[^{\r\n]*(?:;|[^{\r\n,](?=$)(?!(\r?\n|\r)(?:\{|\2[ \t]+)))/m,
71
+ lookbehind: true,
72
+ inside: {
73
+ 'property': {
74
+ pattern: /^[^\s:]+/,
75
+ inside: {
76
+ 'interpolation': inside.interpolation
77
+ }
78
+ },
79
+ rest: inside
80
+ }
81
+ },
82
+
83
+
84
+
85
+ // A selector can contain parentheses only as part of a pseudo-element
86
+ // It can span multiple lines.
87
+ // It must end with a comma or an accolade or have indented content.
88
+ 'selector': {
89
+ pattern: /(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t]+)))/m,
90
+ lookbehind: true,
91
+ inside: {
92
+ 'interpolation': inside.interpolation,
93
+ 'punctuation': /[{},]/
94
+ }
95
+ },
96
+
97
+ 'func': inside.func,
98
+ 'string': inside.string,
99
+ 'interpolation': inside.interpolation,
100
+ 'punctuation': /[{}()\[\];:.]/
101
+ };
102
+ }(Prism));
@@ -0,0 +1 @@
1
+ !function(n){var t={url:/url\((["']?).*?\1\)/i,string:/("|')(?:[^\\\r\n]|\\(?:\r\n|[\s\S]))*?\1/,interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:if|else|for|return|unless)(?=\s+|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,number:/\b\d+(?:\.\d+)?%?/,"boolean":/\b(?:true|false)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.+|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],punctuation:/[{}()\[\];:,]/};t.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:n.util.clone(t)},t.func={pattern:/[\w-]+\([^)]*\).*/,inside:{"function":/^[^(]+/,rest:n.util.clone(t)}},n.languages.stylus={comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|\/\/.*)/,lookbehind:!0},"atrule-declaration":{pattern:/(^\s*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:t}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:(?:\{[^}]*\}|.+)|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:t}},statement:{pattern:/(^[ \t]*)(?:if|else|for|return|unless)[ \t]+.+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:t}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)[^{\r\n]*(?:;|[^{\r\n,](?=$)(?!(\r?\n|\r)(?:\{|\2[ \t]+)))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:t.interpolation}},rest:t}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t]+)))/m,lookbehind:!0,inside:{interpolation:t.interpolation,punctuation:/[{},]/}},func:t.func,string:t.string,interpolation:t.interpolation,punctuation:/[{}()\[\];:.]/}}(Prism);
@@ -0,0 +1,24 @@
1
+ // issues: nested multiline comments
2
+ Prism.languages.swift = Prism.languages.extend('clike', {
3
+ 'string': {
4
+ pattern: /("|')(\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
5
+ inside: {
6
+ 'interpolation': {
7
+ pattern: /\\\((?:[^()]|\([^)]+\))+\)/,
8
+ inside: {
9
+ delimiter: {
10
+ pattern: /^\\\(|\)$/,
11
+ alias: 'variable'
12
+ }
13
+ // See rest below
14
+ }
15
+ }
16
+ }
17
+ },
18
+ 'keyword': /\b(as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|Protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,
19
+ 'number': /\b([\d_]+(\.[\de_]+)?|0x[a-f0-9_]+(\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,
20
+ 'constant': /\b(nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,
21
+ 'atrule': /@\b(IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,
22
+ 'builtin': /\b([A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/
23
+ });
24
+ Prism.languages.swift['string'].inside['interpolation'].inside.rest = Prism.util.clone(Prism.languages.swift);
@@ -0,0 +1 @@
1
+ Prism.languages.swift=Prism.languages.extend("clike",{string:{pattern:/("|')(\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,inside:{interpolation:{pattern:/\\\((?:[^()]|\([^)]+\))+\)/,inside:{delimiter:{pattern:/^\\\(|\)$/,alias:"variable"}}}}},keyword:/\b(as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|Protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,number:/\b([\d_]+(\.[\de_]+)?|0x[a-f0-9_]+(\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,constant:/\b(nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,atrule:/@\b(IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,builtin:/\b([A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/}),Prism.languages.swift.string.inside.interpolation.inside.rest=Prism.util.clone(Prism.languages.swift);
@@ -0,0 +1,43 @@
1
+ Prism.languages.tcl = {
2
+ 'comment': {
3
+ pattern: /(^|[^\\])#.*/,
4
+ lookbehind: true
5
+ },
6
+ 'string': /"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,
7
+ 'variable': [
8
+ {
9
+ pattern: /(\$)(?:::)?(?:[a-zA-Z0-9]+::)*[a-zA-Z0-9_]+/,
10
+ lookbehind: true
11
+ },
12
+ {
13
+ pattern: /(\$){[^}]+}/,
14
+ lookbehind: true
15
+ },
16
+ {
17
+ pattern: /(^\s*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*[a-zA-Z0-9_]+/m,
18
+ lookbehind: true
19
+ }
20
+ ],
21
+ 'function': {
22
+ pattern: /(^\s*proc[ \t]+)[^\s]+/m,
23
+ lookbehind: true
24
+ },
25
+ 'builtin': [
26
+ {
27
+ pattern: /(^\s*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\b/m,
28
+ lookbehind: true
29
+ },
30
+ /\b(elseif|else)\b/
31
+ ],
32
+ 'scope': {
33
+ pattern: /(^\s*)(global|upvar|variable)\b/m,
34
+ lookbehind: true,
35
+ alias: 'constant'
36
+ },
37
+ 'keyword': {
38
+ pattern: /(^\s*|\[)(after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,
39
+ lookbehind: true
40
+ },
41
+ 'operator': /!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|ne|in|ni)\b/,
42
+ 'punctuation': /[{}()\[\]]/
43
+ };
@@ -0,0 +1 @@
1
+ Prism.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*[a-zA-Z0-9_]+/,lookbehind:!0},{pattern:/(\$){[^}]+}/,lookbehind:!0},{pattern:/(^\s*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*[a-zA-Z0-9_]+/m,lookbehind:!0}],"function":{pattern:/(^\s*proc[ \t]+)[^\s]+/m,lookbehind:!0},builtin:[{pattern:/(^\s*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\b/m,lookbehind:!0},/\b(elseif|else)\b/],scope:{pattern:/(^\s*)(global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^\s*|\[)(after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|ne|in|ni)\b/,punctuation:/[{}()\[\]]/};
@@ -0,0 +1,254 @@
1
+ (function(Prism) {
2
+ // We don't allow for pipes inside parentheses
3
+ // to not break table pattern |(. foo |). bar |
4
+ var modifierRegex = '(?:\\([^|)]+\\)|\\[[^\\]]+\\]|\\{[^}]+\\})+';
5
+ var modifierTokens = {
6
+ 'css': {
7
+ pattern: /\{[^}]+\}/,
8
+ inside: {
9
+ rest: Prism.languages.css
10
+ }
11
+ },
12
+ 'class-id': {
13
+ pattern: /(\()[^)]+(?=\))/,
14
+ lookbehind: true,
15
+ alias: 'attr-value'
16
+ },
17
+ 'lang': {
18
+ pattern: /(\[)[^\]]+(?=\])/,
19
+ lookbehind: true,
20
+ alias: 'attr-value'
21
+ },
22
+ // Anything else is punctuation (the first pattern is for row/col spans inside tables)
23
+ 'punctuation': /[\\\/]\d+|\S/
24
+ };
25
+
26
+
27
+ Prism.languages.textile = Prism.languages.extend('markup', {
28
+ 'phrase': {
29
+ pattern: /(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,
30
+ lookbehind: true,
31
+ inside: {
32
+
33
+ // h1. Header 1
34
+ 'block-tag': {
35
+ pattern: RegExp('^[a-z]\\w*(?:' + modifierRegex + '|[<>=()])*\\.'),
36
+ inside: {
37
+ 'modifier': {
38
+ pattern: RegExp('(^[a-z]\\w*)(?:' + modifierRegex + '|[<>=()])+(?=\\.)'),
39
+ lookbehind: true,
40
+ inside: Prism.util.clone(modifierTokens)
41
+ },
42
+ 'tag': /^[a-z]\w*/,
43
+ 'punctuation': /\.$/
44
+ }
45
+ },
46
+
47
+ // # List item
48
+ // * List item
49
+ 'list': {
50
+ pattern: RegExp('^[*#]+(?:' + modifierRegex + ')?\\s+.+', 'm'),
51
+ inside: {
52
+ 'modifier': {
53
+ pattern: RegExp('(^[*#]+)' + modifierRegex),
54
+ lookbehind: true,
55
+ inside: Prism.util.clone(modifierTokens)
56
+ },
57
+ 'punctuation': /^[*#]+/
58
+ }
59
+ },
60
+
61
+ // | cell | cell | cell |
62
+ 'table': {
63
+ // Modifiers can be applied to the row: {color:red}.|1|2|3|
64
+ // or the cell: |{color:red}.1|2|3|
65
+ pattern: RegExp('^(?:(?:' + modifierRegex + '|[<>=()^~])+\\.\\s*)?(?:\\|(?:(?:' + modifierRegex + '|[<>=()^~_]|[\\\\/]\\d+)+\\.)?[^|]*)+\\|', 'm'),
66
+ inside: {
67
+ 'modifier': {
68
+ // Modifiers for rows after the first one are
69
+ // preceded by a pipe and a line feed
70
+ pattern: RegExp('(^|\\|(?:\\r?\\n|\\r)?)(?:' + modifierRegex + '|[<>=()^~_]|[\\\\/]\\d+)+(?=\\.)'),
71
+ lookbehind: true,
72
+ inside: Prism.util.clone(modifierTokens)
73
+ },
74
+ 'punctuation': /\||^\./
75
+ }
76
+ },
77
+
78
+ 'inline': {
79
+ pattern: RegExp('(\\*\\*|__|\\?\\?|[*_%@+\\-^~])(?:' + modifierRegex + ')?.+?\\1'),
80
+ inside: {
81
+ // Note: superscripts and subscripts are not handled specifically
82
+
83
+ // *bold*, **bold**
84
+ 'bold': {
85
+ pattern: RegExp('((^\\*\\*?)(?:' + modifierRegex + ')?).+?(?=\\2)'),
86
+ lookbehind: true
87
+ },
88
+
89
+ // _italic_, __italic__
90
+ 'italic': {
91
+ pattern: RegExp('((^__?)(?:' + modifierRegex + ')?).+?(?=\\2)'),
92
+ lookbehind: true
93
+ },
94
+
95
+ // ??cite??
96
+ 'cite': {
97
+ pattern: RegExp('(^\\?\\?(?:' + modifierRegex + ')?).+?(?=\\?\\?)'),
98
+ lookbehind: true,
99
+ alias: 'string'
100
+ },
101
+
102
+ // @code@
103
+ 'code': {
104
+ pattern: RegExp('(^@(?:' + modifierRegex + ')?).+?(?=@)'),
105
+ lookbehind: true,
106
+ alias: 'keyword'
107
+ },
108
+
109
+ // +inserted+
110
+ 'inserted': {
111
+ pattern: RegExp('(^\\+(?:' + modifierRegex + ')?).+?(?=\\+)'),
112
+ lookbehind: true
113
+ },
114
+
115
+ // -deleted-
116
+ 'deleted': {
117
+ pattern: RegExp('(^-(?:' + modifierRegex + ')?).+?(?=-)'),
118
+ lookbehind: true
119
+ },
120
+
121
+ // %span%
122
+ 'span': {
123
+ pattern: RegExp('(^%(?:' + modifierRegex + ')?).+?(?=%)'),
124
+ lookbehind: true
125
+ },
126
+
127
+ 'modifier': {
128
+ pattern: RegExp('(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])' + modifierRegex),
129
+ lookbehind: true,
130
+ inside: Prism.util.clone(modifierTokens)
131
+ },
132
+ 'punctuation': /[*_%?@+\-^~]+/
133
+ }
134
+ },
135
+
136
+ // [alias]http://example.com
137
+ 'link-ref': {
138
+ pattern: /^\[[^\]]+\]\S+$/m,
139
+ inside: {
140
+ 'string': {
141
+ pattern: /(\[)[^\]]+(?=\])/,
142
+ lookbehind: true
143
+ },
144
+ 'url': {
145
+ pattern: /(\])\S+$/,
146
+ lookbehind: true
147
+ },
148
+ 'punctuation': /[\[\]]/
149
+ }
150
+ },
151
+
152
+ // "text":http://example.com
153
+ // "text":link-ref
154
+ 'link': {
155
+ pattern: RegExp('"(?:' + modifierRegex + ')?[^"]+":.+?(?=[^\\w/]?(?:\\s|$))'),
156
+ inside: {
157
+ 'text': {
158
+ pattern: RegExp('(^"(?:' + modifierRegex + ')?)[^"]+(?=")'),
159
+ lookbehind: true
160
+ },
161
+ 'modifier': {
162
+ pattern: RegExp('(^")' + modifierRegex),
163
+ lookbehind: true,
164
+ inside: Prism.util.clone(modifierTokens)
165
+ },
166
+ 'url': {
167
+ pattern: /(:).+/,
168
+ lookbehind: true
169
+ },
170
+ 'punctuation': /[":]/
171
+ }
172
+ },
173
+
174
+ // !image.jpg!
175
+ // !image.jpg(Title)!:http://example.com
176
+ 'image': {
177
+ pattern: RegExp('!(?:' + modifierRegex + '|[<>=()])*[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?'),
178
+ inside: {
179
+ 'source': {
180
+ pattern: RegExp('(^!(?:' + modifierRegex + '|[<>=()])*)[^!\\s()]+(?:\\([^)]+\\))?(?=!)'),
181
+ lookbehind: true,
182
+ alias: 'url'
183
+ },
184
+ 'modifier': {
185
+ pattern: RegExp('(^!)(?:' + modifierRegex + '|[<>=()])+'),
186
+ lookbehind: true,
187
+ inside: Prism.util.clone(modifierTokens)
188
+ },
189
+ 'url': {
190
+ pattern: /(:).+/,
191
+ lookbehind: true
192
+ },
193
+ 'punctuation': /[!:]/
194
+ }
195
+ },
196
+
197
+ // Footnote[1]
198
+ 'footnote': {
199
+ pattern: /\b\[\d+\]/,
200
+ alias: 'comment',
201
+ inside: {
202
+ 'punctuation': /\[|\]/
203
+ }
204
+ },
205
+
206
+ // CSS(Cascading Style Sheet)
207
+ 'acronym': {
208
+ pattern: /\b[A-Z\d]+\([^)]+\)/,
209
+ inside: {
210
+ 'comment': {
211
+ pattern: /(\()[^)]+(?=\))/,
212
+ lookbehind: true
213
+ },
214
+ 'punctuation': /[()]/
215
+ }
216
+ },
217
+
218
+ // Prism(C)
219
+ 'mark': {
220
+ pattern: /\b\((TM|R|C)\)/,
221
+ alias: 'comment',
222
+ inside: {
223
+ 'punctuation':/[()]/
224
+ }
225
+ }
226
+ }
227
+ }
228
+ });
229
+
230
+ var nestedPatterns = {
231
+ 'inline': Prism.util.clone(Prism.languages.textile['phrase'].inside['inline']),
232
+ 'link': Prism.util.clone(Prism.languages.textile['phrase'].inside['link']),
233
+ 'image': Prism.util.clone(Prism.languages.textile['phrase'].inside['image']),
234
+ 'footnote': Prism.util.clone(Prism.languages.textile['phrase'].inside['footnote']),
235
+ 'acronym': Prism.util.clone(Prism.languages.textile['phrase'].inside['acronym']),
236
+ 'mark': Prism.util.clone(Prism.languages.textile['phrase'].inside['mark'])
237
+ };
238
+
239
+ // Allow some nesting
240
+ Prism.languages.textile['phrase'].inside['inline'].inside['bold'].inside = nestedPatterns;
241
+ Prism.languages.textile['phrase'].inside['inline'].inside['italic'].inside = nestedPatterns;
242
+ Prism.languages.textile['phrase'].inside['inline'].inside['inserted'].inside = nestedPatterns;
243
+ Prism.languages.textile['phrase'].inside['inline'].inside['deleted'].inside = nestedPatterns;
244
+ Prism.languages.textile['phrase'].inside['inline'].inside['span'].inside = nestedPatterns;
245
+
246
+ // Allow some styles inside table cells
247
+ Prism.languages.textile['phrase'].inside['table'].inside['inline'] = nestedPatterns['inline'];
248
+ Prism.languages.textile['phrase'].inside['table'].inside['link'] = nestedPatterns['link'];
249
+ Prism.languages.textile['phrase'].inside['table'].inside['image'] = nestedPatterns['image'];
250
+ Prism.languages.textile['phrase'].inside['table'].inside['footnote'] = nestedPatterns['footnote'];
251
+ Prism.languages.textile['phrase'].inside['table'].inside['acronym'] = nestedPatterns['acronym'];
252
+ Prism.languages.textile['phrase'].inside['table'].inside['mark'] = nestedPatterns['mark'];
253
+
254
+ }(Prism));