pygments.rb-jruby 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
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: