gitlab-pygments.rb 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (399) hide show
  1. data/.gitignore +6 -0
  2. data/Gemfile +2 -0
  3. data/README.md +91 -0
  4. data/Rakefile +78 -0
  5. data/bench.rb +22 -0
  6. data/cache-lexers.rb +8 -0
  7. data/lexers +0 -0
  8. data/lib/pygments/lexer.rb +148 -0
  9. data/lib/pygments/mentos.py +344 -0
  10. data/lib/pygments/popen.rb +389 -0
  11. data/lib/pygments/version.rb +3 -0
  12. data/lib/pygments.rb +8 -0
  13. data/pygments.rb.gemspec +24 -0
  14. data/test/test_data.c +2581 -0
  15. data/test/test_data.py +514 -0
  16. data/test/test_data_generated +2582 -0
  17. data/test/test_pygments.rb +276 -0
  18. data/vendor/custom_formatters/gitlab.py +171 -0
  19. data/vendor/custom_lexers/github.py +362 -0
  20. data/vendor/pygments-main/AUTHORS +115 -0
  21. data/vendor/pygments-main/CHANGES +762 -0
  22. data/vendor/pygments-main/LICENSE +25 -0
  23. data/vendor/pygments-main/MANIFEST.in +6 -0
  24. data/vendor/pygments-main/Makefile +59 -0
  25. data/vendor/pygments-main/REVISION +1 -0
  26. data/vendor/pygments-main/TODO +15 -0
  27. data/vendor/pygments-main/docs/generate.py +472 -0
  28. data/vendor/pygments-main/docs/pygmentize.1 +94 -0
  29. data/vendor/pygments-main/docs/src/api.txt +270 -0
  30. data/vendor/pygments-main/docs/src/authors.txt +5 -0
  31. data/vendor/pygments-main/docs/src/changelog.txt +5 -0
  32. data/vendor/pygments-main/docs/src/cmdline.txt +147 -0
  33. data/vendor/pygments-main/docs/src/filterdevelopment.txt +70 -0
  34. data/vendor/pygments-main/docs/src/filters.txt +42 -0
  35. data/vendor/pygments-main/docs/src/formatterdevelopment.txt +169 -0
  36. data/vendor/pygments-main/docs/src/formatters.txt +48 -0
  37. data/vendor/pygments-main/docs/src/index.txt +69 -0
  38. data/vendor/pygments-main/docs/src/installation.txt +71 -0
  39. data/vendor/pygments-main/docs/src/integrate.txt +43 -0
  40. data/vendor/pygments-main/docs/src/lexerdevelopment.txt +551 -0
  41. data/vendor/pygments-main/docs/src/lexers.txt +67 -0
  42. data/vendor/pygments-main/docs/src/moinmoin.txt +39 -0
  43. data/vendor/pygments-main/docs/src/plugins.txt +93 -0
  44. data/vendor/pygments-main/docs/src/quickstart.txt +202 -0
  45. data/vendor/pygments-main/docs/src/rstdirective.txt +22 -0
  46. data/vendor/pygments-main/docs/src/styles.txt +143 -0
  47. data/vendor/pygments-main/docs/src/tokens.txt +349 -0
  48. data/vendor/pygments-main/docs/src/unicode.txt +49 -0
  49. data/vendor/pygments-main/external/markdown-processor.py +67 -0
  50. data/vendor/pygments-main/external/moin-parser.py +112 -0
  51. data/vendor/pygments-main/external/pygments.bashcomp +38 -0
  52. data/vendor/pygments-main/external/rst-directive-old.py +77 -0
  53. data/vendor/pygments-main/external/rst-directive.py +83 -0
  54. data/vendor/pygments-main/ez_setup.py +276 -0
  55. data/vendor/pygments-main/pygmentize +7 -0
  56. data/vendor/pygments-main/pygments/__init__.py +91 -0
  57. data/vendor/pygments-main/pygments/cmdline.py +433 -0
  58. data/vendor/pygments-main/pygments/console.py +74 -0
  59. data/vendor/pygments-main/pygments/filter.py +74 -0
  60. data/vendor/pygments-main/pygments/filters/__init__.py +357 -0
  61. data/vendor/pygments-main/pygments/formatter.py +92 -0
  62. data/vendor/pygments-main/pygments/formatters/__init__.py +68 -0
  63. data/vendor/pygments-main/pygments/formatters/_mapping.py +94 -0
  64. data/vendor/pygments-main/pygments/formatters/bbcode.py +109 -0
  65. data/vendor/pygments-main/pygments/formatters/gitlab.py +171 -0
  66. data/vendor/pygments-main/pygments/formatters/html.py +750 -0
  67. data/vendor/pygments-main/pygments/formatters/img.py +553 -0
  68. data/vendor/pygments-main/pygments/formatters/latex.py +378 -0
  69. data/vendor/pygments-main/pygments/formatters/other.py +117 -0
  70. data/vendor/pygments-main/pygments/formatters/rtf.py +136 -0
  71. data/vendor/pygments-main/pygments/formatters/svg.py +154 -0
  72. data/vendor/pygments-main/pygments/formatters/terminal.py +112 -0
  73. data/vendor/pygments-main/pygments/formatters/terminal256.py +222 -0
  74. data/vendor/pygments-main/pygments/lexer.py +697 -0
  75. data/vendor/pygments-main/pygments/lexers/__init__.py +229 -0
  76. data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1645 -0
  77. data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +232 -0
  78. data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +249 -0
  79. data/vendor/pygments-main/pygments/lexers/_mapping.py +298 -0
  80. data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +3787 -0
  81. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +232 -0
  82. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +29 -0
  83. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +3 -0
  84. data/vendor/pygments-main/pygments/lexers/agile.py +1803 -0
  85. data/vendor/pygments-main/pygments/lexers/asm.py +360 -0
  86. data/vendor/pygments-main/pygments/lexers/compiled.py +2891 -0
  87. data/vendor/pygments-main/pygments/lexers/dotnet.py +636 -0
  88. data/vendor/pygments-main/pygments/lexers/functional.py +1832 -0
  89. data/vendor/pygments-main/pygments/lexers/github.py +362 -0
  90. data/vendor/pygments-main/pygments/lexers/hdl.py +356 -0
  91. data/vendor/pygments-main/pygments/lexers/jvm.py +847 -0
  92. data/vendor/pygments-main/pygments/lexers/math.py +1072 -0
  93. data/vendor/pygments-main/pygments/lexers/other.py +3339 -0
  94. data/vendor/pygments-main/pygments/lexers/parsers.py +695 -0
  95. data/vendor/pygments-main/pygments/lexers/shell.py +361 -0
  96. data/vendor/pygments-main/pygments/lexers/special.py +100 -0
  97. data/vendor/pygments-main/pygments/lexers/sql.py +559 -0
  98. data/vendor/pygments-main/pygments/lexers/templates.py +1631 -0
  99. data/vendor/pygments-main/pygments/lexers/text.py +1753 -0
  100. data/vendor/pygments-main/pygments/lexers/web.py +2864 -0
  101. data/vendor/pygments-main/pygments/plugin.py +74 -0
  102. data/vendor/pygments-main/pygments/scanner.py +104 -0
  103. data/vendor/pygments-main/pygments/style.py +117 -0
  104. data/vendor/pygments-main/pygments/styles/__init__.py +70 -0
  105. data/vendor/pygments-main/pygments/styles/autumn.py +65 -0
  106. data/vendor/pygments-main/pygments/styles/borland.py +51 -0
  107. data/vendor/pygments-main/pygments/styles/bw.py +49 -0
  108. data/vendor/pygments-main/pygments/styles/colorful.py +81 -0
  109. data/vendor/pygments-main/pygments/styles/default.py +73 -0
  110. data/vendor/pygments-main/pygments/styles/emacs.py +72 -0
  111. data/vendor/pygments-main/pygments/styles/friendly.py +72 -0
  112. data/vendor/pygments-main/pygments/styles/fruity.py +42 -0
  113. data/vendor/pygments-main/pygments/styles/manni.py +75 -0
  114. data/vendor/pygments-main/pygments/styles/monokai.py +106 -0
  115. data/vendor/pygments-main/pygments/styles/murphy.py +80 -0
  116. data/vendor/pygments-main/pygments/styles/native.py +65 -0
  117. data/vendor/pygments-main/pygments/styles/pastie.py +75 -0
  118. data/vendor/pygments-main/pygments/styles/perldoc.py +69 -0
  119. data/vendor/pygments-main/pygments/styles/rrt.py +33 -0
  120. data/vendor/pygments-main/pygments/styles/tango.py +141 -0
  121. data/vendor/pygments-main/pygments/styles/trac.py +63 -0
  122. data/vendor/pygments-main/pygments/styles/vim.py +63 -0
  123. data/vendor/pygments-main/pygments/styles/vs.py +38 -0
  124. data/vendor/pygments-main/pygments/token.py +195 -0
  125. data/vendor/pygments-main/pygments/unistring.py +130 -0
  126. data/vendor/pygments-main/pygments/util.py +232 -0
  127. data/vendor/pygments-main/scripts/check_sources.py +242 -0
  128. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +30 -0
  129. data/vendor/pygments-main/scripts/epydoc.css +280 -0
  130. data/vendor/pygments-main/scripts/find_codetags.py +205 -0
  131. data/vendor/pygments-main/scripts/find_error.py +171 -0
  132. data/vendor/pygments-main/scripts/get_vimkw.py +43 -0
  133. data/vendor/pygments-main/scripts/pylintrc +301 -0
  134. data/vendor/pygments-main/scripts/reindent.py +291 -0
  135. data/vendor/pygments-main/scripts/vim2pygments.py +933 -0
  136. data/vendor/pygments-main/setup.cfg +6 -0
  137. data/vendor/pygments-main/setup.py +88 -0
  138. data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +37 -0
  139. data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +869 -0
  140. data/vendor/pygments-main/tests/dtds/HTML4.dcl +88 -0
  141. data/vendor/pygments-main/tests/dtds/HTML4.dtd +1092 -0
  142. data/vendor/pygments-main/tests/dtds/HTML4.soc +9 -0
  143. data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +195 -0
  144. data/vendor/pygments-main/tests/dtds/HTMLspec.ent +77 -0
  145. data/vendor/pygments-main/tests/dtds/HTMLsym.ent +241 -0
  146. data/vendor/pygments-main/tests/examplefiles/ANTLRv3.g +608 -0
  147. data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +209 -0
  148. data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +102 -0
  149. data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +611 -0
  150. data/vendor/pygments-main/tests/examplefiles/Constants.mo +158 -0
  151. data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +411 -0
  152. data/vendor/pygments-main/tests/examplefiles/Errors.scala +18 -0
  153. data/vendor/pygments-main/tests/examplefiles/File.hy +174 -0
  154. data/vendor/pygments-main/tests/examplefiles/Intro.java +1660 -0
  155. data/vendor/pygments-main/tests/examplefiles/Makefile +1131 -0
  156. data/vendor/pygments-main/tests/examplefiles/Object.st +4394 -0
  157. data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +584 -0
  158. data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +378 -0
  159. data/vendor/pygments-main/tests/examplefiles/Sorting.mod +470 -0
  160. data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +382 -0
  161. data/vendor/pygments-main/tests/examplefiles/addressbook.proto +30 -0
  162. data/vendor/pygments-main/tests/examplefiles/antlr_throws +1 -0
  163. data/vendor/pygments-main/tests/examplefiles/apache2.conf +393 -0
  164. data/vendor/pygments-main/tests/examplefiles/as3_test.as +143 -0
  165. data/vendor/pygments-main/tests/examplefiles/as3_test2.as +46 -0
  166. data/vendor/pygments-main/tests/examplefiles/as3_test3.as +3 -0
  167. data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +27 -0
  168. data/vendor/pygments-main/tests/examplefiles/badcase.java +2 -0
  169. data/vendor/pygments-main/tests/examplefiles/batchfile.bat +49 -0
  170. data/vendor/pygments-main/tests/examplefiles/boot-9.scm +1557 -0
  171. data/vendor/pygments-main/tests/examplefiles/cells.ps +515 -0
  172. data/vendor/pygments-main/tests/examplefiles/ceval.c +2604 -0
  173. data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +13 -0
  174. data/vendor/pygments-main/tests/examplefiles/classes.dylan +40 -0
  175. data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +10 -0
  176. data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +447 -0
  177. data/vendor/pygments-main/tests/examplefiles/database.pytb +20 -0
  178. data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +2461 -0
  179. data/vendor/pygments-main/tests/examplefiles/demo.ahk +181 -0
  180. data/vendor/pygments-main/tests/examplefiles/demo.cfm +38 -0
  181. data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +68 -0
  182. data/vendor/pygments-main/tests/examplefiles/dwarf.cw +17 -0
  183. data/vendor/pygments-main/tests/examplefiles/erl_session +10 -0
  184. data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +1 -0
  185. data/vendor/pygments-main/tests/examplefiles/evil_regex.js +48 -0
  186. data/vendor/pygments-main/tests/examplefiles/example.c +2080 -0
  187. data/vendor/pygments-main/tests/examplefiles/example.cls +15 -0
  188. data/vendor/pygments-main/tests/examplefiles/example.cpp +2363 -0
  189. data/vendor/pygments-main/tests/examplefiles/example.gs +106 -0
  190. data/vendor/pygments-main/tests/examplefiles/example.gst +7 -0
  191. data/vendor/pygments-main/tests/examplefiles/example.kt +47 -0
  192. data/vendor/pygments-main/tests/examplefiles/example.lua +250 -0
  193. data/vendor/pygments-main/tests/examplefiles/example.moo +26 -0
  194. data/vendor/pygments-main/tests/examplefiles/example.moon +629 -0
  195. data/vendor/pygments-main/tests/examplefiles/example.nim +1010 -0
  196. data/vendor/pygments-main/tests/examplefiles/example.ns2 +69 -0
  197. data/vendor/pygments-main/tests/examplefiles/example.p +34 -0
  198. data/vendor/pygments-main/tests/examplefiles/example.pas +2708 -0
  199. data/vendor/pygments-main/tests/examplefiles/example.rb +1852 -0
  200. data/vendor/pygments-main/tests/examplefiles/example.rhtml +561 -0
  201. data/vendor/pygments-main/tests/examplefiles/example.sh-session +19 -0
  202. data/vendor/pygments-main/tests/examplefiles/example.sml +156 -0
  203. data/vendor/pygments-main/tests/examplefiles/example.snobol +15 -0
  204. data/vendor/pygments-main/tests/examplefiles/example.tea +34 -0
  205. data/vendor/pygments-main/tests/examplefiles/example.u +548 -0
  206. data/vendor/pygments-main/tests/examplefiles/example.weechatlog +9 -0
  207. data/vendor/pygments-main/tests/examplefiles/example.xhtml +376 -0
  208. data/vendor/pygments-main/tests/examplefiles/example.yaml +302 -0
  209. data/vendor/pygments-main/tests/examplefiles/example2.aspx +29 -0
  210. data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +363 -0
  211. data/vendor/pygments-main/tests/examplefiles/example_file.fy +128 -0
  212. data/vendor/pygments-main/tests/examplefiles/firefox.mak +586 -0
  213. data/vendor/pygments-main/tests/examplefiles/flipflop.sv +19 -0
  214. data/vendor/pygments-main/tests/examplefiles/foo.sce +6 -0
  215. data/vendor/pygments-main/tests/examplefiles/format.ml +1213 -0
  216. data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +77 -0
  217. data/vendor/pygments-main/tests/examplefiles/function.mu +1 -0
  218. data/vendor/pygments-main/tests/examplefiles/functional.rst +1472 -0
  219. data/vendor/pygments-main/tests/examplefiles/genclass.clj +510 -0
  220. data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +193 -0
  221. data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +33 -0
  222. data/vendor/pygments-main/tests/examplefiles/glsl.frag +7 -0
  223. data/vendor/pygments-main/tests/examplefiles/glsl.vert +13 -0
  224. data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +1 -0
  225. data/vendor/pygments-main/tests/examplefiles/http_request_example +14 -0
  226. data/vendor/pygments-main/tests/examplefiles/http_response_example +27 -0
  227. data/vendor/pygments-main/tests/examplefiles/import.hs +4 -0
  228. data/vendor/pygments-main/tests/examplefiles/intro.ik +24 -0
  229. data/vendor/pygments-main/tests/examplefiles/ints.php +10 -0
  230. data/vendor/pygments-main/tests/examplefiles/intsyn.fun +675 -0
  231. data/vendor/pygments-main/tests/examplefiles/intsyn.sig +286 -0
  232. data/vendor/pygments-main/tests/examplefiles/irb_heredoc +8 -0
  233. data/vendor/pygments-main/tests/examplefiles/irc.lsp +214 -0
  234. data/vendor/pygments-main/tests/examplefiles/java.properties +16 -0
  235. data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +28 -0
  236. data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +45 -0
  237. data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +713 -0
  238. data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +13 -0
  239. data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +47 -0
  240. data/vendor/pygments-main/tests/examplefiles/ltmain.sh +2849 -0
  241. data/vendor/pygments-main/tests/examplefiles/main.cmake +42 -0
  242. data/vendor/pygments-main/tests/examplefiles/markdown.lsp +679 -0
  243. data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +3 -0
  244. data/vendor/pygments-main/tests/examplefiles/matlab_sample +27 -0
  245. data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +37 -0
  246. data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +4 -0
  247. data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +340 -0
  248. data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +38 -0
  249. data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +96 -0
  250. data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +30 -0
  251. data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +87 -0
  252. data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +118 -0
  253. data/vendor/pygments-main/tests/examplefiles/numbers.c +12 -0
  254. data/vendor/pygments-main/tests/examplefiles/objc_example.m +25 -0
  255. data/vendor/pygments-main/tests/examplefiles/objc_example2.m +24 -0
  256. data/vendor/pygments-main/tests/examplefiles/perl_misc +62 -0
  257. data/vendor/pygments-main/tests/examplefiles/perl_perl5db +998 -0
  258. data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +120 -0
  259. data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +856 -0
  260. data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +567 -0
  261. data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +1223 -0
  262. data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +47 -0
  263. data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +10 -0
  264. data/vendor/pygments-main/tests/examplefiles/psql_session.txt +122 -0
  265. data/vendor/pygments-main/tests/examplefiles/py3_test.txt +2 -0
  266. data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +14 -0
  267. data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +2 -0
  268. data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +234 -0
  269. data/vendor/pygments-main/tests/examplefiles/qsort.prolog +13 -0
  270. data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +38 -0
  271. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +280 -0
  272. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +2 -0
  273. data/vendor/pygments-main/tests/examplefiles/regex.js +22 -0
  274. data/vendor/pygments-main/tests/examplefiles/reversi.lsp +427 -0
  275. data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +11 -0
  276. data/vendor/pygments-main/tests/examplefiles/scilab.sci +30 -0
  277. data/vendor/pygments-main/tests/examplefiles/sibling.prolog +19 -0
  278. data/vendor/pygments-main/tests/examplefiles/simple.md +747 -0
  279. data/vendor/pygments-main/tests/examplefiles/smarty_example.html +209 -0
  280. data/vendor/pygments-main/tests/examplefiles/source.lgt +343 -0
  281. data/vendor/pygments-main/tests/examplefiles/sources.list +62 -0
  282. data/vendor/pygments-main/tests/examplefiles/sphere.pov +18 -0
  283. data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +27 -0
  284. data/vendor/pygments-main/tests/examplefiles/squid.conf +30 -0
  285. data/vendor/pygments-main/tests/examplefiles/string.jl +1031 -0
  286. data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +21 -0
  287. data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +3 -0
  288. data/vendor/pygments-main/tests/examplefiles/test.R +119 -0
  289. data/vendor/pygments-main/tests/examplefiles/test.adb +211 -0
  290. data/vendor/pygments-main/tests/examplefiles/test.asy +131 -0
  291. data/vendor/pygments-main/tests/examplefiles/test.awk +121 -0
  292. data/vendor/pygments-main/tests/examplefiles/test.bas +29 -0
  293. data/vendor/pygments-main/tests/examplefiles/test.bmx +145 -0
  294. data/vendor/pygments-main/tests/examplefiles/test.boo +39 -0
  295. data/vendor/pygments-main/tests/examplefiles/test.bro +250 -0
  296. data/vendor/pygments-main/tests/examplefiles/test.cs +374 -0
  297. data/vendor/pygments-main/tests/examplefiles/test.css +54 -0
  298. data/vendor/pygments-main/tests/examplefiles/test.d +135 -0
  299. data/vendor/pygments-main/tests/examplefiles/test.dart +23 -0
  300. data/vendor/pygments-main/tests/examplefiles/test.dtd +89 -0
  301. data/vendor/pygments-main/tests/examplefiles/test.ec +605 -0
  302. data/vendor/pygments-main/tests/examplefiles/test.ecl +58 -0
  303. data/vendor/pygments-main/tests/examplefiles/test.eh +315 -0
  304. data/vendor/pygments-main/tests/examplefiles/test.erl +169 -0
  305. data/vendor/pygments-main/tests/examplefiles/test.evoque +33 -0
  306. data/vendor/pygments-main/tests/examplefiles/test.fan +818 -0
  307. data/vendor/pygments-main/tests/examplefiles/test.flx +57 -0
  308. data/vendor/pygments-main/tests/examplefiles/test.gdc +13 -0
  309. data/vendor/pygments-main/tests/examplefiles/test.groovy +97 -0
  310. data/vendor/pygments-main/tests/examplefiles/test.html +339 -0
  311. data/vendor/pygments-main/tests/examplefiles/test.ini +10 -0
  312. data/vendor/pygments-main/tests/examplefiles/test.java +653 -0
  313. data/vendor/pygments-main/tests/examplefiles/test.jsp +24 -0
  314. data/vendor/pygments-main/tests/examplefiles/test.maql +45 -0
  315. data/vendor/pygments-main/tests/examplefiles/test.mod +374 -0
  316. data/vendor/pygments-main/tests/examplefiles/test.moo +51 -0
  317. data/vendor/pygments-main/tests/examplefiles/test.myt +166 -0
  318. data/vendor/pygments-main/tests/examplefiles/test.nim +93 -0
  319. data/vendor/pygments-main/tests/examplefiles/test.pas +743 -0
  320. data/vendor/pygments-main/tests/examplefiles/test.php +505 -0
  321. data/vendor/pygments-main/tests/examplefiles/test.plot +333 -0
  322. data/vendor/pygments-main/tests/examplefiles/test.ps1 +108 -0
  323. data/vendor/pygments-main/tests/examplefiles/test.pypylog +1839 -0
  324. data/vendor/pygments-main/tests/examplefiles/test.r3 +94 -0
  325. data/vendor/pygments-main/tests/examplefiles/test.rb +177 -0
  326. data/vendor/pygments-main/tests/examplefiles/test.rhtml +43 -0
  327. data/vendor/pygments-main/tests/examplefiles/test.scaml +8 -0
  328. data/vendor/pygments-main/tests/examplefiles/test.ssp +12 -0
  329. data/vendor/pygments-main/tests/examplefiles/test.tcsh +830 -0
  330. data/vendor/pygments-main/tests/examplefiles/test.vb +407 -0
  331. data/vendor/pygments-main/tests/examplefiles/test.vhdl +161 -0
  332. data/vendor/pygments-main/tests/examplefiles/test.xqy +138 -0
  333. data/vendor/pygments-main/tests/examplefiles/test.xsl +23 -0
  334. data/vendor/pygments-main/tests/examplefiles/truncated.pytb +15 -0
  335. data/vendor/pygments-main/tests/examplefiles/type.lisp +1202 -0
  336. data/vendor/pygments-main/tests/examplefiles/underscore.coffee +603 -0
  337. data/vendor/pygments-main/tests/examplefiles/unicode.applescript +5 -0
  338. data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +11 -0
  339. data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +3 -0
  340. data/vendor/pygments-main/tests/examplefiles/while.pov +13 -0
  341. data/vendor/pygments-main/tests/examplefiles/wiki.factor +384 -0
  342. data/vendor/pygments-main/tests/examplefiles/xml_example +1897 -0
  343. data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +798 -0
  344. data/vendor/pygments-main/tests/old_run.py +138 -0
  345. data/vendor/pygments-main/tests/run.py +48 -0
  346. data/vendor/pygments-main/tests/support.py +15 -0
  347. data/vendor/pygments-main/tests/test_basic_api.py +294 -0
  348. data/vendor/pygments-main/tests/test_clexer.py +31 -0
  349. data/vendor/pygments-main/tests/test_cmdline.py +105 -0
  350. data/vendor/pygments-main/tests/test_examplefiles.py +97 -0
  351. data/vendor/pygments-main/tests/test_html_formatter.py +162 -0
  352. data/vendor/pygments-main/tests/test_latex_formatter.py +55 -0
  353. data/vendor/pygments-main/tests/test_perllexer.py +137 -0
  354. data/vendor/pygments-main/tests/test_regexlexer.py +47 -0
  355. data/vendor/pygments-main/tests/test_token.py +46 -0
  356. data/vendor/pygments-main/tests/test_using_api.py +40 -0
  357. data/vendor/pygments-main/tests/test_util.py +116 -0
  358. data/vendor/simplejson/.gitignore +10 -0
  359. data/vendor/simplejson/.travis.yml +5 -0
  360. data/vendor/simplejson/CHANGES.txt +291 -0
  361. data/vendor/simplejson/LICENSE.txt +19 -0
  362. data/vendor/simplejson/MANIFEST.in +5 -0
  363. data/vendor/simplejson/README.rst +19 -0
  364. data/vendor/simplejson/conf.py +179 -0
  365. data/vendor/simplejson/index.rst +628 -0
  366. data/vendor/simplejson/scripts/make_docs.py +18 -0
  367. data/vendor/simplejson/setup.py +104 -0
  368. data/vendor/simplejson/simplejson/__init__.py +510 -0
  369. data/vendor/simplejson/simplejson/_speedups.c +2745 -0
  370. data/vendor/simplejson/simplejson/decoder.py +425 -0
  371. data/vendor/simplejson/simplejson/encoder.py +567 -0
  372. data/vendor/simplejson/simplejson/ordered_dict.py +119 -0
  373. data/vendor/simplejson/simplejson/scanner.py +77 -0
  374. data/vendor/simplejson/simplejson/tests/__init__.py +67 -0
  375. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +55 -0
  376. data/vendor/simplejson/simplejson/tests/test_check_circular.py +30 -0
  377. data/vendor/simplejson/simplejson/tests/test_decimal.py +66 -0
  378. data/vendor/simplejson/simplejson/tests/test_decode.py +83 -0
  379. data/vendor/simplejson/simplejson/tests/test_default.py +9 -0
  380. data/vendor/simplejson/simplejson/tests/test_dump.py +67 -0
  381. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +46 -0
  382. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +32 -0
  383. data/vendor/simplejson/simplejson/tests/test_errors.py +34 -0
  384. data/vendor/simplejson/simplejson/tests/test_fail.py +91 -0
  385. data/vendor/simplejson/simplejson/tests/test_float.py +19 -0
  386. data/vendor/simplejson/simplejson/tests/test_indent.py +86 -0
  387. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +20 -0
  388. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +121 -0
  389. data/vendor/simplejson/simplejson/tests/test_pass1.py +76 -0
  390. data/vendor/simplejson/simplejson/tests/test_pass2.py +14 -0
  391. data/vendor/simplejson/simplejson/tests/test_pass3.py +20 -0
  392. data/vendor/simplejson/simplejson/tests/test_recursion.py +67 -0
  393. data/vendor/simplejson/simplejson/tests/test_scanstring.py +117 -0
  394. data/vendor/simplejson/simplejson/tests/test_separators.py +42 -0
  395. data/vendor/simplejson/simplejson/tests/test_speedups.py +20 -0
  396. data/vendor/simplejson/simplejson/tests/test_tuple.py +49 -0
  397. data/vendor/simplejson/simplejson/tests/test_unicode.py +109 -0
  398. data/vendor/simplejson/simplejson/tool.py +39 -0
  399. metadata +492 -0
@@ -0,0 +1,67 @@
1
+ .. -*- mode: rst -*-
2
+
3
+ ================
4
+ Available lexers
5
+ ================
6
+
7
+ This page lists all available builtin lexers and the options they take.
8
+
9
+ Currently, **all lexers** support these options:
10
+
11
+ `stripnl`
12
+ Strip leading and trailing newlines from the input (default: ``True``)
13
+
14
+ `stripall`
15
+ Strip all leading and trailing whitespace from the input (default:
16
+ ``False``).
17
+
18
+ `ensurenl`
19
+ Make sure that the input ends with a newline (default: ``True``). This
20
+ is required for some lexers that consume input linewise.
21
+ *New in Pygments 1.3.*
22
+
23
+ `tabsize`
24
+ If given and greater than 0, expand tabs in the input (default: ``0``).
25
+
26
+ `encoding`
27
+ *New in Pygments 0.6.*
28
+
29
+ If given, must be an encoding name (such as ``"utf-8"``). This encoding
30
+ will be used to convert the input string to Unicode (if it is not already
31
+ a Unicode string). The default is ``"latin1"``.
32
+
33
+ If this option is set to ``"guess"``, a simple UTF-8 vs. Latin-1
34
+ detection is used, if it is set to ``"chardet"``, the
35
+ `chardet library <http://chardet.feedparser.org/>`__ is used to
36
+ guess the encoding of the input.
37
+
38
+
39
+ The "Short Names" field lists the identifiers that can be used with the
40
+ `get_lexer_by_name()` function.
41
+
42
+ These lexers are builtin and can be imported from `pygments.lexers`:
43
+
44
+ [builtin_lexer_docs]
45
+
46
+ Iterating over all lexers
47
+ -------------------------
48
+
49
+ *New in Pygments 0.6.*
50
+
51
+ To get all lexers (both the builtin and the plugin ones), you can
52
+ use the `get_all_lexers()` function from the `pygments.lexers`
53
+ module:
54
+
55
+ .. sourcecode:: pycon
56
+
57
+ >>> from pygments.lexers import get_all_lexers
58
+ >>> i = get_all_lexers()
59
+ >>> i.next()
60
+ ('Diff', ('diff',), ('*.diff', '*.patch'), ('text/x-diff', 'text/x-patch'))
61
+ >>> i.next()
62
+ ('Delphi', ('delphi', 'objectpascal', 'pas', 'pascal'), ('*.pas',), ('text/x-pascal',))
63
+ >>> i.next()
64
+ ('XML+Ruby', ('xml+erb', 'xml+ruby'), (), ())
65
+
66
+ As you can see, the return value is an iterator which yields tuples
67
+ in the form ``(name, aliases, filetypes, mimetypes)``.
@@ -0,0 +1,39 @@
1
+ .. -*- mode: rst -*-
2
+
3
+ ============================
4
+ Using Pygments with MoinMoin
5
+ ============================
6
+
7
+ From Pygments 0.7, the source distribution ships a `Moin`_ parser plugin that
8
+ can be used to get Pygments highlighting in Moin wiki pages.
9
+
10
+ To use it, copy the file `external/moin-parser.py` from the Pygments
11
+ distribution to the `data/plugin/parser` subdirectory of your Moin instance.
12
+ Edit the options at the top of the file (currently ``ATTACHMENTS`` and
13
+ ``INLINESTYLES``) and rename the file to the name that the parser directive
14
+ should have. For example, if you name the file ``code.py``, you can get a
15
+ highlighted Python code sample with this Wiki markup::
16
+
17
+ {{{
18
+ #!code python
19
+ [...]
20
+ }}}
21
+
22
+ where ``python`` is the Pygments name of the lexer to use.
23
+
24
+ Additionally, if you set the ``ATTACHMENTS`` option to True, Pygments will also
25
+ be called for all attachments for whose filenames there is no other parser
26
+ registered.
27
+
28
+ You are responsible for including CSS rules that will map the Pygments CSS
29
+ classes to colors. You can output a stylesheet file with `pygmentize`, put it
30
+ into the `htdocs` directory of your Moin instance and then include it in the
31
+ `stylesheets` configuration option in the Moin config, e.g.::
32
+
33
+ stylesheets = [('screen', '/htdocs/pygments.css')]
34
+
35
+ If you do not want to do that and are willing to accept larger HTML output, you
36
+ can set the ``INLINESTYLES`` option to True.
37
+
38
+
39
+ .. _Moin: http://moinmoin.wikiwikiweb.de/
@@ -0,0 +1,93 @@
1
+ ================
2
+ Register Plugins
3
+ ================
4
+
5
+ If you want to extend Pygments without hacking the sources, but want to
6
+ use the lexer/formatter/style/filter lookup functions (`lexers.get_lexer_by_name`
7
+ et al.), you can use `setuptools`_ entrypoints to add new lexers, formatters
8
+ or styles as if they were in the Pygments core.
9
+
10
+ .. _setuptools: http://peak.telecommunity.com/DevCenter/setuptools
11
+
12
+ That means you can use your highlighter modules with the `pygmentize` script,
13
+ which relies on the mentioned functions.
14
+
15
+
16
+ Entrypoints
17
+ ===========
18
+
19
+ Here is a list of setuptools entrypoints that Pygments understands:
20
+
21
+ `pygments.lexers`
22
+
23
+ This entrypoint is used for adding new lexers to the Pygments core.
24
+ The name of the entrypoint values doesn't really matter, Pygments extracts
25
+ required metadata from the class definition:
26
+
27
+ .. sourcecode:: ini
28
+
29
+ [pygments.lexers]
30
+ yourlexer = yourmodule:YourLexer
31
+
32
+ Note that you have to define ``name``, ``aliases`` and ``filename``
33
+ attributes so that you can use the highlighter from the command line:
34
+
35
+ .. sourcecode:: python
36
+
37
+ class YourLexer(...):
38
+ name = 'Name Of Your Lexer'
39
+ aliases = ['alias']
40
+ filenames = ['*.ext']
41
+
42
+
43
+ `pygments.formatters`
44
+
45
+ You can use this entrypoint to add new formatters to Pygments. The
46
+ name of an entrypoint item is the name of the formatter. If you
47
+ prefix the name with a slash it's used as a filename pattern:
48
+
49
+ .. sourcecode:: ini
50
+
51
+ [pygments.formatters]
52
+ yourformatter = yourmodule:YourFormatter
53
+ /.ext = yourmodule:YourFormatter
54
+
55
+
56
+ `pygments.styles`
57
+
58
+ To add a new style you can use this entrypoint. The name of the entrypoint
59
+ is the name of the style:
60
+
61
+ .. sourcecode:: ini
62
+
63
+ [pygments.styles]
64
+ yourstyle = yourmodule:YourStyle
65
+
66
+
67
+ `pygments.filters`
68
+
69
+ Use this entrypoint to register a new filter. The name of the
70
+ entrypoint is the name of the filter:
71
+
72
+ .. sourcecode:: ini
73
+
74
+ [pygments.filters]
75
+ yourfilter = yourmodule:YourFilter
76
+
77
+
78
+ How To Use Entrypoints
79
+ ======================
80
+
81
+ This documentation doesn't explain how to use those entrypoints because this is
82
+ covered in the `setuptools documentation`_. That page should cover everything
83
+ you need to write a plugin.
84
+
85
+ .. _setuptools documentation: http://peak.telecommunity.com/DevCenter/setuptools
86
+
87
+
88
+ Extending The Core
89
+ ==================
90
+
91
+ If you have written a Pygments plugin that is open source, please inform us
92
+ about that. There is a high chance that we'll add it to the Pygments
93
+ distribution.
@@ -0,0 +1,202 @@
1
+ .. -*- mode: rst -*-
2
+
3
+ ===========================
4
+ Introduction and Quickstart
5
+ ===========================
6
+
7
+
8
+ Welcome to Pygments! This document explains the basic concepts and terms and
9
+ gives a few examples of how to use the library.
10
+
11
+
12
+ Architecture
13
+ ============
14
+
15
+ There are four types of components that work together highlighting a piece of
16
+ code:
17
+
18
+ * A **lexer** splits the source into tokens, fragments of the source that
19
+ have a token type that determines what the text represents semantically
20
+ (e.g., keyword, string, or comment). There is a lexer for every language
21
+ or markup format that Pygments supports.
22
+ * The token stream can be piped through **filters**, which usually modify
23
+ the token types or text fragments, e.g. uppercasing all keywords.
24
+ * A **formatter** then takes the token stream and writes it to an output
25
+ file, in a format such as HTML, LaTeX or RTF.
26
+ * While writing the output, a **style** determines how to highlight all the
27
+ different token types. It maps them to attributes like "red and bold".
28
+
29
+
30
+ Example
31
+ =======
32
+
33
+ Here is a small example for highlighting Python code:
34
+
35
+ .. sourcecode:: python
36
+
37
+ from pygments import highlight
38
+ from pygments.lexers import PythonLexer
39
+ from pygments.formatters import HtmlFormatter
40
+
41
+ code = 'print "Hello World"'
42
+ print highlight(code, PythonLexer(), HtmlFormatter())
43
+
44
+ which prints something like this:
45
+
46
+ .. sourcecode:: html
47
+
48
+ <div class="highlight">
49
+ <pre><span class="k">print</span> <span class="s">&quot;Hello World&quot;</span></pre>
50
+ </div>
51
+
52
+ As you can see, Pygments uses CSS classes (by default, but you can change that)
53
+ instead of inline styles in order to avoid outputting redundant style information over
54
+ and over. A CSS stylesheet that contains all CSS classes possibly used in the output
55
+ can be produced by:
56
+
57
+ .. sourcecode:: python
58
+
59
+ print HtmlFormatter().get_style_defs('.highlight')
60
+
61
+ The argument to `get_style_defs` is used as an additional CSS selector: the output
62
+ may look like this:
63
+
64
+ .. sourcecode:: css
65
+
66
+ .highlight .k { color: #AA22FF; font-weight: bold }
67
+ .highlight .s { color: #BB4444 }
68
+ ...
69
+
70
+
71
+ Options
72
+ =======
73
+
74
+ The `highlight()` function supports a fourth argument called `outfile`, it must be
75
+ a file object if given. The formatted output will then be written to this file
76
+ instead of being returned as a string.
77
+
78
+ Lexers and formatters both support options. They are given to them as keyword
79
+ arguments either to the class or to the lookup method:
80
+
81
+ .. sourcecode:: python
82
+
83
+ from pygments import highlight
84
+ from pygments.lexers import get_lexer_by_name
85
+ from pygments.formatters import HtmlFormatter
86
+
87
+ lexer = get_lexer_by_name("python", stripall=True)
88
+ formatter = HtmlFormatter(linenos=True, cssclass="source")
89
+ result = highlight(code, lexer, formatter)
90
+
91
+ This makes the lexer strip all leading and trailing whitespace from the input
92
+ (`stripall` option), lets the formatter output line numbers (`linenos` option),
93
+ and sets the wrapping ``<div>``'s class to ``source`` (instead of
94
+ ``highlight``).
95
+
96
+ Important options include:
97
+
98
+ `encoding` : for lexers and formatters
99
+ Since Pygments uses Unicode strings internally, this determines which
100
+ encoding will be used to convert to or from byte strings.
101
+ `style` : for formatters
102
+ The name of the style to use when writing the output.
103
+
104
+
105
+ For an overview of builtin lexers and formatters and their options, visit the
106
+ `lexer <lexers.txt>`_ and `formatters <formatters.txt>`_ lists.
107
+
108
+ For a documentation on filters, see `this page <filters.txt>`_.
109
+
110
+
111
+ Lexer and formatter lookup
112
+ ==========================
113
+
114
+ If you want to lookup a built-in lexer by its alias or a filename, you can use
115
+ one of the following methods:
116
+
117
+ .. sourcecode:: pycon
118
+
119
+ >>> from pygments.lexers import (get_lexer_by_name,
120
+ ... get_lexer_for_filename, get_lexer_for_mimetype)
121
+
122
+ >>> get_lexer_by_name('python')
123
+ <pygments.lexers.PythonLexer>
124
+
125
+ >>> get_lexer_for_filename('spam.rb')
126
+ <pygments.lexers.RubyLexer>
127
+
128
+ >>> get_lexer_for_mimetype('text/x-perl')
129
+ <pygments.lexers.PerlLexer>
130
+
131
+ All these functions accept keyword arguments; they will be passed to the lexer
132
+ as options.
133
+
134
+ A similar API is available for formatters: use `get_formatter_by_name()` and
135
+ `get_formatter_for_filename()` from the `pygments.formatters` module
136
+ for this purpose.
137
+
138
+
139
+ Guessing lexers
140
+ ===============
141
+
142
+ If you don't know the content of the file, or you want to highlight a file
143
+ whose extension is ambiguous, such as ``.html`` (which could contain plain HTML
144
+ or some template tags), use these functions:
145
+
146
+ .. sourcecode:: pycon
147
+
148
+ >>> from pygments.lexers import guess_lexer, guess_lexer_for_filename
149
+
150
+ >>> guess_lexer('#!/usr/bin/python\nprint "Hello World!"')
151
+ <pygments.lexers.PythonLexer>
152
+
153
+ >>> guess_lexer_for_filename('test.py', 'print "Hello World!"')
154
+ <pygments.lexers.PythonLexer>
155
+
156
+ `guess_lexer()` passes the given content to the lexer classes' `analyse_text()`
157
+ method and returns the one for which it returns the highest number.
158
+
159
+ All lexers have two different filename pattern lists: the primary and the
160
+ secondary one. The `get_lexer_for_filename()` function only uses the primary
161
+ list, whose entries are supposed to be unique among all lexers.
162
+ `guess_lexer_for_filename()`, however, will first loop through all lexers and
163
+ look at the primary and secondary filename patterns if the filename matches.
164
+ If only one lexer matches, it is returned, else the guessing mechanism of
165
+ `guess_lexer()` is used with the matching lexers.
166
+
167
+ As usual, keyword arguments to these functions are given to the created lexer
168
+ as options.
169
+
170
+
171
+ Command line usage
172
+ ==================
173
+
174
+ You can use Pygments from the command line, using the `pygmentize` script::
175
+
176
+ $ pygmentize test.py
177
+
178
+ will highlight the Python file test.py using ANSI escape sequences
179
+ (a.k.a. terminal colors) and print the result to standard output.
180
+
181
+ To output HTML, use the ``-f`` option::
182
+
183
+ $ pygmentize -f html -o test.html test.py
184
+
185
+ to write an HTML-highlighted version of test.py to the file test.html.
186
+ Note that it will only be a snippet of HTML, if you want a full HTML document,
187
+ use the "full" option::
188
+
189
+ $ pygmentize -f html -O full -o test.html test.py
190
+
191
+ This will produce a full HTML document with included stylesheet.
192
+
193
+ A style can be selected with ``-O style=<name>``.
194
+
195
+ If you need a stylesheet for an existing HTML file using Pygments CSS classes,
196
+ it can be created with::
197
+
198
+ $ pygmentize -S default -f html > style.css
199
+
200
+ where ``default`` is the style name.
201
+
202
+ More options and tricks and be found in the `command line reference <cmdline.txt>`_.
@@ -0,0 +1,22 @@
1
+ .. -*- mode: rst -*-
2
+
3
+ ================================
4
+ Using Pygments in ReST documents
5
+ ================================
6
+
7
+ Many Python people use `ReST`_ for documentation their sourcecode, programs,
8
+ scripts et cetera. This also means that documentation often includes sourcecode
9
+ samples or snippets.
10
+
11
+ You can easily enable Pygments support for your ReST texts using a custom
12
+ directive -- this is also how this documentation displays source code.
13
+
14
+ From Pygments 0.9, the directive is shipped in the distribution as
15
+ `external/rst-directive.py`. You can copy and adapt this code to your liking.
16
+
17
+ .. removed -- too confusing
18
+ *Loosely related note:* The ReST lexer now recognizes ``.. sourcecode::`` and
19
+ ``.. code::`` directives and highlights the contents in the specified language
20
+ if the `handlecodeblocks` option is true.
21
+
22
+ .. _ReST: http://docutils.sf.net/rst.html
@@ -0,0 +1,143 @@
1
+ .. -*- mode: rst -*-
2
+
3
+ ======
4
+ Styles
5
+ ======
6
+
7
+ Pygments comes with some builtin styles that work for both the HTML and
8
+ LaTeX formatter.
9
+
10
+ The builtin styles can be looked up with the `get_style_by_name` function:
11
+
12
+ .. sourcecode:: pycon
13
+
14
+ >>> from pygments.styles import get_style_by_name
15
+ >>> get_style_by_name('colorful')
16
+ <class 'pygments.styles.colorful.ColorfulStyle'>
17
+
18
+ You can pass a instance of a `Style` class to a formatter as the `style`
19
+ option in form of a string:
20
+
21
+ .. sourcecode:: pycon
22
+
23
+ >>> from pygments.styles import get_style_by_name
24
+ >>> HtmlFormatter(style='colorful').style
25
+ <class 'pygments.styles.colorful.ColorfulStyle'>
26
+
27
+ Or you can also import your own style (which must be a subclass of
28
+ `pygments.style.Style`) and pass it to the formatter:
29
+
30
+ .. sourcecode:: pycon
31
+
32
+ >>> from yourapp.yourmodule import YourStyle
33
+ >>> HtmlFormatter(style=YourStyle).style
34
+ <class 'yourapp.yourmodule.YourStyle'>
35
+
36
+
37
+ Creating Own Styles
38
+ ===================
39
+
40
+ So, how to create a style? All you have to do is to subclass `Style` and
41
+ define some styles:
42
+
43
+ .. sourcecode:: python
44
+
45
+ from pygments.style import Style
46
+ from pygments.token import Keyword, Name, Comment, String, Error, \
47
+ Number, Operator, Generic
48
+
49
+ class YourStyle(Style):
50
+ default_style = ""
51
+ styles = {
52
+ Comment: 'italic #888',
53
+ Keyword: 'bold #005',
54
+ Name: '#f00',
55
+ Name.Function: '#0f0',
56
+ Name.Class: 'bold #0f0',
57
+ String: 'bg:#eee #111'
58
+ }
59
+
60
+ That's it. There are just a few rules. When you define a style for `Name`
61
+ the style automatically also affects `Name.Function` and so on. If you
62
+ defined ``'bold'`` and you don't want boldface for a subtoken use ``'nobold'``.
63
+
64
+ (Philosophy: the styles aren't written in CSS syntax since this way
65
+ they can be used for a variety of formatters.)
66
+
67
+ `default_style` is the style inherited by all token types.
68
+
69
+ To make the style usable for Pygments, you must
70
+
71
+ * either register it as a plugin (see `the plugin docs <plugins.txt>`_)
72
+ * or drop it into the `styles` subpackage of your Pygments distribution one style
73
+ class per style, where the file name is the style name and the class name is
74
+ `StylenameClass`. For example, if your style should be called
75
+ ``"mondrian"``, name the class `MondrianStyle`, put it into the file
76
+ ``mondrian.py`` and this file into the ``pygments.styles`` subpackage
77
+ directory.
78
+
79
+
80
+ Style Rules
81
+ ===========
82
+
83
+ Here a small overview of all allowed styles:
84
+
85
+ ``bold``
86
+ render text as bold
87
+ ``nobold``
88
+ don't render text as bold (to prevent subtokens being highlighted bold)
89
+ ``italic``
90
+ render text italic
91
+ ``noitalic``
92
+ don't render text as italic
93
+ ``underline``
94
+ render text underlined
95
+ ``nounderline``
96
+ don't render text underlined
97
+ ``bg:``
98
+ transparent background
99
+ ``bg:#000000``
100
+ background color (black)
101
+ ``border:``
102
+ no border
103
+ ``border:#ffffff``
104
+ border color (white)
105
+ ``#ff0000``
106
+ text color (red)
107
+ ``noinherit``
108
+ don't inherit styles from supertoken
109
+
110
+ Note that there may not be a space between ``bg:`` and the color value
111
+ since the style definition string is split at whitespace.
112
+ Also, using named colors is not allowed since the supported color names
113
+ vary for different formatters.
114
+
115
+ Furthermore, not all lexers might support every style.
116
+
117
+
118
+ Builtin Styles
119
+ ==============
120
+
121
+ Pygments ships some builtin styles which are maintained by the Pygments team.
122
+
123
+ To get a list of known styles you can use this snippet:
124
+
125
+ .. sourcecode:: pycon
126
+
127
+ >>> from pygments.styles import STYLE_MAP
128
+ >>> STYLE_MAP.keys()
129
+ ['default', 'emacs', 'friendly', 'colorful']
130
+
131
+
132
+ Getting a list of available styles
133
+ ==================================
134
+
135
+ *New in Pygments 0.6.*
136
+
137
+ Because it could be that a plugin registered a style, there is
138
+ a way to iterate over all styles:
139
+
140
+ .. sourcecode:: pycon
141
+
142
+ >>> from pygments.styles import get_all_styles
143
+ >>> styles = list(get_all_styles())