mortar-pygments.rb 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. data/.gitignore +6 -0
  2. data/CHANGELOG.md +71 -0
  3. data/Gemfile +2 -0
  4. data/LICENSE +17 -0
  5. data/README.md +121 -0
  6. data/Rakefile +66 -0
  7. data/bench.rb +22 -0
  8. data/cache-lexers.rb +8 -0
  9. data/lexers +0 -0
  10. data/lib/pygments/lexer.rb +148 -0
  11. data/lib/pygments/mentos.py +351 -0
  12. data/lib/pygments/popen.rb +406 -0
  13. data/lib/pygments/version.rb +3 -0
  14. data/lib/pygments.rb +8 -0
  15. data/pygments.rb.gemspec +25 -0
  16. data/test/test_data.c +2581 -0
  17. data/test/test_data.py +514 -0
  18. data/test/test_data_generated +2582 -0
  19. data/test/test_pygments.rb +287 -0
  20. data/vendor/custom_lexers/github.py +565 -0
  21. data/vendor/pygments-main/AUTHORS +153 -0
  22. data/vendor/pygments-main/CHANGES +889 -0
  23. data/vendor/pygments-main/LICENSE +25 -0
  24. data/vendor/pygments-main/MANIFEST.in +6 -0
  25. data/vendor/pygments-main/Makefile +59 -0
  26. data/vendor/pygments-main/REVISION +1 -0
  27. data/vendor/pygments-main/TODO +15 -0
  28. data/vendor/pygments-main/docs/generate.py +472 -0
  29. data/vendor/pygments-main/docs/pygmentize.1 +94 -0
  30. data/vendor/pygments-main/docs/src/api.txt +270 -0
  31. data/vendor/pygments-main/docs/src/authors.txt +5 -0
  32. data/vendor/pygments-main/docs/src/changelog.txt +5 -0
  33. data/vendor/pygments-main/docs/src/cmdline.txt +147 -0
  34. data/vendor/pygments-main/docs/src/filterdevelopment.txt +70 -0
  35. data/vendor/pygments-main/docs/src/filters.txt +42 -0
  36. data/vendor/pygments-main/docs/src/formatterdevelopment.txt +169 -0
  37. data/vendor/pygments-main/docs/src/formatters.txt +48 -0
  38. data/vendor/pygments-main/docs/src/index.txt +69 -0
  39. data/vendor/pygments-main/docs/src/installation.txt +71 -0
  40. data/vendor/pygments-main/docs/src/integrate.txt +48 -0
  41. data/vendor/pygments-main/docs/src/java.txt +70 -0
  42. data/vendor/pygments-main/docs/src/lexerdevelopment.txt +603 -0
  43. data/vendor/pygments-main/docs/src/lexers.txt +67 -0
  44. data/vendor/pygments-main/docs/src/moinmoin.txt +39 -0
  45. data/vendor/pygments-main/docs/src/plugins.txt +93 -0
  46. data/vendor/pygments-main/docs/src/quickstart.txt +202 -0
  47. data/vendor/pygments-main/docs/src/rstdirective.txt +22 -0
  48. data/vendor/pygments-main/docs/src/styles.txt +143 -0
  49. data/vendor/pygments-main/docs/src/tokens.txt +349 -0
  50. data/vendor/pygments-main/docs/src/unicode.txt +49 -0
  51. data/vendor/pygments-main/external/autopygmentize +64 -0
  52. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +144 -0
  53. data/vendor/pygments-main/external/markdown-processor.py +67 -0
  54. data/vendor/pygments-main/external/moin-parser.py +112 -0
  55. data/vendor/pygments-main/external/pygments.bashcomp +38 -0
  56. data/vendor/pygments-main/external/rst-directive-old.py +77 -0
  57. data/vendor/pygments-main/external/rst-directive.py +83 -0
  58. data/vendor/pygments-main/ez_setup.py +276 -0
  59. data/vendor/pygments-main/pygmentize +7 -0
  60. data/vendor/pygments-main/pygments/__init__.py +91 -0
  61. data/vendor/pygments-main/pygments/cmdline.py +441 -0
  62. data/vendor/pygments-main/pygments/console.py +74 -0
  63. data/vendor/pygments-main/pygments/filter.py +74 -0
  64. data/vendor/pygments-main/pygments/filters/__init__.py +356 -0
  65. data/vendor/pygments-main/pygments/formatter.py +95 -0
  66. data/vendor/pygments-main/pygments/formatters/__init__.py +68 -0
  67. data/vendor/pygments-main/pygments/formatters/_mapping.py +92 -0
  68. data/vendor/pygments-main/pygments/formatters/bbcode.py +109 -0
  69. data/vendor/pygments-main/pygments/formatters/html.py +821 -0
  70. data/vendor/pygments-main/pygments/formatters/img.py +553 -0
  71. data/vendor/pygments-main/pygments/formatters/latex.py +378 -0
  72. data/vendor/pygments-main/pygments/formatters/other.py +115 -0
  73. data/vendor/pygments-main/pygments/formatters/rtf.py +136 -0
  74. data/vendor/pygments-main/pygments/formatters/svg.py +154 -0
  75. data/vendor/pygments-main/pygments/formatters/terminal.py +112 -0
  76. data/vendor/pygments-main/pygments/formatters/terminal256.py +222 -0
  77. data/vendor/pygments-main/pygments/lexer.py +765 -0
  78. data/vendor/pygments-main/pygments/lexers/__init__.py +240 -0
  79. data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1645 -0
  80. data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +232 -0
  81. data/vendor/pygments-main/pygments/lexers/_lassobuiltins.py +5172 -0
  82. data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +249 -0
  83. data/vendor/pygments-main/pygments/lexers/_mapping.py +355 -0
  84. data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +562 -0
  85. data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +3787 -0
  86. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +233 -0
  87. data/vendor/pygments-main/pygments/lexers/_robotframeworklexer.py +557 -0
  88. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +40 -0
  89. data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +1072 -0
  90. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +360 -0
  91. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +13 -0
  92. data/vendor/pygments-main/pygments/lexers/agile.py +2290 -0
  93. data/vendor/pygments-main/pygments/lexers/asm.py +398 -0
  94. data/vendor/pygments-main/pygments/lexers/compiled.py +3723 -0
  95. data/vendor/pygments-main/pygments/lexers/dalvik.py +104 -0
  96. data/vendor/pygments-main/pygments/lexers/dotnet.py +671 -0
  97. data/vendor/pygments-main/pygments/lexers/foxpro.py +428 -0
  98. data/vendor/pygments-main/pygments/lexers/functional.py +2731 -0
  99. data/vendor/pygments-main/pygments/lexers/github.py +565 -0
  100. data/vendor/pygments-main/pygments/lexers/hdl.py +356 -0
  101. data/vendor/pygments-main/pygments/lexers/jvm.py +1112 -0
  102. data/vendor/pygments-main/pygments/lexers/math.py +1918 -0
  103. data/vendor/pygments-main/pygments/lexers/other.py +3778 -0
  104. data/vendor/pygments-main/pygments/lexers/parsers.py +778 -0
  105. data/vendor/pygments-main/pygments/lexers/shell.py +424 -0
  106. data/vendor/pygments-main/pygments/lexers/special.py +100 -0
  107. data/vendor/pygments-main/pygments/lexers/sql.py +609 -0
  108. data/vendor/pygments-main/pygments/lexers/templates.py +1742 -0
  109. data/vendor/pygments-main/pygments/lexers/text.py +1893 -0
  110. data/vendor/pygments-main/pygments/lexers/web.py +4045 -0
  111. data/vendor/pygments-main/pygments/modeline.py +40 -0
  112. data/vendor/pygments-main/pygments/plugin.py +74 -0
  113. data/vendor/pygments-main/pygments/scanner.py +104 -0
  114. data/vendor/pygments-main/pygments/style.py +117 -0
  115. data/vendor/pygments-main/pygments/styles/__init__.py +70 -0
  116. data/vendor/pygments-main/pygments/styles/autumn.py +65 -0
  117. data/vendor/pygments-main/pygments/styles/borland.py +51 -0
  118. data/vendor/pygments-main/pygments/styles/bw.py +49 -0
  119. data/vendor/pygments-main/pygments/styles/colorful.py +81 -0
  120. data/vendor/pygments-main/pygments/styles/default.py +73 -0
  121. data/vendor/pygments-main/pygments/styles/emacs.py +72 -0
  122. data/vendor/pygments-main/pygments/styles/friendly.py +72 -0
  123. data/vendor/pygments-main/pygments/styles/fruity.py +42 -0
  124. data/vendor/pygments-main/pygments/styles/manni.py +75 -0
  125. data/vendor/pygments-main/pygments/styles/monokai.py +106 -0
  126. data/vendor/pygments-main/pygments/styles/murphy.py +80 -0
  127. data/vendor/pygments-main/pygments/styles/native.py +65 -0
  128. data/vendor/pygments-main/pygments/styles/pastie.py +75 -0
  129. data/vendor/pygments-main/pygments/styles/perldoc.py +69 -0
  130. data/vendor/pygments-main/pygments/styles/rrt.py +33 -0
  131. data/vendor/pygments-main/pygments/styles/tango.py +141 -0
  132. data/vendor/pygments-main/pygments/styles/trac.py +63 -0
  133. data/vendor/pygments-main/pygments/styles/vim.py +63 -0
  134. data/vendor/pygments-main/pygments/styles/vs.py +38 -0
  135. data/vendor/pygments-main/pygments/token.py +195 -0
  136. data/vendor/pygments-main/pygments/unistring.py +140 -0
  137. data/vendor/pygments-main/pygments/util.py +277 -0
  138. data/vendor/pygments-main/scripts/check_sources.py +242 -0
  139. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +32 -0
  140. data/vendor/pygments-main/scripts/epydoc.css +280 -0
  141. data/vendor/pygments-main/scripts/find_codetags.py +205 -0
  142. data/vendor/pygments-main/scripts/find_error.py +170 -0
  143. data/vendor/pygments-main/scripts/get_vimkw.py +43 -0
  144. data/vendor/pygments-main/scripts/pylintrc +301 -0
  145. data/vendor/pygments-main/scripts/reindent.py +291 -0
  146. data/vendor/pygments-main/scripts/vim2pygments.py +933 -0
  147. data/vendor/pygments-main/setup.cfg +7 -0
  148. data/vendor/pygments-main/setup.py +90 -0
  149. data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +37 -0
  150. data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +869 -0
  151. data/vendor/pygments-main/tests/dtds/HTML4.dcl +88 -0
  152. data/vendor/pygments-main/tests/dtds/HTML4.dtd +1092 -0
  153. data/vendor/pygments-main/tests/dtds/HTML4.soc +9 -0
  154. data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +195 -0
  155. data/vendor/pygments-main/tests/dtds/HTMLspec.ent +77 -0
  156. data/vendor/pygments-main/tests/dtds/HTMLsym.ent +241 -0
  157. data/vendor/pygments-main/tests/examplefiles/ANTLRv3.g +608 -0
  158. data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +209 -0
  159. data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +102 -0
  160. data/vendor/pygments-main/tests/examplefiles/BOM.js +1 -0
  161. data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +611 -0
  162. data/vendor/pygments-main/tests/examplefiles/Config.in.cache +1973 -0
  163. data/vendor/pygments-main/tests/examplefiles/Constants.mo +158 -0
  164. data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +411 -0
  165. data/vendor/pygments-main/tests/examplefiles/Deflate.fs +578 -0
  166. data/vendor/pygments-main/tests/examplefiles/Errors.scala +18 -0
  167. data/vendor/pygments-main/tests/examplefiles/File.hy +174 -0
  168. data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +66 -0
  169. data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +104 -0
  170. data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +671 -0
  171. data/vendor/pygments-main/tests/examplefiles/Intro.java +1660 -0
  172. data/vendor/pygments-main/tests/examplefiles/Makefile +1131 -0
  173. data/vendor/pygments-main/tests/examplefiles/Object.st +4394 -0
  174. data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +584 -0
  175. data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +23 -0
  176. data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +378 -0
  177. data/vendor/pygments-main/tests/examplefiles/Sorting.mod +470 -0
  178. data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +382 -0
  179. data/vendor/pygments-main/tests/examplefiles/addressbook.proto +30 -0
  180. data/vendor/pygments-main/tests/examplefiles/antlr_throws +1 -0
  181. data/vendor/pygments-main/tests/examplefiles/apache2.conf +393 -0
  182. data/vendor/pygments-main/tests/examplefiles/as3_test.as +143 -0
  183. data/vendor/pygments-main/tests/examplefiles/as3_test2.as +46 -0
  184. data/vendor/pygments-main/tests/examplefiles/as3_test3.as +3 -0
  185. data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +27 -0
  186. data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +25 -0
  187. data/vendor/pygments-main/tests/examplefiles/badcase.java +2 -0
  188. data/vendor/pygments-main/tests/examplefiles/batchfile.bat +49 -0
  189. data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +308 -0
  190. data/vendor/pygments-main/tests/examplefiles/boot-9.scm +1557 -0
  191. data/vendor/pygments-main/tests/examplefiles/ca65_example +284 -0
  192. data/vendor/pygments-main/tests/examplefiles/cbmbas_example +9 -0
  193. data/vendor/pygments-main/tests/examplefiles/cells.ps +515 -0
  194. data/vendor/pygments-main/tests/examplefiles/ceval.c +2604 -0
  195. data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +13 -0
  196. data/vendor/pygments-main/tests/examplefiles/classes.dylan +125 -0
  197. data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +10 -0
  198. data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +447 -0
  199. data/vendor/pygments-main/tests/examplefiles/database.pytb +20 -0
  200. data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +2461 -0
  201. data/vendor/pygments-main/tests/examplefiles/demo.ahk +181 -0
  202. data/vendor/pygments-main/tests/examplefiles/demo.cfm +38 -0
  203. data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +68 -0
  204. data/vendor/pygments-main/tests/examplefiles/dwarf.cw +17 -0
  205. data/vendor/pygments-main/tests/examplefiles/erl_session +10 -0
  206. data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +1 -0
  207. data/vendor/pygments-main/tests/examplefiles/evil_regex.js +48 -0
  208. data/vendor/pygments-main/tests/examplefiles/example.Rd +78 -0
  209. data/vendor/pygments-main/tests/examplefiles/example.bug +54 -0
  210. data/vendor/pygments-main/tests/examplefiles/example.c +2080 -0
  211. data/vendor/pygments-main/tests/examplefiles/example.ceylon +52 -0
  212. data/vendor/pygments-main/tests/examplefiles/example.clay +33 -0
  213. data/vendor/pygments-main/tests/examplefiles/example.cls +15 -0
  214. data/vendor/pygments-main/tests/examplefiles/example.cob +3556 -0
  215. data/vendor/pygments-main/tests/examplefiles/example.cpp +2363 -0
  216. data/vendor/pygments-main/tests/examplefiles/example.gs +106 -0
  217. data/vendor/pygments-main/tests/examplefiles/example.gst +7 -0
  218. data/vendor/pygments-main/tests/examplefiles/example.hx +142 -0
  219. data/vendor/pygments-main/tests/examplefiles/example.jag +48 -0
  220. data/vendor/pygments-main/tests/examplefiles/example.kt +47 -0
  221. data/vendor/pygments-main/tests/examplefiles/example.lagda +19 -0
  222. data/vendor/pygments-main/tests/examplefiles/example.lua +250 -0
  223. data/vendor/pygments-main/tests/examplefiles/example.monkey +152 -0
  224. data/vendor/pygments-main/tests/examplefiles/example.moo +26 -0
  225. data/vendor/pygments-main/tests/examplefiles/example.moon +629 -0
  226. data/vendor/pygments-main/tests/examplefiles/example.msc +43 -0
  227. data/vendor/pygments-main/tests/examplefiles/example.nim +1010 -0
  228. data/vendor/pygments-main/tests/examplefiles/example.ns2 +69 -0
  229. data/vendor/pygments-main/tests/examplefiles/example.p +34 -0
  230. data/vendor/pygments-main/tests/examplefiles/example.pas +2708 -0
  231. data/vendor/pygments-main/tests/examplefiles/example.prg +161 -0
  232. data/vendor/pygments-main/tests/examplefiles/example.rb +1852 -0
  233. data/vendor/pygments-main/tests/examplefiles/example.reg +19 -0
  234. data/vendor/pygments-main/tests/examplefiles/example.rexx +50 -0
  235. data/vendor/pygments-main/tests/examplefiles/example.rhtml +561 -0
  236. data/vendor/pygments-main/tests/examplefiles/example.rkt +95 -0
  237. data/vendor/pygments-main/tests/examplefiles/example.rpf +4 -0
  238. data/vendor/pygments-main/tests/examplefiles/example.sh-session +19 -0
  239. data/vendor/pygments-main/tests/examplefiles/example.shell-session +45 -0
  240. data/vendor/pygments-main/tests/examplefiles/example.sml +156 -0
  241. data/vendor/pygments-main/tests/examplefiles/example.snobol +15 -0
  242. data/vendor/pygments-main/tests/examplefiles/example.stan +108 -0
  243. data/vendor/pygments-main/tests/examplefiles/example.tea +34 -0
  244. data/vendor/pygments-main/tests/examplefiles/example.ts +28 -0
  245. data/vendor/pygments-main/tests/examplefiles/example.u +548 -0
  246. data/vendor/pygments-main/tests/examplefiles/example.weechatlog +9 -0
  247. data/vendor/pygments-main/tests/examplefiles/example.xhtml +376 -0
  248. data/vendor/pygments-main/tests/examplefiles/example.xtend +34 -0
  249. data/vendor/pygments-main/tests/examplefiles/example.yaml +302 -0
  250. data/vendor/pygments-main/tests/examplefiles/example2.aspx +29 -0
  251. data/vendor/pygments-main/tests/examplefiles/example2.msc +79 -0
  252. data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +363 -0
  253. data/vendor/pygments-main/tests/examplefiles/example_file.fy +128 -0
  254. data/vendor/pygments-main/tests/examplefiles/firefox.mak +586 -0
  255. data/vendor/pygments-main/tests/examplefiles/flipflop.sv +19 -0
  256. data/vendor/pygments-main/tests/examplefiles/foo.sce +6 -0
  257. data/vendor/pygments-main/tests/examplefiles/format.ml +1213 -0
  258. data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +77 -0
  259. data/vendor/pygments-main/tests/examplefiles/function.mu +1 -0
  260. data/vendor/pygments-main/tests/examplefiles/functional.rst +1472 -0
  261. data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +133 -0
  262. data/vendor/pygments-main/tests/examplefiles/genclass.clj +510 -0
  263. data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +193 -0
  264. data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +33 -0
  265. data/vendor/pygments-main/tests/examplefiles/glsl.frag +7 -0
  266. data/vendor/pygments-main/tests/examplefiles/glsl.vert +13 -0
  267. data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +22 -0
  268. data/vendor/pygments-main/tests/examplefiles/hello.smali +40 -0
  269. data/vendor/pygments-main/tests/examplefiles/hello.sp +9 -0
  270. data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +1 -0
  271. data/vendor/pygments-main/tests/examplefiles/http_request_example +15 -0
  272. data/vendor/pygments-main/tests/examplefiles/http_response_example +29 -0
  273. data/vendor/pygments-main/tests/examplefiles/import.hs +4 -0
  274. data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +71 -0
  275. data/vendor/pygments-main/tests/examplefiles/intro.ik +24 -0
  276. data/vendor/pygments-main/tests/examplefiles/ints.php +10 -0
  277. data/vendor/pygments-main/tests/examplefiles/intsyn.fun +675 -0
  278. data/vendor/pygments-main/tests/examplefiles/intsyn.sig +286 -0
  279. data/vendor/pygments-main/tests/examplefiles/irb_heredoc +8 -0
  280. data/vendor/pygments-main/tests/examplefiles/irc.lsp +214 -0
  281. data/vendor/pygments-main/tests/examplefiles/java.properties +16 -0
  282. data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +28 -0
  283. data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +45 -0
  284. data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +713 -0
  285. data/vendor/pygments-main/tests/examplefiles/json.lasso +301 -0
  286. data/vendor/pygments-main/tests/examplefiles/json.lasso9 +213 -0
  287. data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +13 -0
  288. data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +47 -0
  289. data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +41 -0
  290. data/vendor/pygments-main/tests/examplefiles/logos_example.xm +28 -0
  291. data/vendor/pygments-main/tests/examplefiles/ltmain.sh +2849 -0
  292. data/vendor/pygments-main/tests/examplefiles/main.cmake +42 -0
  293. data/vendor/pygments-main/tests/examplefiles/markdown.lsp +679 -0
  294. data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +3 -0
  295. data/vendor/pygments-main/tests/examplefiles/matlab_sample +30 -0
  296. data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +37 -0
  297. data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +455 -0
  298. data/vendor/pygments-main/tests/examplefiles/mg_sample.pro +73 -0
  299. data/vendor/pygments-main/tests/examplefiles/minehunt.qml +112 -0
  300. data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +4 -0
  301. data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +340 -0
  302. data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +38 -0
  303. data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +95 -0
  304. data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +96 -0
  305. data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +30 -0
  306. data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +87 -0
  307. data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +118 -0
  308. data/vendor/pygments-main/tests/examplefiles/numbers.c +12 -0
  309. data/vendor/pygments-main/tests/examplefiles/objc_example.m +32 -0
  310. data/vendor/pygments-main/tests/examplefiles/objc_example2.m +24 -0
  311. data/vendor/pygments-main/tests/examplefiles/perl_misc +62 -0
  312. data/vendor/pygments-main/tests/examplefiles/perl_perl5db +998 -0
  313. data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +120 -0
  314. data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +856 -0
  315. data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +163 -0
  316. data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +567 -0
  317. data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +1223 -0
  318. data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +47 -0
  319. data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +10 -0
  320. data/vendor/pygments-main/tests/examplefiles/psql_session.txt +122 -0
  321. data/vendor/pygments-main/tests/examplefiles/py3_test.txt +2 -0
  322. data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +4 -0
  323. data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +14 -0
  324. data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +2 -0
  325. data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +4 -0
  326. data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +234 -0
  327. data/vendor/pygments-main/tests/examplefiles/qsort.prolog +13 -0
  328. data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +38 -0
  329. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +280 -0
  330. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +2 -0
  331. data/vendor/pygments-main/tests/examplefiles/regex.js +22 -0
  332. data/vendor/pygments-main/tests/examplefiles/reversi.lsp +427 -0
  333. data/vendor/pygments-main/tests/examplefiles/robotframework.txt +39 -0
  334. data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +11 -0
  335. data/vendor/pygments-main/tests/examplefiles/rust_example.rs +233 -0
  336. data/vendor/pygments-main/tests/examplefiles/scilab.sci +30 -0
  337. data/vendor/pygments-main/tests/examplefiles/session.dylan-console +9 -0
  338. data/vendor/pygments-main/tests/examplefiles/sibling.prolog +19 -0
  339. data/vendor/pygments-main/tests/examplefiles/simple.md +747 -0
  340. data/vendor/pygments-main/tests/examplefiles/smarty_example.html +209 -0
  341. data/vendor/pygments-main/tests/examplefiles/source.lgt +343 -0
  342. data/vendor/pygments-main/tests/examplefiles/sources.list +62 -0
  343. data/vendor/pygments-main/tests/examplefiles/sphere.pov +18 -0
  344. data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +27 -0
  345. data/vendor/pygments-main/tests/examplefiles/squid.conf +30 -0
  346. data/vendor/pygments-main/tests/examplefiles/string.jl +1031 -0
  347. data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +21 -0
  348. data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +3 -0
  349. data/vendor/pygments-main/tests/examplefiles/swig_java.swg +1329 -0
  350. data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +225 -0
  351. data/vendor/pygments-main/tests/examplefiles/test.R +153 -0
  352. data/vendor/pygments-main/tests/examplefiles/test.adb +211 -0
  353. data/vendor/pygments-main/tests/examplefiles/test.agda +102 -0
  354. data/vendor/pygments-main/tests/examplefiles/test.asy +131 -0
  355. data/vendor/pygments-main/tests/examplefiles/test.awk +121 -0
  356. data/vendor/pygments-main/tests/examplefiles/test.bas +29 -0
  357. data/vendor/pygments-main/tests/examplefiles/test.bb +95 -0
  358. data/vendor/pygments-main/tests/examplefiles/test.bmx +145 -0
  359. data/vendor/pygments-main/tests/examplefiles/test.boo +39 -0
  360. data/vendor/pygments-main/tests/examplefiles/test.bro +250 -0
  361. data/vendor/pygments-main/tests/examplefiles/test.cs +374 -0
  362. data/vendor/pygments-main/tests/examplefiles/test.css +54 -0
  363. data/vendor/pygments-main/tests/examplefiles/test.cu +36 -0
  364. data/vendor/pygments-main/tests/examplefiles/test.d +135 -0
  365. data/vendor/pygments-main/tests/examplefiles/test.dart +23 -0
  366. data/vendor/pygments-main/tests/examplefiles/test.dtd +89 -0
  367. data/vendor/pygments-main/tests/examplefiles/test.ebnf +31 -0
  368. data/vendor/pygments-main/tests/examplefiles/test.ec +605 -0
  369. data/vendor/pygments-main/tests/examplefiles/test.ecl +58 -0
  370. data/vendor/pygments-main/tests/examplefiles/test.eh +315 -0
  371. data/vendor/pygments-main/tests/examplefiles/test.erl +169 -0
  372. data/vendor/pygments-main/tests/examplefiles/test.evoque +33 -0
  373. data/vendor/pygments-main/tests/examplefiles/test.fan +818 -0
  374. data/vendor/pygments-main/tests/examplefiles/test.flx +57 -0
  375. data/vendor/pygments-main/tests/examplefiles/test.gdc +13 -0
  376. data/vendor/pygments-main/tests/examplefiles/test.groovy +97 -0
  377. data/vendor/pygments-main/tests/examplefiles/test.html +339 -0
  378. data/vendor/pygments-main/tests/examplefiles/test.ini +10 -0
  379. data/vendor/pygments-main/tests/examplefiles/test.java +653 -0
  380. data/vendor/pygments-main/tests/examplefiles/test.jsp +24 -0
  381. data/vendor/pygments-main/tests/examplefiles/test.maql +45 -0
  382. data/vendor/pygments-main/tests/examplefiles/test.mod +374 -0
  383. data/vendor/pygments-main/tests/examplefiles/test.moo +51 -0
  384. data/vendor/pygments-main/tests/examplefiles/test.myt +166 -0
  385. data/vendor/pygments-main/tests/examplefiles/test.nim +93 -0
  386. data/vendor/pygments-main/tests/examplefiles/test.opa +10 -0
  387. data/vendor/pygments-main/tests/examplefiles/test.p6 +252 -0
  388. data/vendor/pygments-main/tests/examplefiles/test.pas +743 -0
  389. data/vendor/pygments-main/tests/examplefiles/test.php +505 -0
  390. data/vendor/pygments-main/tests/examplefiles/test.plot +333 -0
  391. data/vendor/pygments-main/tests/examplefiles/test.ps1 +108 -0
  392. data/vendor/pygments-main/tests/examplefiles/test.pypylog +1839 -0
  393. data/vendor/pygments-main/tests/examplefiles/test.r3 +94 -0
  394. data/vendor/pygments-main/tests/examplefiles/test.rb +177 -0
  395. data/vendor/pygments-main/tests/examplefiles/test.rhtml +43 -0
  396. data/vendor/pygments-main/tests/examplefiles/test.scaml +8 -0
  397. data/vendor/pygments-main/tests/examplefiles/test.ssp +12 -0
  398. data/vendor/pygments-main/tests/examplefiles/test.tcsh +830 -0
  399. data/vendor/pygments-main/tests/examplefiles/test.vb +407 -0
  400. data/vendor/pygments-main/tests/examplefiles/test.vhdl +161 -0
  401. data/vendor/pygments-main/tests/examplefiles/test.xqy +138 -0
  402. data/vendor/pygments-main/tests/examplefiles/test.xsl +23 -0
  403. data/vendor/pygments-main/tests/examplefiles/test2.pypylog +120 -0
  404. data/vendor/pygments-main/tests/examplefiles/truncated.pytb +15 -0
  405. data/vendor/pygments-main/tests/examplefiles/type.lisp +1218 -0
  406. data/vendor/pygments-main/tests/examplefiles/underscore.coffee +603 -0
  407. data/vendor/pygments-main/tests/examplefiles/unicode.applescript +5 -0
  408. data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +11 -0
  409. data/vendor/pygments-main/tests/examplefiles/unix-io.lid +37 -0
  410. data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +3 -0
  411. data/vendor/pygments-main/tests/examplefiles/while.pov +13 -0
  412. data/vendor/pygments-main/tests/examplefiles/wiki.factor +384 -0
  413. data/vendor/pygments-main/tests/examplefiles/xml_example +1897 -0
  414. data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +798 -0
  415. data/vendor/pygments-main/tests/old_run.py +138 -0
  416. data/vendor/pygments-main/tests/run.py +49 -0
  417. data/vendor/pygments-main/tests/support/tags +36 -0
  418. data/vendor/pygments-main/tests/support.py +15 -0
  419. data/vendor/pygments-main/tests/test_basic_api.py +295 -0
  420. data/vendor/pygments-main/tests/test_clexer.py +31 -0
  421. data/vendor/pygments-main/tests/test_cmdline.py +105 -0
  422. data/vendor/pygments-main/tests/test_examplefiles.py +99 -0
  423. data/vendor/pygments-main/tests/test_html_formatter.py +178 -0
  424. data/vendor/pygments-main/tests/test_latex_formatter.py +55 -0
  425. data/vendor/pygments-main/tests/test_lexers_other.py +68 -0
  426. data/vendor/pygments-main/tests/test_perllexer.py +137 -0
  427. data/vendor/pygments-main/tests/test_regexlexer.py +47 -0
  428. data/vendor/pygments-main/tests/test_token.py +46 -0
  429. data/vendor/pygments-main/tests/test_using_api.py +40 -0
  430. data/vendor/pygments-main/tests/test_util.py +135 -0
  431. data/vendor/simplejson/.gitignore +10 -0
  432. data/vendor/simplejson/.travis.yml +5 -0
  433. data/vendor/simplejson/CHANGES.txt +291 -0
  434. data/vendor/simplejson/LICENSE.txt +19 -0
  435. data/vendor/simplejson/MANIFEST.in +5 -0
  436. data/vendor/simplejson/README.rst +19 -0
  437. data/vendor/simplejson/conf.py +179 -0
  438. data/vendor/simplejson/index.rst +628 -0
  439. data/vendor/simplejson/scripts/make_docs.py +18 -0
  440. data/vendor/simplejson/setup.py +104 -0
  441. data/vendor/simplejson/simplejson/__init__.py +510 -0
  442. data/vendor/simplejson/simplejson/_speedups.c +2745 -0
  443. data/vendor/simplejson/simplejson/decoder.py +425 -0
  444. data/vendor/simplejson/simplejson/encoder.py +567 -0
  445. data/vendor/simplejson/simplejson/ordered_dict.py +119 -0
  446. data/vendor/simplejson/simplejson/scanner.py +77 -0
  447. data/vendor/simplejson/simplejson/tests/__init__.py +67 -0
  448. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +55 -0
  449. data/vendor/simplejson/simplejson/tests/test_check_circular.py +30 -0
  450. data/vendor/simplejson/simplejson/tests/test_decimal.py +66 -0
  451. data/vendor/simplejson/simplejson/tests/test_decode.py +83 -0
  452. data/vendor/simplejson/simplejson/tests/test_default.py +9 -0
  453. data/vendor/simplejson/simplejson/tests/test_dump.py +67 -0
  454. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +46 -0
  455. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +32 -0
  456. data/vendor/simplejson/simplejson/tests/test_errors.py +34 -0
  457. data/vendor/simplejson/simplejson/tests/test_fail.py +91 -0
  458. data/vendor/simplejson/simplejson/tests/test_float.py +19 -0
  459. data/vendor/simplejson/simplejson/tests/test_indent.py +86 -0
  460. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +20 -0
  461. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +121 -0
  462. data/vendor/simplejson/simplejson/tests/test_pass1.py +76 -0
  463. data/vendor/simplejson/simplejson/tests/test_pass2.py +14 -0
  464. data/vendor/simplejson/simplejson/tests/test_pass3.py +20 -0
  465. data/vendor/simplejson/simplejson/tests/test_recursion.py +67 -0
  466. data/vendor/simplejson/simplejson/tests/test_scanstring.py +117 -0
  467. data/vendor/simplejson/simplejson/tests/test_separators.py +42 -0
  468. data/vendor/simplejson/simplejson/tests/test_speedups.py +20 -0
  469. data/vendor/simplejson/simplejson/tests/test_tuple.py +49 -0
  470. data/vendor/simplejson/simplejson/tests/test_unicode.py +109 -0
  471. data/vendor/simplejson/simplejson/tool.py +39 -0
  472. metadata +566 -0
@@ -0,0 +1,43 @@
1
+ import re
2
+ from pprint import pprint
3
+
4
+ r_line = re.compile(r"^(syn keyword vimCommand contained|syn keyword vimOption "
5
+ r"contained|syn keyword vimAutoEvent contained)\s+(.*)")
6
+ r_item = re.compile(r"(\w+)(?:\[(\w+)\])?")
7
+
8
+ def getkw(input, output):
9
+ out = file(output, 'w')
10
+
11
+ output_info = {'command': [], 'option': [], 'auto': []}
12
+ for line in file(input):
13
+ m = r_line.match(line)
14
+ if m:
15
+ # Decide which output gets mapped to d
16
+ if 'vimCommand' in m.group(1):
17
+ d = output_info['command']
18
+ elif 'AutoEvent' in m.group(1):
19
+ d = output_info['auto']
20
+ else:
21
+ d = output_info['option']
22
+
23
+ # Extract all the shortened versions
24
+ for i in r_item.finditer(m.group(2)):
25
+ d.append('(%r,%r)' %
26
+ (i.group(1), "%s%s" % (i.group(1), i.group(2) or '')))
27
+
28
+ output_info['option'].append("('nnoremap','nnoremap')")
29
+ output_info['option'].append("('inoremap','inoremap')")
30
+ output_info['option'].append("('vnoremap','vnoremap')")
31
+
32
+ for a, b in output_info.items():
33
+ b.sort()
34
+ print >>out, '%s=[%s]' % (a, ','.join(b))
35
+
36
+ def is_keyword(w, keywords):
37
+ for i in range(len(w), 0, -1):
38
+ if w[:i] in keywords:
39
+ return signals[w[:i]][:len(w)] == w
40
+ return False
41
+
42
+ if __name__ == "__main__":
43
+ getkw("/usr/share/vim/vim73/syntax/vim.vim", "temp.py")
@@ -0,0 +1,301 @@
1
+ # lint Python modules using external checkers.
2
+ #
3
+ # This is the main checker controling the other ones and the reports
4
+ # generation. It is itself both a raw checker and an astng checker in order
5
+ # to:
6
+ # * handle message activation / deactivation at the module level
7
+ # * handle some basic but necessary stats'data (number of classes, methods...)
8
+ #
9
+ [MASTER]
10
+
11
+ # Specify a configuration file.
12
+ #rcfile=
13
+
14
+ # Profiled execution.
15
+ profile=no
16
+
17
+ # Add <file or directory> to the black list. It should be a base name, not a
18
+ # path. You may set this option multiple times.
19
+ ignore=.svn
20
+
21
+ # Pickle collected data for later comparisons.
22
+ persistent=yes
23
+
24
+ # Set the cache size for astng objects.
25
+ cache-size=500
26
+
27
+ # List of plugins (as comma separated values of python modules names) to load,
28
+ # usually to register additional checkers.
29
+ load-plugins=
30
+
31
+
32
+ [MESSAGES CONTROL]
33
+
34
+ # Enable only checker(s) with the given id(s). This option conflict with the
35
+ # disable-checker option
36
+ #enable-checker=
37
+
38
+ # Enable all checker(s) except those with the given id(s). This option conflict
39
+ # with the disable-checker option
40
+ #disable-checker=
41
+
42
+ # Enable all messages in the listed categories.
43
+ #enable-msg-cat=
44
+
45
+ # Disable all messages in the listed categories.
46
+ #disable-msg-cat=
47
+
48
+ # Enable the message(s) with the given id(s).
49
+ #enable-msg=
50
+
51
+ # Disable the message(s) with the given id(s).
52
+ disable-msg=C0323,W0142,C0301,C0103,C0111,E0213,C0302,C0203,W0703,R0201
53
+
54
+
55
+ [REPORTS]
56
+
57
+ # set the output format. Available formats are text, parseable, colorized and
58
+ # html
59
+ output-format=colorized
60
+
61
+ # Include message's id in output
62
+ include-ids=yes
63
+
64
+ # Put messages in a separate file for each module / package specified on the
65
+ # command line instead of printing them on stdout. Reports (if any) will be
66
+ # written in a file name "pylint_global.[txt|html]".
67
+ files-output=no
68
+
69
+ # Tells wether to display a full report or only the messages
70
+ reports=yes
71
+
72
+ # Python expression which should return a note less than 10 (10 is the highest
73
+ # note).You have access to the variables errors warning, statement which
74
+ # respectivly contain the number of errors / warnings messages and the total
75
+ # number of statements analyzed. This is used by the global evaluation report
76
+ # (R0004).
77
+ evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
78
+
79
+ # Add a comment according to your evaluation note. This is used by the global
80
+ # evaluation report (R0004).
81
+ comment=no
82
+
83
+ # Enable the report(s) with the given id(s).
84
+ #enable-report=
85
+
86
+ # Disable the report(s) with the given id(s).
87
+ #disable-report=
88
+
89
+
90
+ # checks for
91
+ # * unused variables / imports
92
+ # * undefined variables
93
+ # * redefinition of variable from builtins or from an outer scope
94
+ # * use of variable before assigment
95
+ #
96
+ [VARIABLES]
97
+
98
+ # Tells wether we should check for unused import in __init__ files.
99
+ init-import=no
100
+
101
+ # A regular expression matching names used for dummy variables (i.e. not used).
102
+ dummy-variables-rgx=_|dummy
103
+
104
+ # List of additional names supposed to be defined in builtins. Remember that
105
+ # you should avoid to define new builtins when possible.
106
+ additional-builtins=
107
+
108
+
109
+ # try to find bugs in the code using type inference
110
+ #
111
+ [TYPECHECK]
112
+
113
+ # Tells wether missing members accessed in mixin class should be ignored. A
114
+ # mixin class is detected if its name ends with "mixin" (case insensitive).
115
+ ignore-mixin-members=yes
116
+
117
+ # When zope mode is activated, consider the acquired-members option to ignore
118
+ # access to some undefined attributes.
119
+ zope=no
120
+
121
+ # List of members which are usually get through zope's acquisition mecanism and
122
+ # so shouldn't trigger E0201 when accessed (need zope=yes to be considered).
123
+ acquired-members=REQUEST,acl_users,aq_parent
124
+
125
+
126
+ # checks for :
127
+ # * doc strings
128
+ # * modules / classes / functions / methods / arguments / variables name
129
+ # * number of arguments, local variables, branchs, returns and statements in
130
+ # functions, methods
131
+ # * required module attributes
132
+ # * dangerous default values as arguments
133
+ # * redefinition of function / method / class
134
+ # * uses of the global statement
135
+ #
136
+ [BASIC]
137
+
138
+ # Required attributes for module, separated by a comma
139
+ required-attributes=
140
+
141
+ # Regular expression which should only match functions or classes name which do
142
+ # not require a docstring
143
+ no-docstring-rgx=__.*__
144
+
145
+ # Regular expression which should only match correct module names
146
+ module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
147
+
148
+ # Regular expression which should only match correct module level names
149
+ const-rgx=(([A-Z_][A-Z1-9_]*)|(__.*__))$
150
+
151
+ # Regular expression which should only match correct class names
152
+ class-rgx=[A-Z_][a-zA-Z0-9]+$
153
+
154
+ # Regular expression which should only match correct function names
155
+ function-rgx=[a-z_][a-z0-9_]{2,30}$
156
+
157
+ # Regular expression which should only match correct method names
158
+ method-rgx=[a-z_][a-z0-9_]{2,30}$
159
+
160
+ # Regular expression which should only match correct instance attribute names
161
+ attr-rgx=[a-z_][a-z0-9_]{2,30}$
162
+
163
+ # Regular expression which should only match correct argument names
164
+ argument-rgx=[a-z_][a-z0-9_]{2,30}$
165
+
166
+ # Regular expression which should only match correct variable names
167
+ variable-rgx=[a-z_][a-z0-9_]{2,30}$
168
+
169
+ # Regular expression which should only match correct list comprehension /
170
+ # generator expression variable names
171
+ inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
172
+
173
+ # Good variable names which should always be accepted, separated by a comma
174
+ good-names=i,j,k,ex,Run,_
175
+
176
+ # Bad variable names which should always be refused, separated by a comma
177
+ bad-names=foo,bar,baz,toto,tutu,tata
178
+
179
+ # List of builtins function names that should not be used, separated by a comma
180
+ bad-functions=apply,input
181
+
182
+
183
+ # checks for sign of poor/misdesign:
184
+ # * number of methods, attributes, local variables...
185
+ # * size, complexity of functions, methods
186
+ #
187
+ [DESIGN]
188
+
189
+ # Maximum number of arguments for function / method
190
+ max-args=12
191
+
192
+ # Maximum number of locals for function / method body
193
+ max-locals=30
194
+
195
+ # Maximum number of return / yield for function / method body
196
+ max-returns=12
197
+
198
+ # Maximum number of branch for function / method body
199
+ max-branchs=30
200
+
201
+ # Maximum number of statements in function / method body
202
+ max-statements=60
203
+
204
+ # Maximum number of parents for a class (see R0901).
205
+ max-parents=7
206
+
207
+ # Maximum number of attributes for a class (see R0902).
208
+ max-attributes=20
209
+
210
+ # Minimum number of public methods for a class (see R0903).
211
+ min-public-methods=0
212
+
213
+ # Maximum number of public methods for a class (see R0904).
214
+ max-public-methods=20
215
+
216
+
217
+ # checks for
218
+ # * external modules dependencies
219
+ # * relative / wildcard imports
220
+ # * cyclic imports
221
+ # * uses of deprecated modules
222
+ #
223
+ [IMPORTS]
224
+
225
+ # Deprecated modules which should not be used, separated by a comma
226
+ deprecated-modules=regsub,string,TERMIOS,Bastion,rexec
227
+
228
+ # Create a graph of every (i.e. internal and external) dependencies in the
229
+ # given file (report R0402 must not be disabled)
230
+ import-graph=
231
+
232
+ # Create a graph of external dependencies in the given file (report R0402 must
233
+ # not be disabled)
234
+ ext-import-graph=
235
+
236
+ # Create a graph of internal dependencies in the given file (report R0402 must
237
+ # not be disabled)
238
+ int-import-graph=
239
+
240
+
241
+ # checks for :
242
+ # * methods without self as first argument
243
+ # * overridden methods signature
244
+ # * access only to existant members via self
245
+ # * attributes not defined in the __init__ method
246
+ # * supported interfaces implementation
247
+ # * unreachable code
248
+ #
249
+ [CLASSES]
250
+
251
+ # List of interface methods to ignore, separated by a comma. This is used for
252
+ # instance to not check methods defines in Zope's Interface base class.
253
+ ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by
254
+
255
+ # List of method names used to declare (i.e. assign) instance attributes.
256
+ defining-attr-methods=__init__,__new__,setUp
257
+
258
+
259
+ # checks for similarities and duplicated code. This computation may be
260
+ # memory / CPU intensive, so you should disable it if you experiments some
261
+ # problems.
262
+ #
263
+ [SIMILARITIES]
264
+
265
+ # Minimum lines number of a similarity.
266
+ min-similarity-lines=10
267
+
268
+ # Ignore comments when computing similarities.
269
+ ignore-comments=yes
270
+
271
+ # Ignore docstrings when computing similarities.
272
+ ignore-docstrings=yes
273
+
274
+
275
+ # checks for:
276
+ # * warning notes in the code like FIXME, XXX
277
+ # * PEP 263: source code with non ascii character but no encoding declaration
278
+ #
279
+ [MISCELLANEOUS]
280
+
281
+ # List of note tags to take in consideration, separated by a comma.
282
+ notes=FIXME,XXX,TODO
283
+
284
+
285
+ # checks for :
286
+ # * unauthorized constructions
287
+ # * strict indentation
288
+ # * line length
289
+ # * use of <> instead of !=
290
+ #
291
+ [FORMAT]
292
+
293
+ # Maximum number of characters on a single line.
294
+ max-line-length=90
295
+
296
+ # Maximum number of lines in a module
297
+ max-module-lines=1000
298
+
299
+ # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
300
+ # tab).
301
+ indent-string=' '
@@ -0,0 +1,291 @@
1
+ #! /usr/bin/env python
2
+
3
+ # Released to the public domain, by Tim Peters, 03 October 2000.
4
+ # -B option added by Georg Brandl, 2006.
5
+
6
+ """reindent [-d][-r][-v] [ path ... ]
7
+
8
+ -d (--dryrun) Dry run. Analyze, but don't make any changes to files.
9
+ -r (--recurse) Recurse. Search for all .py files in subdirectories too.
10
+ -B (--no-backup) Don't write .bak backup files.
11
+ -v (--verbose) Verbose. Print informative msgs; else only names of changed files.
12
+ -h (--help) Help. Print this usage information and exit.
13
+
14
+ Change Python (.py) files to use 4-space indents and no hard tab characters.
15
+ Also trim excess spaces and tabs from ends of lines, and remove empty lines
16
+ at the end of files. Also ensure the last line ends with a newline.
17
+
18
+ If no paths are given on the command line, reindent operates as a filter,
19
+ reading a single source file from standard input and writing the transformed
20
+ source to standard output. In this case, the -d, -r and -v flags are
21
+ ignored.
22
+
23
+ You can pass one or more file and/or directory paths. When a directory
24
+ path, all .py files within the directory will be examined, and, if the -r
25
+ option is given, likewise recursively for subdirectories.
26
+
27
+ If output is not to standard output, reindent overwrites files in place,
28
+ renaming the originals with a .bak extension. If it finds nothing to
29
+ change, the file is left alone. If reindent does change a file, the changed
30
+ file is a fixed-point for future runs (i.e., running reindent on the
31
+ resulting .py file won't change it again).
32
+
33
+ The hard part of reindenting is figuring out what to do with comment
34
+ lines. So long as the input files get a clean bill of health from
35
+ tabnanny.py, reindent should do a good job.
36
+ """
37
+
38
+ __version__ = "1"
39
+
40
+ import tokenize
41
+ import os
42
+ import sys
43
+
44
+ verbose = 0
45
+ recurse = 0
46
+ dryrun = 0
47
+ no_backup = 0
48
+
49
+ def usage(msg=None):
50
+ if msg is not None:
51
+ print >> sys.stderr, msg
52
+ print >> sys.stderr, __doc__
53
+
54
+ def errprint(*args):
55
+ sep = ""
56
+ for arg in args:
57
+ sys.stderr.write(sep + str(arg))
58
+ sep = " "
59
+ sys.stderr.write("\n")
60
+
61
+ def main():
62
+ import getopt
63
+ global verbose, recurse, dryrun, no_backup
64
+
65
+ try:
66
+ opts, args = getopt.getopt(sys.argv[1:], "drvhB",
67
+ ["dryrun", "recurse", "verbose", "help",
68
+ "no-backup"])
69
+ except getopt.error, msg:
70
+ usage(msg)
71
+ return
72
+ for o, a in opts:
73
+ if o in ('-d', '--dryrun'):
74
+ dryrun += 1
75
+ elif o in ('-r', '--recurse'):
76
+ recurse += 1
77
+ elif o in ('-v', '--verbose'):
78
+ verbose += 1
79
+ elif o in ('-B', '--no-backup'):
80
+ no_backup += 1
81
+ elif o in ('-h', '--help'):
82
+ usage()
83
+ return
84
+ if not args:
85
+ r = Reindenter(sys.stdin)
86
+ r.run()
87
+ r.write(sys.stdout)
88
+ return
89
+ for arg in args:
90
+ check(arg)
91
+
92
+ def check(file):
93
+ if os.path.isdir(file) and not os.path.islink(file):
94
+ if verbose:
95
+ print "listing directory", file
96
+ names = os.listdir(file)
97
+ for name in names:
98
+ fullname = os.path.join(file, name)
99
+ if ((recurse and os.path.isdir(fullname) and
100
+ not os.path.islink(fullname))
101
+ or name.lower().endswith(".py")):
102
+ check(fullname)
103
+ return
104
+
105
+ if verbose:
106
+ print "checking", file, "...",
107
+ try:
108
+ f = open(file)
109
+ except IOError, msg:
110
+ errprint("%s: I/O Error: %s" % (file, str(msg)))
111
+ return
112
+
113
+ r = Reindenter(f)
114
+ f.close()
115
+ if r.run():
116
+ if verbose:
117
+ print "changed."
118
+ if dryrun:
119
+ print "But this is a dry run, so leaving it alone."
120
+ else:
121
+ print "reindented", file, (dryrun and "(dry run => not really)" or "")
122
+ if not dryrun:
123
+ if not no_backup:
124
+ bak = file + ".bak"
125
+ if os.path.exists(bak):
126
+ os.remove(bak)
127
+ os.rename(file, bak)
128
+ if verbose:
129
+ print "renamed", file, "to", bak
130
+ f = open(file, "w")
131
+ r.write(f)
132
+ f.close()
133
+ if verbose:
134
+ print "wrote new", file
135
+ else:
136
+ if verbose:
137
+ print "unchanged."
138
+
139
+
140
+ class Reindenter:
141
+
142
+ def __init__(self, f):
143
+ self.find_stmt = 1 # next token begins a fresh stmt?
144
+ self.level = 0 # current indent level
145
+
146
+ # Raw file lines.
147
+ self.raw = f.readlines()
148
+
149
+ # File lines, rstripped & tab-expanded. Dummy at start is so
150
+ # that we can use tokenize's 1-based line numbering easily.
151
+ # Note that a line is all-blank iff it's "\n".
152
+ self.lines = [line.rstrip('\n \t').expandtabs() + "\n"
153
+ for line in self.raw]
154
+ self.lines.insert(0, None)
155
+ self.index = 1 # index into self.lines of next line
156
+
157
+ # List of (lineno, indentlevel) pairs, one for each stmt and
158
+ # comment line. indentlevel is -1 for comment lines, as a
159
+ # signal that tokenize doesn't know what to do about them;
160
+ # indeed, they're our headache!
161
+ self.stats = []
162
+
163
+ def run(self):
164
+ tokenize.tokenize(self.getline, self.tokeneater)
165
+ # Remove trailing empty lines.
166
+ lines = self.lines
167
+ while lines and lines[-1] == "\n":
168
+ lines.pop()
169
+ # Sentinel.
170
+ stats = self.stats
171
+ stats.append((len(lines), 0))
172
+ # Map count of leading spaces to # we want.
173
+ have2want = {}
174
+ # Program after transformation.
175
+ after = self.after = []
176
+ # Copy over initial empty lines -- there's nothing to do until
177
+ # we see a line with *something* on it.
178
+ i = stats[0][0]
179
+ after.extend(lines[1:i])
180
+ for i in range(len(stats)-1):
181
+ thisstmt, thislevel = stats[i]
182
+ nextstmt = stats[i+1][0]
183
+ have = getlspace(lines[thisstmt])
184
+ want = thislevel * 4
185
+ if want < 0:
186
+ # A comment line.
187
+ if have:
188
+ # An indented comment line. If we saw the same
189
+ # indentation before, reuse what it most recently
190
+ # mapped to.
191
+ want = have2want.get(have, -1)
192
+ if want < 0:
193
+ # Then it probably belongs to the next real stmt.
194
+ for j in xrange(i+1, len(stats)-1):
195
+ jline, jlevel = stats[j]
196
+ if jlevel >= 0:
197
+ if have == getlspace(lines[jline]):
198
+ want = jlevel * 4
199
+ break
200
+ if want < 0: # Maybe it's a hanging
201
+ # comment like this one,
202
+ # in which case we should shift it like its base
203
+ # line got shifted.
204
+ for j in xrange(i-1, -1, -1):
205
+ jline, jlevel = stats[j]
206
+ if jlevel >= 0:
207
+ want = have + getlspace(after[jline-1]) - \
208
+ getlspace(lines[jline])
209
+ break
210
+ if want < 0:
211
+ # Still no luck -- leave it alone.
212
+ want = have
213
+ else:
214
+ want = 0
215
+ assert want >= 0
216
+ have2want[have] = want
217
+ diff = want - have
218
+ if diff == 0 or have == 0:
219
+ after.extend(lines[thisstmt:nextstmt])
220
+ else:
221
+ for line in lines[thisstmt:nextstmt]:
222
+ if diff > 0:
223
+ if line == "\n":
224
+ after.append(line)
225
+ else:
226
+ after.append(" " * diff + line)
227
+ else:
228
+ remove = min(getlspace(line), -diff)
229
+ after.append(line[remove:])
230
+ return self.raw != self.after
231
+
232
+ def write(self, f):
233
+ f.writelines(self.after)
234
+
235
+ # Line-getter for tokenize.
236
+ def getline(self):
237
+ if self.index >= len(self.lines):
238
+ line = ""
239
+ else:
240
+ line = self.lines[self.index]
241
+ self.index += 1
242
+ return line
243
+
244
+ # Line-eater for tokenize.
245
+ def tokeneater(self, type, token, (sline, scol), end, line,
246
+ INDENT=tokenize.INDENT,
247
+ DEDENT=tokenize.DEDENT,
248
+ NEWLINE=tokenize.NEWLINE,
249
+ COMMENT=tokenize.COMMENT,
250
+ NL=tokenize.NL):
251
+
252
+ if type == NEWLINE:
253
+ # A program statement, or ENDMARKER, will eventually follow,
254
+ # after some (possibly empty) run of tokens of the form
255
+ # (NL | COMMENT)* (INDENT | DEDENT+)?
256
+ self.find_stmt = 1
257
+
258
+ elif type == INDENT:
259
+ self.find_stmt = 1
260
+ self.level += 1
261
+
262
+ elif type == DEDENT:
263
+ self.find_stmt = 1
264
+ self.level -= 1
265
+
266
+ elif type == COMMENT:
267
+ if self.find_stmt:
268
+ self.stats.append((sline, -1))
269
+ # but we're still looking for a new stmt, so leave
270
+ # find_stmt alone
271
+
272
+ elif type == NL:
273
+ pass
274
+
275
+ elif self.find_stmt:
276
+ # This is the first "real token" following a NEWLINE, so it
277
+ # must be the first token of the next program statement, or an
278
+ # ENDMARKER.
279
+ self.find_stmt = 0
280
+ if line: # not endmarker
281
+ self.stats.append((sline, self.level))
282
+
283
+ # Count number of leading blanks.
284
+ def getlspace(line):
285
+ i, n = 0, len(line)
286
+ while i < n and line[i] == " ":
287
+ i += 1
288
+ return i
289
+
290
+ if __name__ == '__main__':
291
+ main()