pygments.rb-jruby 0.5.4

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 (473) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/CHANGELOG.md +71 -0
  4. data/Gemfile +2 -0
  5. data/LICENSE +17 -0
  6. data/README.md +118 -0
  7. data/Rakefile +66 -0
  8. data/bench.rb +22 -0
  9. data/cache-lexers.rb +8 -0
  10. data/lexers +0 -0
  11. data/lib/pygments.rb +8 -0
  12. data/lib/pygments/lexer.rb +148 -0
  13. data/lib/pygments/mentos.py +351 -0
  14. data/lib/pygments/popen.rb +404 -0
  15. data/lib/pygments/version.rb +3 -0
  16. data/pygments.rb.gemspec +24 -0
  17. data/test/test_data.c +2581 -0
  18. data/test/test_data.py +514 -0
  19. data/test/test_data_generated +2582 -0
  20. data/test/test_pygments.rb +287 -0
  21. data/vendor/custom_lexers/github.py +565 -0
  22. data/vendor/pygments-main/AUTHORS +153 -0
  23. data/vendor/pygments-main/CHANGES +889 -0
  24. data/vendor/pygments-main/LICENSE +25 -0
  25. data/vendor/pygments-main/MANIFEST.in +6 -0
  26. data/vendor/pygments-main/Makefile +59 -0
  27. data/vendor/pygments-main/REVISION +1 -0
  28. data/vendor/pygments-main/TODO +15 -0
  29. data/vendor/pygments-main/docs/generate.py +472 -0
  30. data/vendor/pygments-main/docs/pygmentize.1 +94 -0
  31. data/vendor/pygments-main/docs/src/api.txt +270 -0
  32. data/vendor/pygments-main/docs/src/authors.txt +5 -0
  33. data/vendor/pygments-main/docs/src/changelog.txt +5 -0
  34. data/vendor/pygments-main/docs/src/cmdline.txt +147 -0
  35. data/vendor/pygments-main/docs/src/filterdevelopment.txt +70 -0
  36. data/vendor/pygments-main/docs/src/filters.txt +42 -0
  37. data/vendor/pygments-main/docs/src/formatterdevelopment.txt +169 -0
  38. data/vendor/pygments-main/docs/src/formatters.txt +48 -0
  39. data/vendor/pygments-main/docs/src/index.txt +69 -0
  40. data/vendor/pygments-main/docs/src/installation.txt +71 -0
  41. data/vendor/pygments-main/docs/src/integrate.txt +48 -0
  42. data/vendor/pygments-main/docs/src/java.txt +70 -0
  43. data/vendor/pygments-main/docs/src/lexerdevelopment.txt +603 -0
  44. data/vendor/pygments-main/docs/src/lexers.txt +67 -0
  45. data/vendor/pygments-main/docs/src/moinmoin.txt +39 -0
  46. data/vendor/pygments-main/docs/src/plugins.txt +93 -0
  47. data/vendor/pygments-main/docs/src/quickstart.txt +202 -0
  48. data/vendor/pygments-main/docs/src/rstdirective.txt +22 -0
  49. data/vendor/pygments-main/docs/src/styles.txt +143 -0
  50. data/vendor/pygments-main/docs/src/tokens.txt +349 -0
  51. data/vendor/pygments-main/docs/src/unicode.txt +49 -0
  52. data/vendor/pygments-main/external/autopygmentize +64 -0
  53. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +144 -0
  54. data/vendor/pygments-main/external/markdown-processor.py +67 -0
  55. data/vendor/pygments-main/external/moin-parser.py +112 -0
  56. data/vendor/pygments-main/external/pygments.bashcomp +38 -0
  57. data/vendor/pygments-main/external/rst-directive-old.py +77 -0
  58. data/vendor/pygments-main/external/rst-directive.py +83 -0
  59. data/vendor/pygments-main/ez_setup.py +276 -0
  60. data/vendor/pygments-main/pygmentize +7 -0
  61. data/vendor/pygments-main/pygments/__init__.py +91 -0
  62. data/vendor/pygments-main/pygments/cmdline.py +441 -0
  63. data/vendor/pygments-main/pygments/console.py +74 -0
  64. data/vendor/pygments-main/pygments/filter.py +74 -0
  65. data/vendor/pygments-main/pygments/filters/__init__.py +356 -0
  66. data/vendor/pygments-main/pygments/formatter.py +95 -0
  67. data/vendor/pygments-main/pygments/formatters/__init__.py +68 -0
  68. data/vendor/pygments-main/pygments/formatters/_mapping.py +92 -0
  69. data/vendor/pygments-main/pygments/formatters/bbcode.py +109 -0
  70. data/vendor/pygments-main/pygments/formatters/html.py +821 -0
  71. data/vendor/pygments-main/pygments/formatters/img.py +553 -0
  72. data/vendor/pygments-main/pygments/formatters/latex.py +378 -0
  73. data/vendor/pygments-main/pygments/formatters/other.py +115 -0
  74. data/vendor/pygments-main/pygments/formatters/rtf.py +136 -0
  75. data/vendor/pygments-main/pygments/formatters/svg.py +154 -0
  76. data/vendor/pygments-main/pygments/formatters/terminal.py +112 -0
  77. data/vendor/pygments-main/pygments/formatters/terminal256.py +222 -0
  78. data/vendor/pygments-main/pygments/lexer.py +765 -0
  79. data/vendor/pygments-main/pygments/lexers/__init__.py +240 -0
  80. data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1645 -0
  81. data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +232 -0
  82. data/vendor/pygments-main/pygments/lexers/_lassobuiltins.py +5172 -0
  83. data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +249 -0
  84. data/vendor/pygments-main/pygments/lexers/_mapping.py +354 -0
  85. data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +562 -0
  86. data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +3787 -0
  87. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +233 -0
  88. data/vendor/pygments-main/pygments/lexers/_robotframeworklexer.py +557 -0
  89. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +40 -0
  90. data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +1072 -0
  91. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +360 -0
  92. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +13 -0
  93. data/vendor/pygments-main/pygments/lexers/agile.py +2290 -0
  94. data/vendor/pygments-main/pygments/lexers/asm.py +398 -0
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +3723 -0
  96. data/vendor/pygments-main/pygments/lexers/dalvik.py +104 -0
  97. data/vendor/pygments-main/pygments/lexers/dotnet.py +671 -0
  98. data/vendor/pygments-main/pygments/lexers/foxpro.py +428 -0
  99. data/vendor/pygments-main/pygments/lexers/functional.py +2731 -0
  100. data/vendor/pygments-main/pygments/lexers/github.py +565 -0
  101. data/vendor/pygments-main/pygments/lexers/hdl.py +356 -0
  102. data/vendor/pygments-main/pygments/lexers/jvm.py +1112 -0
  103. data/vendor/pygments-main/pygments/lexers/math.py +1918 -0
  104. data/vendor/pygments-main/pygments/lexers/other.py +3778 -0
  105. data/vendor/pygments-main/pygments/lexers/parsers.py +778 -0
  106. data/vendor/pygments-main/pygments/lexers/shell.py +424 -0
  107. data/vendor/pygments-main/pygments/lexers/special.py +100 -0
  108. data/vendor/pygments-main/pygments/lexers/sql.py +559 -0
  109. data/vendor/pygments-main/pygments/lexers/templates.py +1742 -0
  110. data/vendor/pygments-main/pygments/lexers/text.py +1893 -0
  111. data/vendor/pygments-main/pygments/lexers/web.py +4045 -0
  112. data/vendor/pygments-main/pygments/modeline.py +40 -0
  113. data/vendor/pygments-main/pygments/plugin.py +74 -0
  114. data/vendor/pygments-main/pygments/scanner.py +104 -0
  115. data/vendor/pygments-main/pygments/style.py +117 -0
  116. data/vendor/pygments-main/pygments/styles/__init__.py +70 -0
  117. data/vendor/pygments-main/pygments/styles/autumn.py +65 -0
  118. data/vendor/pygments-main/pygments/styles/borland.py +51 -0
  119. data/vendor/pygments-main/pygments/styles/bw.py +49 -0
  120. data/vendor/pygments-main/pygments/styles/colorful.py +81 -0
  121. data/vendor/pygments-main/pygments/styles/default.py +73 -0
  122. data/vendor/pygments-main/pygments/styles/emacs.py +72 -0
  123. data/vendor/pygments-main/pygments/styles/friendly.py +72 -0
  124. data/vendor/pygments-main/pygments/styles/fruity.py +42 -0
  125. data/vendor/pygments-main/pygments/styles/manni.py +75 -0
  126. data/vendor/pygments-main/pygments/styles/monokai.py +106 -0
  127. data/vendor/pygments-main/pygments/styles/murphy.py +80 -0
  128. data/vendor/pygments-main/pygments/styles/native.py +65 -0
  129. data/vendor/pygments-main/pygments/styles/pastie.py +75 -0
  130. data/vendor/pygments-main/pygments/styles/perldoc.py +69 -0
  131. data/vendor/pygments-main/pygments/styles/rrt.py +33 -0
  132. data/vendor/pygments-main/pygments/styles/tango.py +141 -0
  133. data/vendor/pygments-main/pygments/styles/trac.py +63 -0
  134. data/vendor/pygments-main/pygments/styles/vim.py +63 -0
  135. data/vendor/pygments-main/pygments/styles/vs.py +38 -0
  136. data/vendor/pygments-main/pygments/token.py +195 -0
  137. data/vendor/pygments-main/pygments/unistring.py +140 -0
  138. data/vendor/pygments-main/pygments/util.py +277 -0
  139. data/vendor/pygments-main/scripts/check_sources.py +242 -0
  140. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +32 -0
  141. data/vendor/pygments-main/scripts/epydoc.css +280 -0
  142. data/vendor/pygments-main/scripts/find_codetags.py +205 -0
  143. data/vendor/pygments-main/scripts/find_error.py +170 -0
  144. data/vendor/pygments-main/scripts/get_vimkw.py +43 -0
  145. data/vendor/pygments-main/scripts/pylintrc +301 -0
  146. data/vendor/pygments-main/scripts/reindent.py +291 -0
  147. data/vendor/pygments-main/scripts/vim2pygments.py +933 -0
  148. data/vendor/pygments-main/setup.cfg +7 -0
  149. data/vendor/pygments-main/setup.py +90 -0
  150. data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +37 -0
  151. data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +869 -0
  152. data/vendor/pygments-main/tests/dtds/HTML4.dcl +88 -0
  153. data/vendor/pygments-main/tests/dtds/HTML4.dtd +1092 -0
  154. data/vendor/pygments-main/tests/dtds/HTML4.soc +9 -0
  155. data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +195 -0
  156. data/vendor/pygments-main/tests/dtds/HTMLspec.ent +77 -0
  157. data/vendor/pygments-main/tests/dtds/HTMLsym.ent +241 -0
  158. data/vendor/pygments-main/tests/examplefiles/ANTLRv3.g +608 -0
  159. data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +209 -0
  160. data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +102 -0
  161. data/vendor/pygments-main/tests/examplefiles/BOM.js +1 -0
  162. data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +611 -0
  163. data/vendor/pygments-main/tests/examplefiles/Config.in.cache +1973 -0
  164. data/vendor/pygments-main/tests/examplefiles/Constants.mo +158 -0
  165. data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +411 -0
  166. data/vendor/pygments-main/tests/examplefiles/Deflate.fs +578 -0
  167. data/vendor/pygments-main/tests/examplefiles/Errors.scala +18 -0
  168. data/vendor/pygments-main/tests/examplefiles/File.hy +174 -0
  169. data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +66 -0
  170. data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +104 -0
  171. data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +671 -0
  172. data/vendor/pygments-main/tests/examplefiles/Intro.java +1660 -0
  173. data/vendor/pygments-main/tests/examplefiles/Makefile +1131 -0
  174. data/vendor/pygments-main/tests/examplefiles/Object.st +4394 -0
  175. data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +584 -0
  176. data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +23 -0
  177. data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +378 -0
  178. data/vendor/pygments-main/tests/examplefiles/Sorting.mod +470 -0
  179. data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +382 -0
  180. data/vendor/pygments-main/tests/examplefiles/addressbook.proto +30 -0
  181. data/vendor/pygments-main/tests/examplefiles/antlr_throws +1 -0
  182. data/vendor/pygments-main/tests/examplefiles/apache2.conf +393 -0
  183. data/vendor/pygments-main/tests/examplefiles/as3_test.as +143 -0
  184. data/vendor/pygments-main/tests/examplefiles/as3_test2.as +46 -0
  185. data/vendor/pygments-main/tests/examplefiles/as3_test3.as +3 -0
  186. data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +27 -0
  187. data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +25 -0
  188. data/vendor/pygments-main/tests/examplefiles/badcase.java +2 -0
  189. data/vendor/pygments-main/tests/examplefiles/batchfile.bat +49 -0
  190. data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +308 -0
  191. data/vendor/pygments-main/tests/examplefiles/boot-9.scm +1557 -0
  192. data/vendor/pygments-main/tests/examplefiles/ca65_example +284 -0
  193. data/vendor/pygments-main/tests/examplefiles/cbmbas_example +9 -0
  194. data/vendor/pygments-main/tests/examplefiles/cells.ps +515 -0
  195. data/vendor/pygments-main/tests/examplefiles/ceval.c +2604 -0
  196. data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +13 -0
  197. data/vendor/pygments-main/tests/examplefiles/classes.dylan +125 -0
  198. data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +10 -0
  199. data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +447 -0
  200. data/vendor/pygments-main/tests/examplefiles/database.pytb +20 -0
  201. data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +2461 -0
  202. data/vendor/pygments-main/tests/examplefiles/demo.ahk +181 -0
  203. data/vendor/pygments-main/tests/examplefiles/demo.cfm +38 -0
  204. data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +68 -0
  205. data/vendor/pygments-main/tests/examplefiles/dwarf.cw +17 -0
  206. data/vendor/pygments-main/tests/examplefiles/erl_session +10 -0
  207. data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +1 -0
  208. data/vendor/pygments-main/tests/examplefiles/evil_regex.js +48 -0
  209. data/vendor/pygments-main/tests/examplefiles/example.Rd +78 -0
  210. data/vendor/pygments-main/tests/examplefiles/example.bug +54 -0
  211. data/vendor/pygments-main/tests/examplefiles/example.c +2080 -0
  212. data/vendor/pygments-main/tests/examplefiles/example.ceylon +52 -0
  213. data/vendor/pygments-main/tests/examplefiles/example.clay +33 -0
  214. data/vendor/pygments-main/tests/examplefiles/example.cls +15 -0
  215. data/vendor/pygments-main/tests/examplefiles/example.cob +3556 -0
  216. data/vendor/pygments-main/tests/examplefiles/example.cpp +2363 -0
  217. data/vendor/pygments-main/tests/examplefiles/example.gs +106 -0
  218. data/vendor/pygments-main/tests/examplefiles/example.gst +7 -0
  219. data/vendor/pygments-main/tests/examplefiles/example.hx +142 -0
  220. data/vendor/pygments-main/tests/examplefiles/example.jag +48 -0
  221. data/vendor/pygments-main/tests/examplefiles/example.kt +47 -0
  222. data/vendor/pygments-main/tests/examplefiles/example.lagda +19 -0
  223. data/vendor/pygments-main/tests/examplefiles/example.lua +250 -0
  224. data/vendor/pygments-main/tests/examplefiles/example.monkey +152 -0
  225. data/vendor/pygments-main/tests/examplefiles/example.moo +26 -0
  226. data/vendor/pygments-main/tests/examplefiles/example.moon +629 -0
  227. data/vendor/pygments-main/tests/examplefiles/example.msc +43 -0
  228. data/vendor/pygments-main/tests/examplefiles/example.nim +1010 -0
  229. data/vendor/pygments-main/tests/examplefiles/example.ns2 +69 -0
  230. data/vendor/pygments-main/tests/examplefiles/example.p +34 -0
  231. data/vendor/pygments-main/tests/examplefiles/example.pas +2708 -0
  232. data/vendor/pygments-main/tests/examplefiles/example.prg +161 -0
  233. data/vendor/pygments-main/tests/examplefiles/example.rb +1852 -0
  234. data/vendor/pygments-main/tests/examplefiles/example.reg +19 -0
  235. data/vendor/pygments-main/tests/examplefiles/example.rexx +50 -0
  236. data/vendor/pygments-main/tests/examplefiles/example.rhtml +561 -0
  237. data/vendor/pygments-main/tests/examplefiles/example.rkt +95 -0
  238. data/vendor/pygments-main/tests/examplefiles/example.rpf +4 -0
  239. data/vendor/pygments-main/tests/examplefiles/example.sh-session +19 -0
  240. data/vendor/pygments-main/tests/examplefiles/example.shell-session +45 -0
  241. data/vendor/pygments-main/tests/examplefiles/example.sml +156 -0
  242. data/vendor/pygments-main/tests/examplefiles/example.snobol +15 -0
  243. data/vendor/pygments-main/tests/examplefiles/example.stan +108 -0
  244. data/vendor/pygments-main/tests/examplefiles/example.tea +34 -0
  245. data/vendor/pygments-main/tests/examplefiles/example.ts +28 -0
  246. data/vendor/pygments-main/tests/examplefiles/example.u +548 -0
  247. data/vendor/pygments-main/tests/examplefiles/example.weechatlog +9 -0
  248. data/vendor/pygments-main/tests/examplefiles/example.xhtml +376 -0
  249. data/vendor/pygments-main/tests/examplefiles/example.xtend +34 -0
  250. data/vendor/pygments-main/tests/examplefiles/example.yaml +302 -0
  251. data/vendor/pygments-main/tests/examplefiles/example2.aspx +29 -0
  252. data/vendor/pygments-main/tests/examplefiles/example2.msc +79 -0
  253. data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +363 -0
  254. data/vendor/pygments-main/tests/examplefiles/example_file.fy +128 -0
  255. data/vendor/pygments-main/tests/examplefiles/firefox.mak +586 -0
  256. data/vendor/pygments-main/tests/examplefiles/flipflop.sv +19 -0
  257. data/vendor/pygments-main/tests/examplefiles/foo.sce +6 -0
  258. data/vendor/pygments-main/tests/examplefiles/format.ml +1213 -0
  259. data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +77 -0
  260. data/vendor/pygments-main/tests/examplefiles/function.mu +1 -0
  261. data/vendor/pygments-main/tests/examplefiles/functional.rst +1472 -0
  262. data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +133 -0
  263. data/vendor/pygments-main/tests/examplefiles/genclass.clj +510 -0
  264. data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +193 -0
  265. data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +33 -0
  266. data/vendor/pygments-main/tests/examplefiles/glsl.frag +7 -0
  267. data/vendor/pygments-main/tests/examplefiles/glsl.vert +13 -0
  268. data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +22 -0
  269. data/vendor/pygments-main/tests/examplefiles/hello.smali +40 -0
  270. data/vendor/pygments-main/tests/examplefiles/hello.sp +9 -0
  271. data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +1 -0
  272. data/vendor/pygments-main/tests/examplefiles/http_request_example +15 -0
  273. data/vendor/pygments-main/tests/examplefiles/http_response_example +29 -0
  274. data/vendor/pygments-main/tests/examplefiles/import.hs +4 -0
  275. data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +71 -0
  276. data/vendor/pygments-main/tests/examplefiles/intro.ik +24 -0
  277. data/vendor/pygments-main/tests/examplefiles/ints.php +10 -0
  278. data/vendor/pygments-main/tests/examplefiles/intsyn.fun +675 -0
  279. data/vendor/pygments-main/tests/examplefiles/intsyn.sig +286 -0
  280. data/vendor/pygments-main/tests/examplefiles/irb_heredoc +8 -0
  281. data/vendor/pygments-main/tests/examplefiles/irc.lsp +214 -0
  282. data/vendor/pygments-main/tests/examplefiles/java.properties +16 -0
  283. data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +28 -0
  284. data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +45 -0
  285. data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +713 -0
  286. data/vendor/pygments-main/tests/examplefiles/json.lasso +301 -0
  287. data/vendor/pygments-main/tests/examplefiles/json.lasso9 +213 -0
  288. data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +13 -0
  289. data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +47 -0
  290. data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +41 -0
  291. data/vendor/pygments-main/tests/examplefiles/logos_example.xm +28 -0
  292. data/vendor/pygments-main/tests/examplefiles/ltmain.sh +2849 -0
  293. data/vendor/pygments-main/tests/examplefiles/main.cmake +42 -0
  294. data/vendor/pygments-main/tests/examplefiles/markdown.lsp +679 -0
  295. data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +3 -0
  296. data/vendor/pygments-main/tests/examplefiles/matlab_sample +30 -0
  297. data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +37 -0
  298. data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +455 -0
  299. data/vendor/pygments-main/tests/examplefiles/mg_sample.pro +73 -0
  300. data/vendor/pygments-main/tests/examplefiles/minehunt.qml +112 -0
  301. data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +4 -0
  302. data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +340 -0
  303. data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +38 -0
  304. data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +95 -0
  305. data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +96 -0
  306. data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +30 -0
  307. data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +87 -0
  308. data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +118 -0
  309. data/vendor/pygments-main/tests/examplefiles/numbers.c +12 -0
  310. data/vendor/pygments-main/tests/examplefiles/objc_example.m +32 -0
  311. data/vendor/pygments-main/tests/examplefiles/objc_example2.m +24 -0
  312. data/vendor/pygments-main/tests/examplefiles/perl_misc +62 -0
  313. data/vendor/pygments-main/tests/examplefiles/perl_perl5db +998 -0
  314. data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +120 -0
  315. data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +856 -0
  316. data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +163 -0
  317. data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +567 -0
  318. data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +1223 -0
  319. data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +47 -0
  320. data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +10 -0
  321. data/vendor/pygments-main/tests/examplefiles/psql_session.txt +122 -0
  322. data/vendor/pygments-main/tests/examplefiles/py3_test.txt +2 -0
  323. data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +4 -0
  324. data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +14 -0
  325. data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +2 -0
  326. data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +4 -0
  327. data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +234 -0
  328. data/vendor/pygments-main/tests/examplefiles/qsort.prolog +13 -0
  329. data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +38 -0
  330. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +280 -0
  331. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +2 -0
  332. data/vendor/pygments-main/tests/examplefiles/regex.js +22 -0
  333. data/vendor/pygments-main/tests/examplefiles/reversi.lsp +427 -0
  334. data/vendor/pygments-main/tests/examplefiles/robotframework.txt +39 -0
  335. data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +11 -0
  336. data/vendor/pygments-main/tests/examplefiles/rust_example.rs +233 -0
  337. data/vendor/pygments-main/tests/examplefiles/scilab.sci +30 -0
  338. data/vendor/pygments-main/tests/examplefiles/session.dylan-console +9 -0
  339. data/vendor/pygments-main/tests/examplefiles/sibling.prolog +19 -0
  340. data/vendor/pygments-main/tests/examplefiles/simple.md +747 -0
  341. data/vendor/pygments-main/tests/examplefiles/smarty_example.html +209 -0
  342. data/vendor/pygments-main/tests/examplefiles/source.lgt +343 -0
  343. data/vendor/pygments-main/tests/examplefiles/sources.list +62 -0
  344. data/vendor/pygments-main/tests/examplefiles/sphere.pov +18 -0
  345. data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +27 -0
  346. data/vendor/pygments-main/tests/examplefiles/squid.conf +30 -0
  347. data/vendor/pygments-main/tests/examplefiles/string.jl +1031 -0
  348. data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +21 -0
  349. data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +3 -0
  350. data/vendor/pygments-main/tests/examplefiles/swig_java.swg +1329 -0
  351. data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +225 -0
  352. data/vendor/pygments-main/tests/examplefiles/test.R +153 -0
  353. data/vendor/pygments-main/tests/examplefiles/test.adb +211 -0
  354. data/vendor/pygments-main/tests/examplefiles/test.agda +102 -0
  355. data/vendor/pygments-main/tests/examplefiles/test.asy +131 -0
  356. data/vendor/pygments-main/tests/examplefiles/test.awk +121 -0
  357. data/vendor/pygments-main/tests/examplefiles/test.bas +29 -0
  358. data/vendor/pygments-main/tests/examplefiles/test.bb +95 -0
  359. data/vendor/pygments-main/tests/examplefiles/test.bmx +145 -0
  360. data/vendor/pygments-main/tests/examplefiles/test.boo +39 -0
  361. data/vendor/pygments-main/tests/examplefiles/test.bro +250 -0
  362. data/vendor/pygments-main/tests/examplefiles/test.cs +374 -0
  363. data/vendor/pygments-main/tests/examplefiles/test.css +54 -0
  364. data/vendor/pygments-main/tests/examplefiles/test.cu +36 -0
  365. data/vendor/pygments-main/tests/examplefiles/test.d +135 -0
  366. data/vendor/pygments-main/tests/examplefiles/test.dart +23 -0
  367. data/vendor/pygments-main/tests/examplefiles/test.dtd +89 -0
  368. data/vendor/pygments-main/tests/examplefiles/test.ebnf +31 -0
  369. data/vendor/pygments-main/tests/examplefiles/test.ec +605 -0
  370. data/vendor/pygments-main/tests/examplefiles/test.ecl +58 -0
  371. data/vendor/pygments-main/tests/examplefiles/test.eh +315 -0
  372. data/vendor/pygments-main/tests/examplefiles/test.erl +169 -0
  373. data/vendor/pygments-main/tests/examplefiles/test.evoque +33 -0
  374. data/vendor/pygments-main/tests/examplefiles/test.fan +818 -0
  375. data/vendor/pygments-main/tests/examplefiles/test.flx +57 -0
  376. data/vendor/pygments-main/tests/examplefiles/test.gdc +13 -0
  377. data/vendor/pygments-main/tests/examplefiles/test.groovy +97 -0
  378. data/vendor/pygments-main/tests/examplefiles/test.html +339 -0
  379. data/vendor/pygments-main/tests/examplefiles/test.ini +10 -0
  380. data/vendor/pygments-main/tests/examplefiles/test.java +653 -0
  381. data/vendor/pygments-main/tests/examplefiles/test.jsp +24 -0
  382. data/vendor/pygments-main/tests/examplefiles/test.maql +45 -0
  383. data/vendor/pygments-main/tests/examplefiles/test.mod +374 -0
  384. data/vendor/pygments-main/tests/examplefiles/test.moo +51 -0
  385. data/vendor/pygments-main/tests/examplefiles/test.myt +166 -0
  386. data/vendor/pygments-main/tests/examplefiles/test.nim +93 -0
  387. data/vendor/pygments-main/tests/examplefiles/test.opa +10 -0
  388. data/vendor/pygments-main/tests/examplefiles/test.p6 +252 -0
  389. data/vendor/pygments-main/tests/examplefiles/test.pas +743 -0
  390. data/vendor/pygments-main/tests/examplefiles/test.php +505 -0
  391. data/vendor/pygments-main/tests/examplefiles/test.plot +333 -0
  392. data/vendor/pygments-main/tests/examplefiles/test.ps1 +108 -0
  393. data/vendor/pygments-main/tests/examplefiles/test.pypylog +1839 -0
  394. data/vendor/pygments-main/tests/examplefiles/test.r3 +94 -0
  395. data/vendor/pygments-main/tests/examplefiles/test.rb +177 -0
  396. data/vendor/pygments-main/tests/examplefiles/test.rhtml +43 -0
  397. data/vendor/pygments-main/tests/examplefiles/test.scaml +8 -0
  398. data/vendor/pygments-main/tests/examplefiles/test.ssp +12 -0
  399. data/vendor/pygments-main/tests/examplefiles/test.tcsh +830 -0
  400. data/vendor/pygments-main/tests/examplefiles/test.vb +407 -0
  401. data/vendor/pygments-main/tests/examplefiles/test.vhdl +161 -0
  402. data/vendor/pygments-main/tests/examplefiles/test.xqy +138 -0
  403. data/vendor/pygments-main/tests/examplefiles/test.xsl +23 -0
  404. data/vendor/pygments-main/tests/examplefiles/test2.pypylog +120 -0
  405. data/vendor/pygments-main/tests/examplefiles/truncated.pytb +15 -0
  406. data/vendor/pygments-main/tests/examplefiles/type.lisp +1218 -0
  407. data/vendor/pygments-main/tests/examplefiles/underscore.coffee +603 -0
  408. data/vendor/pygments-main/tests/examplefiles/unicode.applescript +5 -0
  409. data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +11 -0
  410. data/vendor/pygments-main/tests/examplefiles/unix-io.lid +37 -0
  411. data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +3 -0
  412. data/vendor/pygments-main/tests/examplefiles/while.pov +13 -0
  413. data/vendor/pygments-main/tests/examplefiles/wiki.factor +384 -0
  414. data/vendor/pygments-main/tests/examplefiles/xml_example +1897 -0
  415. data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +798 -0
  416. data/vendor/pygments-main/tests/old_run.py +138 -0
  417. data/vendor/pygments-main/tests/run.py +49 -0
  418. data/vendor/pygments-main/tests/support.py +15 -0
  419. data/vendor/pygments-main/tests/support/tags +36 -0
  420. data/vendor/pygments-main/tests/test_basic_api.py +295 -0
  421. data/vendor/pygments-main/tests/test_clexer.py +31 -0
  422. data/vendor/pygments-main/tests/test_cmdline.py +105 -0
  423. data/vendor/pygments-main/tests/test_examplefiles.py +99 -0
  424. data/vendor/pygments-main/tests/test_html_formatter.py +178 -0
  425. data/vendor/pygments-main/tests/test_latex_formatter.py +55 -0
  426. data/vendor/pygments-main/tests/test_lexers_other.py +68 -0
  427. data/vendor/pygments-main/tests/test_perllexer.py +137 -0
  428. data/vendor/pygments-main/tests/test_regexlexer.py +47 -0
  429. data/vendor/pygments-main/tests/test_token.py +46 -0
  430. data/vendor/pygments-main/tests/test_using_api.py +40 -0
  431. data/vendor/pygments-main/tests/test_util.py +135 -0
  432. data/vendor/simplejson/.gitignore +10 -0
  433. data/vendor/simplejson/.travis.yml +5 -0
  434. data/vendor/simplejson/CHANGES.txt +291 -0
  435. data/vendor/simplejson/LICENSE.txt +19 -0
  436. data/vendor/simplejson/MANIFEST.in +5 -0
  437. data/vendor/simplejson/README.rst +19 -0
  438. data/vendor/simplejson/conf.py +179 -0
  439. data/vendor/simplejson/index.rst +628 -0
  440. data/vendor/simplejson/scripts/make_docs.py +18 -0
  441. data/vendor/simplejson/setup.py +104 -0
  442. data/vendor/simplejson/simplejson/__init__.py +510 -0
  443. data/vendor/simplejson/simplejson/_speedups.c +2745 -0
  444. data/vendor/simplejson/simplejson/decoder.py +425 -0
  445. data/vendor/simplejson/simplejson/encoder.py +567 -0
  446. data/vendor/simplejson/simplejson/ordered_dict.py +119 -0
  447. data/vendor/simplejson/simplejson/scanner.py +77 -0
  448. data/vendor/simplejson/simplejson/tests/__init__.py +67 -0
  449. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +55 -0
  450. data/vendor/simplejson/simplejson/tests/test_check_circular.py +30 -0
  451. data/vendor/simplejson/simplejson/tests/test_decimal.py +66 -0
  452. data/vendor/simplejson/simplejson/tests/test_decode.py +83 -0
  453. data/vendor/simplejson/simplejson/tests/test_default.py +9 -0
  454. data/vendor/simplejson/simplejson/tests/test_dump.py +67 -0
  455. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +46 -0
  456. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +32 -0
  457. data/vendor/simplejson/simplejson/tests/test_errors.py +34 -0
  458. data/vendor/simplejson/simplejson/tests/test_fail.py +91 -0
  459. data/vendor/simplejson/simplejson/tests/test_float.py +19 -0
  460. data/vendor/simplejson/simplejson/tests/test_indent.py +86 -0
  461. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +20 -0
  462. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +121 -0
  463. data/vendor/simplejson/simplejson/tests/test_pass1.py +76 -0
  464. data/vendor/simplejson/simplejson/tests/test_pass2.py +14 -0
  465. data/vendor/simplejson/simplejson/tests/test_pass3.py +20 -0
  466. data/vendor/simplejson/simplejson/tests/test_recursion.py +67 -0
  467. data/vendor/simplejson/simplejson/tests/test_scanstring.py +117 -0
  468. data/vendor/simplejson/simplejson/tests/test_separators.py +42 -0
  469. data/vendor/simplejson/simplejson/tests/test_speedups.py +20 -0
  470. data/vendor/simplejson/simplejson/tests/test_tuple.py +49 -0
  471. data/vendor/simplejson/simplejson/tests/test_unicode.py +109 -0
  472. data/vendor/simplejson/simplejson/tool.py +39 -0
  473. metadata +557 -0
@@ -0,0 +1,163 @@
1
+ %define _myadminpath /var/www/myadmin
2
+ %define pkgrelease rc1
3
+ %define microrelease 1
4
+
5
+ Name: phpMyAdmin
6
+ Version: 3.1.1
7
+ Release: %{pkgrelease}.%{microrelease}
8
+ License: GPL
9
+ Group: Applications/Databases/Interfaces
10
+ Source0: http://prdownloads.sourceforge.net/phpmyadmin/%{name}-%{version}-%{pkgrelease}.tar.bz2
11
+ Source1: phpMyAdmin-http.conf
12
+ URL: http://sourceforge.net/projects/phpmyadmin/
13
+ Requires: mysql
14
+ Requires: php-mysql
15
+ Buildarch: noarch
16
+ #BuildRoot: %{_tmppath}/%{name}-root
17
+
18
+ Summary: phpMyAdmin - web-based MySQL administration
19
+
20
+ %description
21
+ phpMyAdmin can manage a whole MySQL-server (needs a super-user) but
22
+ also a single database. To accomplish the latter you'll need a
23
+ properly set up MySQL-user which can read/write only the desired
24
+ database. It's up to you to look up the appropiate part in the MySQL
25
+ manual. Currently phpMyAdmin can:
26
+ - create and drop databases
27
+ - create, copy, drop and alter tables
28
+ - delete, edit and add fields
29
+ - execute any SQL-statement, even batch-queries
30
+ - manage keys on fields
31
+ - load text files into tables
32
+ - create (*) and read dumps of tables
33
+ - export (*) and import data to CSV values
34
+ - administer multiple servers and single databases
35
+ - check referencial integrity
36
+ - create complex queries automatically connecting required tables
37
+ - create PDF graphics of your database layout
38
+ - communicate in more than 38 different languages
39
+
40
+
41
+ %prep
42
+ %setup -q -n %{name}-%{version}-%{pkgrelease}
43
+
44
+
45
+ %build
46
+
47
+
48
+ %install
49
+ [ "${RPM_BUILD_ROOT}" != "/" ] && [ -d "${RPM_BUILD_ROOT}" ] && \
50
+ rm -rf "${RPM_BUILD_ROOT}"
51
+
52
+ # Create directories.
53
+
54
+ install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/{css,js,lang,libraries,themes}
55
+ install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/libraries/{auth,dbg,dbi,engines}
56
+ install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/libraries/{export,tcpdf,import}
57
+ install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/libraries/transformations
58
+ install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/libraries/tcpdf/font
59
+ install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/themes/{darkblue_orange,original}
60
+ install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/themes/darkblue_orange/{css,img}
61
+ install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/themes/original/{css,img}
62
+
63
+ # Install files.
64
+
65
+ install libraries/config.default.php \
66
+ "${RPM_BUILD_ROOT}%{_myadminpath}"/config.inc.php
67
+ install *.{php,ico} "${RPM_BUILD_ROOT}%{_myadminpath}"/
68
+ install ChangeLog LICENSE README "${RPM_BUILD_ROOT}%{_myadminpath}"/
69
+ install Documentation.html docs.css "${RPM_BUILD_ROOT}%{_myadminpath}"/
70
+ install css/* "${RPM_BUILD_ROOT}%{_myadminpath}/css"/
71
+ install js/* "${RPM_BUILD_ROOT}%{_myadminpath}/js"/
72
+ install lang/*.php "${RPM_BUILD_ROOT}%{_myadminpath}/lang"/
73
+ install libraries/*.php "${RPM_BUILD_ROOT}%{_myadminpath}/libraries"/
74
+ install libraries/auth/*.php "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/auth"/
75
+ install libraries/dbg/*.php "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/dbg"/
76
+ install libraries/dbi/*.php "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/dbi"/
77
+ install libraries/engines/*.php \
78
+ "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/engines"/
79
+ install libraries/export/*.php \
80
+ "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/export"/
81
+ install libraries/tcpdf/*.php "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/tcpdf"/
82
+ install libraries/tcpdf/font/*.{php,z} \
83
+ "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/tcpdf/font"/
84
+ install libraries/import/*.php \
85
+ "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/import"/
86
+ install libraries/transformations/*.php \
87
+ "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/transformations"/
88
+ install themes/darkblue_orange/*.{php,png} \
89
+ "${RPM_BUILD_ROOT}%{_myadminpath}/themes/darkblue_orange"/
90
+ install themes/darkblue_orange/css/*.php \
91
+ "${RPM_BUILD_ROOT}%{_myadminpath}/themes/darkblue_orange/css"/
92
+ install themes/darkblue_orange/img/*.{png,ico} \
93
+ "${RPM_BUILD_ROOT}%{_myadminpath}/themes/darkblue_orange/img"/
94
+ install themes/original/*.{php,png} \
95
+ "${RPM_BUILD_ROOT}%{_myadminpath}/themes/original"/
96
+ install themes/original/css/*.php \
97
+ "${RPM_BUILD_ROOT}%{_myadminpath}/themes/original/css"/
98
+ install themes/original/img/*.{png,ico} \
99
+ "${RPM_BUILD_ROOT}%{_myadminpath}/themes/original/img"/
100
+
101
+ # Create documentation directories.
102
+
103
+ DOCROOT="${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}"
104
+ install -d "${DOCROOT}"
105
+ install -d "${DOCROOT}"/{lang,scripts,transformations}
106
+
107
+ # Install documentation files.
108
+
109
+ install RELEASE-DATE-* "${DOCROOT}"/
110
+ install CREDITS ChangeLog INSTALL LICENSE "${DOCROOT}"/
111
+ install README TODO "${DOCROOT}"/
112
+ install Documentation.* docs.css "${DOCROOT}"/
113
+ install translators.html "${DOCROOT}"/
114
+ install lang/*.sh "${DOCROOT}"/lang/
115
+ install scripts/* "${DOCROOT}"/scripts/
116
+ install libraries/tcpdf/README "${DOCROOT}"/README.tcpdf
117
+ install libraries/import/README "${DOCROOT}"/README.import
118
+ install libraries/transformations/README "${DOCROOT}"/transformations/
119
+ install libraries/transformations/TEMPLATE* "${DOCROOT}"/transformations/
120
+ install libraries/transformations/*.sh "${DOCROOT}"/transformations/
121
+
122
+ # Install configuration file for Apache.
123
+
124
+ install -d "${RPM_BUILD_ROOT}%{_sysconfdir}/httpd/conf.d"
125
+ install "%{SOURCE1}" \
126
+ "${RPM_BUILD_ROOT}%{_sysconfdir}/httpd/conf.d/phpMyAdmin.conf"
127
+
128
+ # Generate non-configuration file list.
129
+
130
+ (cd "${RPM_BUILD_ROOT}"; ls -d ."%{_myadminpath}"/*) |
131
+ sed -e '/\/config\.inc\.php$/d' -e 's/^.//' > files.list
132
+
133
+
134
+
135
+ %clean
136
+ [ "${RPM_BUILD_ROOT}" != "/" ] && [ -d "${RPM_BUILD_ROOT}" ] && \
137
+ rm -rf "${RPM_BUILD_ROOT}"
138
+
139
+
140
+ %files -f files.list
141
+ %defattr(644, root, root, 755)
142
+ %doc %{_docdir}/%{name}-%{version}
143
+ %dir %{_myadminpath}
144
+ %attr(640,root,apache) %config(noreplace) %verify(not size mtime md5) %{_myadminpath}/config.inc.php
145
+ %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/httpd/conf.d/*
146
+
147
+
148
+ %changelog
149
+ * Thu Feb 23 2006 Patrick Monnerat <pm@datasphere.ch>
150
+ - Version 2.8.0-rc1.1.
151
+
152
+ * Thu Dec 22 2005 Patrick Monnerat <patrick.monnerat@econophone.ch>
153
+ - Path "nullpw" to allow trying connection with null password after failure.
154
+ - Version 2.7.0-pl1.1.
155
+
156
+ * Mon Aug 22 2005 Patrick Monnerat <patrick.monnerat@econophone.ch>
157
+ - Version 2.6.3-pl1.
158
+
159
+ * Wed Jul 21 2004 Patrick Monnerat <patrick.monnerat@econophone.ch>
160
+ - Version 2.5.7-pl1.
161
+
162
+ * Fri Nov 22 2002 Patrick Monnerat <patrick.monnerat@econophone.ch>
163
+ - Version 2.3.0-rc1.
@@ -0,0 +1,567 @@
1
+ " Vim completion script
2
+ " Language: PHP
3
+ " Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
4
+ " Last Change: 2006 May 9
5
+ "
6
+ " TODO:
7
+ " - Class aware completion:
8
+ " a) caching?
9
+ " - Switching to HTML (XML?) completion (SQL) inside of phpStrings
10
+ " - allow also for XML completion <- better do html_flavor for HTML
11
+ " completion
12
+ " - outside of <?php?> getting parent tag may cause problems. Heh, even in
13
+ " perfect conditions GetLastOpenTag doesn't cooperate... Inside of
14
+ " phpStrings this can be even a bonus but outside of <?php?> it is not the
15
+ " best situation
16
+
17
+ function! phpcomplete#CompletePHP(findstart, base)
18
+ if a:findstart
19
+ unlet! b:php_menu
20
+ " Check if we are inside of PHP markup
21
+ let pos = getpos('.')
22
+ let phpbegin = searchpairpos('<?', '', '?>', 'bWn',
23
+ \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\|comment"')
24
+ let phpend = searchpairpos('<?', '', '?>', 'Wn',
25
+ \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\|comment"')
26
+
27
+ if phpbegin == [0,0] && phpend == [0,0]
28
+ " We are outside of any PHP markup. Complete HTML
29
+ let htmlbegin = htmlcomplete#CompleteTags(1, '')
30
+ let cursor_col = pos[2]
31
+ let base = getline('.')[htmlbegin : cursor_col]
32
+ let b:php_menu = htmlcomplete#CompleteTags(0, base)
33
+ return htmlbegin
34
+ else
35
+ " locate the start of the word
36
+ let line = getline('.')
37
+ let start = col('.') - 1
38
+ let curline = line('.')
39
+ let compl_begin = col('.') - 2
40
+ while start >= 0 && line[start - 1] =~ '[a-zA-Z_0-9\x7f-\xff$]'
41
+ let start -= 1
42
+ endwhile
43
+ let b:compl_context = getline('.')[0:compl_begin]
44
+ return start
45
+
46
+ " We can be also inside of phpString with HTML tags. Deal with
47
+ " it later (time, not lines).
48
+ endif
49
+
50
+ endif
51
+ " If exists b:php_menu it means completion was already constructed we
52
+ " don't need to do anything more
53
+ if exists("b:php_menu")
54
+ return b:php_menu
55
+ endif
56
+ " Initialize base return lists
57
+ let res = []
58
+ let res2 = []
59
+ " a:base is very short - we need context
60
+ if exists("b:compl_context")
61
+ let context = b:compl_context
62
+ unlet! b:compl_context
63
+ endif
64
+
65
+ if !exists('g:php_builtin_functions')
66
+ call phpcomplete#LoadData()
67
+ endif
68
+
69
+ let scontext = substitute(context, '\$\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*$', '', '')
70
+
71
+ if scontext =~ '\(=\s*new\|extends\)\s\+$'
72
+ " Complete class name
73
+ " Internal solution for finding classes in current file.
74
+ let file = getline(1, '$')
75
+ call filter(file,
76
+ \ 'v:val =~ "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
77
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
78
+ let jfile = join(file, ' ')
79
+ let int_values = split(jfile, 'class\s\+')
80
+ let int_classes = {}
81
+ for i in int_values
82
+ let c_name = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
83
+ if c_name != ''
84
+ let int_classes[c_name] = ''
85
+ endif
86
+ endfor
87
+
88
+ " Prepare list of classes from tags file
89
+ let ext_classes = {}
90
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
91
+ if fnames != ''
92
+ exe 'silent! vimgrep /^'.a:base.'.*\tc\(\t\|$\)/j '.fnames
93
+ let qflist = getqflist()
94
+ if len(qflist) > 0
95
+ for field in qflist
96
+ " [:space:] thing: we don't have to be so strict when
97
+ " dealing with tags files - entries there were already
98
+ " checked by ctags.
99
+ let item = matchstr(field['text'], '^[^[:space:]]\+')
100
+ let ext_classes[item] = ''
101
+ endfor
102
+ endif
103
+ endif
104
+
105
+ " Prepare list of built in classes from g:php_builtin_functions
106
+ if !exists("g:php_omni_bi_classes")
107
+ let g:php_omni_bi_classes = {}
108
+ for i in keys(g:php_builtin_object_functions)
109
+ let g:php_omni_bi_classes[substitute(i, '::.*$', '', '')] = ''
110
+ endfor
111
+ endif
112
+
113
+ let classes = sort(keys(int_classes))
114
+ let classes += sort(keys(ext_classes))
115
+ let classes += sort(keys(g:php_omni_bi_classes))
116
+
117
+ for m in classes
118
+ if m =~ '^'.a:base
119
+ call add(res, m)
120
+ endif
121
+ endfor
122
+
123
+ let final_menu = []
124
+ for i in res
125
+ let final_menu += [{'word':i, 'kind':'c'}]
126
+ endfor
127
+
128
+ return final_menu
129
+
130
+ elseif scontext =~ '\(->\|::\)$'
131
+ " Complete user functions and variables
132
+ " Internal solution for current file.
133
+ " That seems as unnecessary repeating of functions but there are
134
+ " few not so subtle differences as not appending of $ and addition
135
+ " of 'kind' tag (not necessary in regular completion)
136
+
137
+ if scontext =~ '->$' && scontext !~ '\$this->$'
138
+
139
+ " Get name of the class
140
+ let classname = phpcomplete#GetClassName(scontext)
141
+
142
+ " Get location of class definition, we have to iterate through all
143
+ " tags files separately because we need relative path from current
144
+ " file to the exact file (tags file can be in different dir)
145
+ if classname != ''
146
+ let classlocation = phpcomplete#GetClassLocation(classname)
147
+ else
148
+ let classlocation = ''
149
+ endif
150
+
151
+ if classlocation == 'VIMPHP_BUILTINOBJECT'
152
+
153
+ for object in keys(g:php_builtin_object_functions)
154
+ if object =~ '^'.classname
155
+ let res += [{'word':substitute(object, '.*::', '', ''),
156
+ \ 'info': g:php_builtin_object_functions[object]}]
157
+ endif
158
+ endfor
159
+
160
+ return res
161
+
162
+ endif
163
+
164
+ if filereadable(classlocation)
165
+ let classfile = readfile(classlocation)
166
+ let classcontent = ''
167
+ let classcontent .= "\n".phpcomplete#GetClassContents(classfile, classname)
168
+ let sccontent = split(classcontent, "\n")
169
+
170
+ " YES, YES, YES! - we have whole content including extends!
171
+ " Now we need to get two elements: public functions and public
172
+ " vars
173
+ " NO, NO, NO! - third separate filtering looking for content
174
+ " :(, but all of them have differences. To squeeze them into
175
+ " one implementation would require many additional arguments
176
+ " and ifs. No good solution
177
+ " Functions declared with public keyword or without any
178
+ " keyword are public
179
+ let functions = filter(deepcopy(sccontent),
180
+ \ 'v:val =~ "^\\s*\\(static\\s\\+\\|public\\s\\+\\)*function"')
181
+ let jfuncs = join(functions, ' ')
182
+ let sfuncs = split(jfuncs, 'function\s\+')
183
+ let c_functions = {}
184
+ for i in sfuncs
185
+ let f_name = matchstr(i,
186
+ \ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
187
+ let f_args = matchstr(i,
188
+ \ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*{')
189
+ if f_name != ''
190
+ let c_functions[f_name.'('] = f_args
191
+ endif
192
+ endfor
193
+ " Variables declared with var or with public keyword are
194
+ " public
195
+ let variables = filter(deepcopy(sccontent),
196
+ \ 'v:val =~ "^\\s*\\(public\\|var\\)\\s\\+\\$"')
197
+ let jvars = join(variables, ' ')
198
+ let svars = split(jvars, '\$')
199
+ let c_variables = {}
200
+ for i in svars
201
+ let c_var = matchstr(i,
202
+ \ '^\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
203
+ if c_var != ''
204
+ let c_variables[c_var] = ''
205
+ endif
206
+ endfor
207
+
208
+ let all_values = {}
209
+ call extend(all_values, c_functions)
210
+ call extend(all_values, c_variables)
211
+
212
+ for m in sort(keys(all_values))
213
+ if m =~ '^'.a:base && m !~ '::'
214
+ call add(res, m)
215
+ elseif m =~ '::'.a:base
216
+ call add(res2, m)
217
+ endif
218
+ endfor
219
+
220
+ let start_list = res + res2
221
+
222
+ let final_list = []
223
+ for i in start_list
224
+ if has_key(c_variables, i)
225
+ let class = ' '
226
+ if all_values[i] != ''
227
+ let class = i.' class '
228
+ endif
229
+ let final_list +=
230
+ \ [{'word':i,
231
+ \ 'info':class.all_values[i],
232
+ \ 'kind':'v'}]
233
+ else
234
+ let final_list +=
235
+ \ [{'word':substitute(i, '.*::', '', ''),
236
+ \ 'info':i.all_values[i].')',
237
+ \ 'kind':'f'}]
238
+ endif
239
+ endfor
240
+
241
+ return final_list
242
+
243
+ endif
244
+
245
+ endif
246
+
247
+ if a:base =~ '^\$'
248
+ let adddollar = '$'
249
+ else
250
+ let adddollar = ''
251
+ endif
252
+ let file = getline(1, '$')
253
+ let jfile = join(file, ' ')
254
+ let sfile = split(jfile, '\$')
255
+ let int_vars = {}
256
+ for i in sfile
257
+ if i =~ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*=\s*new'
258
+ let val = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*').'->'
259
+ else
260
+ let val = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
261
+ endif
262
+ if val !~ ''
263
+ let int_vars[adddollar.val] = ''
264
+ endif
265
+ endfor
266
+
267
+ " ctags has good support for PHP, use tags file for external
268
+ " variables
269
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
270
+ let ext_vars = {}
271
+ if fnames != ''
272
+ let sbase = substitute(a:base, '^\$', '', '')
273
+ exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames
274
+ let qflist = getqflist()
275
+ if len(qflist) > 0
276
+ for field in qflist
277
+ let item = matchstr(field['text'], '^[^[:space:]]\+')
278
+ " Add -> if it is possible object declaration
279
+ let classname = ''
280
+ if field['text'] =~ item.'\s*=\s*new\s\+'
281
+ let item = item.'->'
282
+ let classname = matchstr(field['text'],
283
+ \ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
284
+ endif
285
+ let ext_vars[adddollar.item] = classname
286
+ endfor
287
+ endif
288
+ endif
289
+
290
+ " Now we have all variables in int_vars dictionary
291
+ call extend(int_vars, ext_vars)
292
+
293
+ " Internal solution for finding functions in current file.
294
+ let file = getline(1, '$')
295
+ call filter(file,
296
+ \ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
297
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
298
+ let jfile = join(file, ' ')
299
+ let int_values = split(jfile, 'function\s\+')
300
+ let int_functions = {}
301
+ for i in int_values
302
+ let f_name = matchstr(i,
303
+ \ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
304
+ let f_args = matchstr(i,
305
+ \ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*{')
306
+ let int_functions[f_name.'('] = f_args.')'
307
+ endfor
308
+
309
+ " Prepare list of functions from tags file
310
+ let ext_functions = {}
311
+ if fnames != ''
312
+ exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
313
+ let qflist = getqflist()
314
+ if len(qflist) > 0
315
+ for field in qflist
316
+ " File name
317
+ let item = matchstr(field['text'], '^[^[:space:]]\+')
318
+ let fname = matchstr(field['text'], '\t\zs\f\+\ze')
319
+ let prototype = matchstr(field['text'],
320
+ \ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
321
+ let ext_functions[item.'('] = prototype.') - '.fname
322
+ endfor
323
+ endif
324
+ endif
325
+
326
+ let all_values = {}
327
+ call extend(all_values, int_functions)
328
+ call extend(all_values, ext_functions)
329
+ call extend(all_values, int_vars) " external variables are already in
330
+ call extend(all_values, g:php_builtin_object_functions)
331
+
332
+ for m in sort(keys(all_values))
333
+ if m =~ '\(^\|::\)'.a:base
334
+ call add(res, m)
335
+ endif
336
+ endfor
337
+
338
+ let start_list = res
339
+
340
+ let final_list = []
341
+ for i in start_list
342
+ if has_key(int_vars, i)
343
+ let class = ' '
344
+ if all_values[i] != ''
345
+ let class = i.' class '
346
+ endif
347
+ let final_list += [{'word':i, 'info':class.all_values[i], 'kind':'v'}]
348
+ else
349
+ let final_list +=
350
+ \ [{'word':substitute(i, '.*::', '', ''),
351
+ \ 'info':i.all_values[i],
352
+ \ 'kind':'f'}]
353
+ endif
354
+ endfor
355
+
356
+ return final_list
357
+ endif
358
+
359
+ if a:base =~ '^\$'
360
+ " Complete variables
361
+ " Built-in variables {{{
362
+ let g:php_builtin_vars = {'$GLOBALS':'',
363
+ \ '$_SERVER':'',
364
+ \ '$_GET':'',
365
+ \ '$_POST':'',
366
+ \ '$_COOKIE':'',
367
+ \ '$_FILES':'',
368
+ \ '$_ENV':'',
369
+ \ '$_REQUEST':'',
370
+ \ '$_SESSION':'',
371
+ \ '$HTTP_SERVER_VARS':'',
372
+ \ '$HTTP_ENV_VARS':'',
373
+ \ '$HTTP_COOKIE_VARS':'',
374
+ \ '$HTTP_GET_VARS':'',
375
+ \ '$HTTP_POST_VARS':'',
376
+ \ '$HTTP_POST_FILES':'',
377
+ \ '$HTTP_SESSION_VARS':'',
378
+ \ '$php_errormsg':'',
379
+ \ '$this':''
380
+ \ }
381
+ " }}}
382
+
383
+ " Internal solution for current file.
384
+ let file = getline(1, '$')
385
+ let jfile = join(file, ' ')
386
+ let int_vals = split(jfile, '\ze\$')
387
+ let int_vars = {}
388
+ for i in int_vals
389
+ if i =~ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*=\s*new'
390
+ let val = matchstr(i,
391
+ \ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*').'->'
392
+ else
393
+ let val = matchstr(i,
394
+ \ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
395
+ endif
396
+ if val != ''
397
+ let int_vars[val] = ''
398
+ endif
399
+ endfor
400
+
401
+ call extend(int_vars,g:php_builtin_vars)
402
+
403
+ " ctags has support for PHP, use tags file for external variables
404
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
405
+ let ext_vars = {}
406
+ if fnames != ''
407
+ let sbase = substitute(a:base, '^\$', '', '')
408
+ exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames
409
+ let qflist = getqflist()
410
+ if len(qflist) > 0
411
+ for field in qflist
412
+ let item = '$'.matchstr(field['text'], '^[^[:space:]]\+')
413
+ let m_menu = ''
414
+ " Add -> if it is possible object declaration
415
+ if field['text'] =~ item.'\s*=\s*new\s\+'
416
+ let item = item.'->'
417
+ let m_menu = matchstr(field['text'],
418
+ \ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
419
+ endif
420
+ let ext_vars[item] = m_menu
421
+ endfor
422
+ endif
423
+ endif
424
+
425
+ call extend(int_vars, ext_vars)
426
+ let g:a0 = keys(int_vars)
427
+
428
+ for m in sort(keys(int_vars))
429
+ if m =~ '^\'.a:base
430
+ call add(res, m)
431
+ endif
432
+ endfor
433
+
434
+ let int_list = res
435
+
436
+ let int_dict = []
437
+ for i in int_list
438
+ if int_vars[i] != ''
439
+ let class = ' '
440
+ if int_vars[i] != ''
441
+ let class = i.' class '
442
+ endif
443
+ let int_dict += [{'word':i, 'info':class.int_vars[i], 'kind':'v'}]
444
+ else
445
+ let int_dict += [{'word':i, 'kind':'v'}]
446
+ endif
447
+ endfor
448
+
449
+ return int_dict
450
+
451
+ else
452
+ " Complete everything else -
453
+ " + functions, DONE
454
+ " + keywords of language DONE
455
+ " + defines (constant definitions), DONE
456
+ " + extend keywords for predefined constants, DONE
457
+ " + classes (after new), DONE
458
+ " + limit choice after -> and :: to funcs and vars DONE
459
+
460
+ " Internal solution for finding functions in current file.
461
+ let file = getline(1, '$')
462
+ call filter(file,
463
+ \ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
464
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
465
+ let jfile = join(file, ' ')
466
+ let int_values = split(jfile, 'function\s\+')
467
+ let int_functions = {}
468
+ for i in int_values
469
+ let f_name = matchstr(i,
470
+ \ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
471
+ let f_args = matchstr(i,
472
+ \ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\s*\zs.\{-}\ze\s*)\_s*{')
473
+ let int_functions[f_name.'('] = f_args.')'
474
+ endfor
475
+
476
+ " Prepare list of functions from tags file
477
+ let ext_functions = {}
478
+ if fnames != ''
479
+ exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
480
+ let qflist = getqflist()
481
+ if len(qflist) > 0
482
+ for field in qflist
483
+ " File name
484
+ let item = matchstr(field['text'], '^[^[:space:]]\+')
485
+ let fname = matchstr(field['text'], '\t\zs\f\+\ze')
486
+ let prototype = matchstr(field['text'],
487
+ \ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
488
+ let ext_functions[item.'('] = prototype.') - '.fname
489
+ endfor
490
+ endif
491
+ endif
492
+
493
+ " All functions
494
+ call extend(int_functions, ext_functions)
495
+ call extend(int_functions, g:php_builtin_functions)
496
+
497
+ " Internal solution for finding constants in current file
498
+ let file = getline(1, '$')
499
+ call filter(file, 'v:val =~ "define\\s*("')
500
+ let jfile = join(file, ' ')
501
+ let int_values = split(jfile, 'define\s*(\s*')
502
+ let int_constants = {}
503
+ for i in int_values
504
+ let c_name = matchstr(i, '\(["'']\)\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze\1')
505
+ " let c_value = matchstr(i,
506
+ " \ '\(["'']\)[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\1\s*,\s*\zs.\{-}\ze\s*)')
507
+ if c_name != ''
508
+ let int_constants[c_name] = '' " c_value
509
+ endif
510
+ endfor
511
+
512
+ " Prepare list of constants from tags file
513
+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
514
+ let ext_constants = {}
515
+ if fnames != ''
516
+ exe 'silent! vimgrep /^'.a:base.'.*\td\(\t\|$\)/j '.fnames
517
+ let qflist = getqflist()
518
+ if len(qflist) > 0
519
+ for field in qflist
520
+ let item = matchstr(field['text'], '^[^[:space:]]\+')
521
+ let ext_constants[item] = ''
522
+ endfor
523
+ endif
524
+ endif
525
+
526
+ " All constants
527
+ call extend(int_constants, ext_constants)
528
+ " Treat keywords as constants
529
+
530
+ let all_values = {}
531
+
532
+ " One big dictionary of functions
533
+ call extend(all_values, int_functions)
534
+
535
+ " Add constants
536
+ call extend(all_values, int_constants)
537
+ " Add keywords
538
+ call extend(all_values, g:php_keywords)
539
+
540
+ for m in sort(keys(all_values))
541
+ if m =~ '^'.a:base
542
+ call add(res, m)
543
+ endif
544
+ endfor
545
+
546
+ let int_list = res
547
+
548
+ let final_list = []
549
+ for i in int_list
550
+ if has_key(int_functions, i)
551
+ let final_list +=
552
+ \ [{'word':i,
553
+ \ 'info':i.int_functions[i],
554
+ \ 'kind':'f'}]
555
+ elseif has_key(int_constants, i)
556
+ let final_list += [{'word':i, 'kind':'d'}]
557
+ else
558
+ let final_list += [{'word':i}]
559
+ endif
560
+ endfor
561
+
562
+ return final_list
563
+
564
+ endif
565
+
566
+ endfunction
567
+ " vim:set foldmethod=marker: