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.
- checksums.yaml +7 -0
- data/.gitignore +6 -0
- data/CHANGELOG.md +71 -0
- data/Gemfile +2 -0
- data/LICENSE +17 -0
- data/README.md +118 -0
- data/Rakefile +66 -0
- data/bench.rb +22 -0
- data/cache-lexers.rb +8 -0
- data/lexers +0 -0
- data/lib/pygments.rb +8 -0
- data/lib/pygments/lexer.rb +148 -0
- data/lib/pygments/mentos.py +351 -0
- data/lib/pygments/popen.rb +404 -0
- data/lib/pygments/version.rb +3 -0
- data/pygments.rb.gemspec +24 -0
- data/test/test_data.c +2581 -0
- data/test/test_data.py +514 -0
- data/test/test_data_generated +2582 -0
- data/test/test_pygments.rb +287 -0
- data/vendor/custom_lexers/github.py +565 -0
- data/vendor/pygments-main/AUTHORS +153 -0
- data/vendor/pygments-main/CHANGES +889 -0
- data/vendor/pygments-main/LICENSE +25 -0
- data/vendor/pygments-main/MANIFEST.in +6 -0
- data/vendor/pygments-main/Makefile +59 -0
- data/vendor/pygments-main/REVISION +1 -0
- data/vendor/pygments-main/TODO +15 -0
- data/vendor/pygments-main/docs/generate.py +472 -0
- data/vendor/pygments-main/docs/pygmentize.1 +94 -0
- data/vendor/pygments-main/docs/src/api.txt +270 -0
- data/vendor/pygments-main/docs/src/authors.txt +5 -0
- data/vendor/pygments-main/docs/src/changelog.txt +5 -0
- data/vendor/pygments-main/docs/src/cmdline.txt +147 -0
- data/vendor/pygments-main/docs/src/filterdevelopment.txt +70 -0
- data/vendor/pygments-main/docs/src/filters.txt +42 -0
- data/vendor/pygments-main/docs/src/formatterdevelopment.txt +169 -0
- data/vendor/pygments-main/docs/src/formatters.txt +48 -0
- data/vendor/pygments-main/docs/src/index.txt +69 -0
- data/vendor/pygments-main/docs/src/installation.txt +71 -0
- data/vendor/pygments-main/docs/src/integrate.txt +48 -0
- data/vendor/pygments-main/docs/src/java.txt +70 -0
- data/vendor/pygments-main/docs/src/lexerdevelopment.txt +603 -0
- data/vendor/pygments-main/docs/src/lexers.txt +67 -0
- data/vendor/pygments-main/docs/src/moinmoin.txt +39 -0
- data/vendor/pygments-main/docs/src/plugins.txt +93 -0
- data/vendor/pygments-main/docs/src/quickstart.txt +202 -0
- data/vendor/pygments-main/docs/src/rstdirective.txt +22 -0
- data/vendor/pygments-main/docs/src/styles.txt +143 -0
- data/vendor/pygments-main/docs/src/tokens.txt +349 -0
- data/vendor/pygments-main/docs/src/unicode.txt +49 -0
- data/vendor/pygments-main/external/autopygmentize +64 -0
- data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +144 -0
- data/vendor/pygments-main/external/markdown-processor.py +67 -0
- data/vendor/pygments-main/external/moin-parser.py +112 -0
- data/vendor/pygments-main/external/pygments.bashcomp +38 -0
- data/vendor/pygments-main/external/rst-directive-old.py +77 -0
- data/vendor/pygments-main/external/rst-directive.py +83 -0
- data/vendor/pygments-main/ez_setup.py +276 -0
- data/vendor/pygments-main/pygmentize +7 -0
- data/vendor/pygments-main/pygments/__init__.py +91 -0
- data/vendor/pygments-main/pygments/cmdline.py +441 -0
- data/vendor/pygments-main/pygments/console.py +74 -0
- data/vendor/pygments-main/pygments/filter.py +74 -0
- data/vendor/pygments-main/pygments/filters/__init__.py +356 -0
- data/vendor/pygments-main/pygments/formatter.py +95 -0
- data/vendor/pygments-main/pygments/formatters/__init__.py +68 -0
- data/vendor/pygments-main/pygments/formatters/_mapping.py +92 -0
- data/vendor/pygments-main/pygments/formatters/bbcode.py +109 -0
- data/vendor/pygments-main/pygments/formatters/html.py +821 -0
- data/vendor/pygments-main/pygments/formatters/img.py +553 -0
- data/vendor/pygments-main/pygments/formatters/latex.py +378 -0
- data/vendor/pygments-main/pygments/formatters/other.py +115 -0
- data/vendor/pygments-main/pygments/formatters/rtf.py +136 -0
- data/vendor/pygments-main/pygments/formatters/svg.py +154 -0
- data/vendor/pygments-main/pygments/formatters/terminal.py +112 -0
- data/vendor/pygments-main/pygments/formatters/terminal256.py +222 -0
- data/vendor/pygments-main/pygments/lexer.py +765 -0
- data/vendor/pygments-main/pygments/lexers/__init__.py +240 -0
- data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1645 -0
- data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +232 -0
- data/vendor/pygments-main/pygments/lexers/_lassobuiltins.py +5172 -0
- data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +249 -0
- data/vendor/pygments-main/pygments/lexers/_mapping.py +354 -0
- data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +562 -0
- data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +3787 -0
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +233 -0
- data/vendor/pygments-main/pygments/lexers/_robotframeworklexer.py +557 -0
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +40 -0
- data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +1072 -0
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +360 -0
- data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +13 -0
- data/vendor/pygments-main/pygments/lexers/agile.py +2290 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +398 -0
- data/vendor/pygments-main/pygments/lexers/compiled.py +3723 -0
- data/vendor/pygments-main/pygments/lexers/dalvik.py +104 -0
- data/vendor/pygments-main/pygments/lexers/dotnet.py +671 -0
- data/vendor/pygments-main/pygments/lexers/foxpro.py +428 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +2731 -0
- data/vendor/pygments-main/pygments/lexers/github.py +565 -0
- data/vendor/pygments-main/pygments/lexers/hdl.py +356 -0
- data/vendor/pygments-main/pygments/lexers/jvm.py +1112 -0
- data/vendor/pygments-main/pygments/lexers/math.py +1918 -0
- data/vendor/pygments-main/pygments/lexers/other.py +3778 -0
- data/vendor/pygments-main/pygments/lexers/parsers.py +778 -0
- data/vendor/pygments-main/pygments/lexers/shell.py +424 -0
- data/vendor/pygments-main/pygments/lexers/special.py +100 -0
- data/vendor/pygments-main/pygments/lexers/sql.py +559 -0
- data/vendor/pygments-main/pygments/lexers/templates.py +1742 -0
- data/vendor/pygments-main/pygments/lexers/text.py +1893 -0
- data/vendor/pygments-main/pygments/lexers/web.py +4045 -0
- data/vendor/pygments-main/pygments/modeline.py +40 -0
- data/vendor/pygments-main/pygments/plugin.py +74 -0
- data/vendor/pygments-main/pygments/scanner.py +104 -0
- data/vendor/pygments-main/pygments/style.py +117 -0
- data/vendor/pygments-main/pygments/styles/__init__.py +70 -0
- data/vendor/pygments-main/pygments/styles/autumn.py +65 -0
- data/vendor/pygments-main/pygments/styles/borland.py +51 -0
- data/vendor/pygments-main/pygments/styles/bw.py +49 -0
- data/vendor/pygments-main/pygments/styles/colorful.py +81 -0
- data/vendor/pygments-main/pygments/styles/default.py +73 -0
- data/vendor/pygments-main/pygments/styles/emacs.py +72 -0
- data/vendor/pygments-main/pygments/styles/friendly.py +72 -0
- data/vendor/pygments-main/pygments/styles/fruity.py +42 -0
- data/vendor/pygments-main/pygments/styles/manni.py +75 -0
- data/vendor/pygments-main/pygments/styles/monokai.py +106 -0
- data/vendor/pygments-main/pygments/styles/murphy.py +80 -0
- data/vendor/pygments-main/pygments/styles/native.py +65 -0
- data/vendor/pygments-main/pygments/styles/pastie.py +75 -0
- data/vendor/pygments-main/pygments/styles/perldoc.py +69 -0
- data/vendor/pygments-main/pygments/styles/rrt.py +33 -0
- data/vendor/pygments-main/pygments/styles/tango.py +141 -0
- data/vendor/pygments-main/pygments/styles/trac.py +63 -0
- data/vendor/pygments-main/pygments/styles/vim.py +63 -0
- data/vendor/pygments-main/pygments/styles/vs.py +38 -0
- data/vendor/pygments-main/pygments/token.py +195 -0
- data/vendor/pygments-main/pygments/unistring.py +140 -0
- data/vendor/pygments-main/pygments/util.py +277 -0
- data/vendor/pygments-main/scripts/check_sources.py +242 -0
- data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +32 -0
- data/vendor/pygments-main/scripts/epydoc.css +280 -0
- data/vendor/pygments-main/scripts/find_codetags.py +205 -0
- data/vendor/pygments-main/scripts/find_error.py +170 -0
- data/vendor/pygments-main/scripts/get_vimkw.py +43 -0
- data/vendor/pygments-main/scripts/pylintrc +301 -0
- data/vendor/pygments-main/scripts/reindent.py +291 -0
- data/vendor/pygments-main/scripts/vim2pygments.py +933 -0
- data/vendor/pygments-main/setup.cfg +7 -0
- data/vendor/pygments-main/setup.py +90 -0
- data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +37 -0
- data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +869 -0
- data/vendor/pygments-main/tests/dtds/HTML4.dcl +88 -0
- data/vendor/pygments-main/tests/dtds/HTML4.dtd +1092 -0
- data/vendor/pygments-main/tests/dtds/HTML4.soc +9 -0
- data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +195 -0
- data/vendor/pygments-main/tests/dtds/HTMLspec.ent +77 -0
- data/vendor/pygments-main/tests/dtds/HTMLsym.ent +241 -0
- data/vendor/pygments-main/tests/examplefiles/ANTLRv3.g +608 -0
- data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +209 -0
- data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +102 -0
- data/vendor/pygments-main/tests/examplefiles/BOM.js +1 -0
- data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +611 -0
- data/vendor/pygments-main/tests/examplefiles/Config.in.cache +1973 -0
- data/vendor/pygments-main/tests/examplefiles/Constants.mo +158 -0
- data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +411 -0
- data/vendor/pygments-main/tests/examplefiles/Deflate.fs +578 -0
- data/vendor/pygments-main/tests/examplefiles/Errors.scala +18 -0
- data/vendor/pygments-main/tests/examplefiles/File.hy +174 -0
- data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +66 -0
- data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +104 -0
- data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +671 -0
- data/vendor/pygments-main/tests/examplefiles/Intro.java +1660 -0
- data/vendor/pygments-main/tests/examplefiles/Makefile +1131 -0
- data/vendor/pygments-main/tests/examplefiles/Object.st +4394 -0
- data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +584 -0
- data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +23 -0
- data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +378 -0
- data/vendor/pygments-main/tests/examplefiles/Sorting.mod +470 -0
- data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +382 -0
- data/vendor/pygments-main/tests/examplefiles/addressbook.proto +30 -0
- data/vendor/pygments-main/tests/examplefiles/antlr_throws +1 -0
- data/vendor/pygments-main/tests/examplefiles/apache2.conf +393 -0
- data/vendor/pygments-main/tests/examplefiles/as3_test.as +143 -0
- data/vendor/pygments-main/tests/examplefiles/as3_test2.as +46 -0
- data/vendor/pygments-main/tests/examplefiles/as3_test3.as +3 -0
- data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +27 -0
- data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +25 -0
- data/vendor/pygments-main/tests/examplefiles/badcase.java +2 -0
- data/vendor/pygments-main/tests/examplefiles/batchfile.bat +49 -0
- data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +308 -0
- data/vendor/pygments-main/tests/examplefiles/boot-9.scm +1557 -0
- data/vendor/pygments-main/tests/examplefiles/ca65_example +284 -0
- data/vendor/pygments-main/tests/examplefiles/cbmbas_example +9 -0
- data/vendor/pygments-main/tests/examplefiles/cells.ps +515 -0
- data/vendor/pygments-main/tests/examplefiles/ceval.c +2604 -0
- data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +13 -0
- data/vendor/pygments-main/tests/examplefiles/classes.dylan +125 -0
- data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +10 -0
- data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +447 -0
- data/vendor/pygments-main/tests/examplefiles/database.pytb +20 -0
- data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +2461 -0
- data/vendor/pygments-main/tests/examplefiles/demo.ahk +181 -0
- data/vendor/pygments-main/tests/examplefiles/demo.cfm +38 -0
- data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +68 -0
- data/vendor/pygments-main/tests/examplefiles/dwarf.cw +17 -0
- data/vendor/pygments-main/tests/examplefiles/erl_session +10 -0
- data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +1 -0
- data/vendor/pygments-main/tests/examplefiles/evil_regex.js +48 -0
- data/vendor/pygments-main/tests/examplefiles/example.Rd +78 -0
- data/vendor/pygments-main/tests/examplefiles/example.bug +54 -0
- data/vendor/pygments-main/tests/examplefiles/example.c +2080 -0
- data/vendor/pygments-main/tests/examplefiles/example.ceylon +52 -0
- data/vendor/pygments-main/tests/examplefiles/example.clay +33 -0
- data/vendor/pygments-main/tests/examplefiles/example.cls +15 -0
- data/vendor/pygments-main/tests/examplefiles/example.cob +3556 -0
- data/vendor/pygments-main/tests/examplefiles/example.cpp +2363 -0
- data/vendor/pygments-main/tests/examplefiles/example.gs +106 -0
- data/vendor/pygments-main/tests/examplefiles/example.gst +7 -0
- data/vendor/pygments-main/tests/examplefiles/example.hx +142 -0
- data/vendor/pygments-main/tests/examplefiles/example.jag +48 -0
- data/vendor/pygments-main/tests/examplefiles/example.kt +47 -0
- data/vendor/pygments-main/tests/examplefiles/example.lagda +19 -0
- data/vendor/pygments-main/tests/examplefiles/example.lua +250 -0
- data/vendor/pygments-main/tests/examplefiles/example.monkey +152 -0
- data/vendor/pygments-main/tests/examplefiles/example.moo +26 -0
- data/vendor/pygments-main/tests/examplefiles/example.moon +629 -0
- data/vendor/pygments-main/tests/examplefiles/example.msc +43 -0
- data/vendor/pygments-main/tests/examplefiles/example.nim +1010 -0
- data/vendor/pygments-main/tests/examplefiles/example.ns2 +69 -0
- data/vendor/pygments-main/tests/examplefiles/example.p +34 -0
- data/vendor/pygments-main/tests/examplefiles/example.pas +2708 -0
- data/vendor/pygments-main/tests/examplefiles/example.prg +161 -0
- data/vendor/pygments-main/tests/examplefiles/example.rb +1852 -0
- data/vendor/pygments-main/tests/examplefiles/example.reg +19 -0
- data/vendor/pygments-main/tests/examplefiles/example.rexx +50 -0
- data/vendor/pygments-main/tests/examplefiles/example.rhtml +561 -0
- data/vendor/pygments-main/tests/examplefiles/example.rkt +95 -0
- data/vendor/pygments-main/tests/examplefiles/example.rpf +4 -0
- data/vendor/pygments-main/tests/examplefiles/example.sh-session +19 -0
- data/vendor/pygments-main/tests/examplefiles/example.shell-session +45 -0
- data/vendor/pygments-main/tests/examplefiles/example.sml +156 -0
- data/vendor/pygments-main/tests/examplefiles/example.snobol +15 -0
- data/vendor/pygments-main/tests/examplefiles/example.stan +108 -0
- data/vendor/pygments-main/tests/examplefiles/example.tea +34 -0
- data/vendor/pygments-main/tests/examplefiles/example.ts +28 -0
- data/vendor/pygments-main/tests/examplefiles/example.u +548 -0
- data/vendor/pygments-main/tests/examplefiles/example.weechatlog +9 -0
- data/vendor/pygments-main/tests/examplefiles/example.xhtml +376 -0
- data/vendor/pygments-main/tests/examplefiles/example.xtend +34 -0
- data/vendor/pygments-main/tests/examplefiles/example.yaml +302 -0
- data/vendor/pygments-main/tests/examplefiles/example2.aspx +29 -0
- data/vendor/pygments-main/tests/examplefiles/example2.msc +79 -0
- data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +363 -0
- data/vendor/pygments-main/tests/examplefiles/example_file.fy +128 -0
- data/vendor/pygments-main/tests/examplefiles/firefox.mak +586 -0
- data/vendor/pygments-main/tests/examplefiles/flipflop.sv +19 -0
- data/vendor/pygments-main/tests/examplefiles/foo.sce +6 -0
- data/vendor/pygments-main/tests/examplefiles/format.ml +1213 -0
- data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +77 -0
- data/vendor/pygments-main/tests/examplefiles/function.mu +1 -0
- data/vendor/pygments-main/tests/examplefiles/functional.rst +1472 -0
- data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +133 -0
- data/vendor/pygments-main/tests/examplefiles/genclass.clj +510 -0
- data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +193 -0
- data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +33 -0
- data/vendor/pygments-main/tests/examplefiles/glsl.frag +7 -0
- data/vendor/pygments-main/tests/examplefiles/glsl.vert +13 -0
- data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +22 -0
- data/vendor/pygments-main/tests/examplefiles/hello.smali +40 -0
- data/vendor/pygments-main/tests/examplefiles/hello.sp +9 -0
- data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +1 -0
- data/vendor/pygments-main/tests/examplefiles/http_request_example +15 -0
- data/vendor/pygments-main/tests/examplefiles/http_response_example +29 -0
- data/vendor/pygments-main/tests/examplefiles/import.hs +4 -0
- data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +71 -0
- data/vendor/pygments-main/tests/examplefiles/intro.ik +24 -0
- data/vendor/pygments-main/tests/examplefiles/ints.php +10 -0
- data/vendor/pygments-main/tests/examplefiles/intsyn.fun +675 -0
- data/vendor/pygments-main/tests/examplefiles/intsyn.sig +286 -0
- data/vendor/pygments-main/tests/examplefiles/irb_heredoc +8 -0
- data/vendor/pygments-main/tests/examplefiles/irc.lsp +214 -0
- data/vendor/pygments-main/tests/examplefiles/java.properties +16 -0
- data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +28 -0
- data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +45 -0
- data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +713 -0
- data/vendor/pygments-main/tests/examplefiles/json.lasso +301 -0
- data/vendor/pygments-main/tests/examplefiles/json.lasso9 +213 -0
- data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +13 -0
- data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +47 -0
- data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +41 -0
- data/vendor/pygments-main/tests/examplefiles/logos_example.xm +28 -0
- data/vendor/pygments-main/tests/examplefiles/ltmain.sh +2849 -0
- data/vendor/pygments-main/tests/examplefiles/main.cmake +42 -0
- data/vendor/pygments-main/tests/examplefiles/markdown.lsp +679 -0
- data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +3 -0
- data/vendor/pygments-main/tests/examplefiles/matlab_sample +30 -0
- data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +37 -0
- data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +455 -0
- data/vendor/pygments-main/tests/examplefiles/mg_sample.pro +73 -0
- data/vendor/pygments-main/tests/examplefiles/minehunt.qml +112 -0
- data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +4 -0
- data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +340 -0
- data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +38 -0
- data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +95 -0
- data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +96 -0
- data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +30 -0
- data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +87 -0
- data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +118 -0
- data/vendor/pygments-main/tests/examplefiles/numbers.c +12 -0
- data/vendor/pygments-main/tests/examplefiles/objc_example.m +32 -0
- data/vendor/pygments-main/tests/examplefiles/objc_example2.m +24 -0
- data/vendor/pygments-main/tests/examplefiles/perl_misc +62 -0
- data/vendor/pygments-main/tests/examplefiles/perl_perl5db +998 -0
- data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +120 -0
- data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +856 -0
- data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +163 -0
- data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +567 -0
- data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +1223 -0
- data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +47 -0
- data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +10 -0
- data/vendor/pygments-main/tests/examplefiles/psql_session.txt +122 -0
- data/vendor/pygments-main/tests/examplefiles/py3_test.txt +2 -0
- data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +4 -0
- data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +14 -0
- data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +2 -0
- data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +4 -0
- data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +234 -0
- data/vendor/pygments-main/tests/examplefiles/qsort.prolog +13 -0
- data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +38 -0
- data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +280 -0
- data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +2 -0
- data/vendor/pygments-main/tests/examplefiles/regex.js +22 -0
- data/vendor/pygments-main/tests/examplefiles/reversi.lsp +427 -0
- data/vendor/pygments-main/tests/examplefiles/robotframework.txt +39 -0
- data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +11 -0
- data/vendor/pygments-main/tests/examplefiles/rust_example.rs +233 -0
- data/vendor/pygments-main/tests/examplefiles/scilab.sci +30 -0
- data/vendor/pygments-main/tests/examplefiles/session.dylan-console +9 -0
- data/vendor/pygments-main/tests/examplefiles/sibling.prolog +19 -0
- data/vendor/pygments-main/tests/examplefiles/simple.md +747 -0
- data/vendor/pygments-main/tests/examplefiles/smarty_example.html +209 -0
- data/vendor/pygments-main/tests/examplefiles/source.lgt +343 -0
- data/vendor/pygments-main/tests/examplefiles/sources.list +62 -0
- data/vendor/pygments-main/tests/examplefiles/sphere.pov +18 -0
- data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +27 -0
- data/vendor/pygments-main/tests/examplefiles/squid.conf +30 -0
- data/vendor/pygments-main/tests/examplefiles/string.jl +1031 -0
- data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +21 -0
- data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +3 -0
- data/vendor/pygments-main/tests/examplefiles/swig_java.swg +1329 -0
- data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +225 -0
- data/vendor/pygments-main/tests/examplefiles/test.R +153 -0
- data/vendor/pygments-main/tests/examplefiles/test.adb +211 -0
- data/vendor/pygments-main/tests/examplefiles/test.agda +102 -0
- data/vendor/pygments-main/tests/examplefiles/test.asy +131 -0
- data/vendor/pygments-main/tests/examplefiles/test.awk +121 -0
- data/vendor/pygments-main/tests/examplefiles/test.bas +29 -0
- data/vendor/pygments-main/tests/examplefiles/test.bb +95 -0
- data/vendor/pygments-main/tests/examplefiles/test.bmx +145 -0
- data/vendor/pygments-main/tests/examplefiles/test.boo +39 -0
- data/vendor/pygments-main/tests/examplefiles/test.bro +250 -0
- data/vendor/pygments-main/tests/examplefiles/test.cs +374 -0
- data/vendor/pygments-main/tests/examplefiles/test.css +54 -0
- data/vendor/pygments-main/tests/examplefiles/test.cu +36 -0
- data/vendor/pygments-main/tests/examplefiles/test.d +135 -0
- data/vendor/pygments-main/tests/examplefiles/test.dart +23 -0
- data/vendor/pygments-main/tests/examplefiles/test.dtd +89 -0
- data/vendor/pygments-main/tests/examplefiles/test.ebnf +31 -0
- data/vendor/pygments-main/tests/examplefiles/test.ec +605 -0
- data/vendor/pygments-main/tests/examplefiles/test.ecl +58 -0
- data/vendor/pygments-main/tests/examplefiles/test.eh +315 -0
- data/vendor/pygments-main/tests/examplefiles/test.erl +169 -0
- data/vendor/pygments-main/tests/examplefiles/test.evoque +33 -0
- data/vendor/pygments-main/tests/examplefiles/test.fan +818 -0
- data/vendor/pygments-main/tests/examplefiles/test.flx +57 -0
- data/vendor/pygments-main/tests/examplefiles/test.gdc +13 -0
- data/vendor/pygments-main/tests/examplefiles/test.groovy +97 -0
- data/vendor/pygments-main/tests/examplefiles/test.html +339 -0
- data/vendor/pygments-main/tests/examplefiles/test.ini +10 -0
- data/vendor/pygments-main/tests/examplefiles/test.java +653 -0
- data/vendor/pygments-main/tests/examplefiles/test.jsp +24 -0
- data/vendor/pygments-main/tests/examplefiles/test.maql +45 -0
- data/vendor/pygments-main/tests/examplefiles/test.mod +374 -0
- data/vendor/pygments-main/tests/examplefiles/test.moo +51 -0
- data/vendor/pygments-main/tests/examplefiles/test.myt +166 -0
- data/vendor/pygments-main/tests/examplefiles/test.nim +93 -0
- data/vendor/pygments-main/tests/examplefiles/test.opa +10 -0
- data/vendor/pygments-main/tests/examplefiles/test.p6 +252 -0
- data/vendor/pygments-main/tests/examplefiles/test.pas +743 -0
- data/vendor/pygments-main/tests/examplefiles/test.php +505 -0
- data/vendor/pygments-main/tests/examplefiles/test.plot +333 -0
- data/vendor/pygments-main/tests/examplefiles/test.ps1 +108 -0
- data/vendor/pygments-main/tests/examplefiles/test.pypylog +1839 -0
- data/vendor/pygments-main/tests/examplefiles/test.r3 +94 -0
- data/vendor/pygments-main/tests/examplefiles/test.rb +177 -0
- data/vendor/pygments-main/tests/examplefiles/test.rhtml +43 -0
- data/vendor/pygments-main/tests/examplefiles/test.scaml +8 -0
- data/vendor/pygments-main/tests/examplefiles/test.ssp +12 -0
- data/vendor/pygments-main/tests/examplefiles/test.tcsh +830 -0
- data/vendor/pygments-main/tests/examplefiles/test.vb +407 -0
- data/vendor/pygments-main/tests/examplefiles/test.vhdl +161 -0
- data/vendor/pygments-main/tests/examplefiles/test.xqy +138 -0
- data/vendor/pygments-main/tests/examplefiles/test.xsl +23 -0
- data/vendor/pygments-main/tests/examplefiles/test2.pypylog +120 -0
- data/vendor/pygments-main/tests/examplefiles/truncated.pytb +15 -0
- data/vendor/pygments-main/tests/examplefiles/type.lisp +1218 -0
- data/vendor/pygments-main/tests/examplefiles/underscore.coffee +603 -0
- data/vendor/pygments-main/tests/examplefiles/unicode.applescript +5 -0
- data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +11 -0
- data/vendor/pygments-main/tests/examplefiles/unix-io.lid +37 -0
- data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +3 -0
- data/vendor/pygments-main/tests/examplefiles/while.pov +13 -0
- data/vendor/pygments-main/tests/examplefiles/wiki.factor +384 -0
- data/vendor/pygments-main/tests/examplefiles/xml_example +1897 -0
- data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +798 -0
- data/vendor/pygments-main/tests/old_run.py +138 -0
- data/vendor/pygments-main/tests/run.py +49 -0
- data/vendor/pygments-main/tests/support.py +15 -0
- data/vendor/pygments-main/tests/support/tags +36 -0
- data/vendor/pygments-main/tests/test_basic_api.py +295 -0
- data/vendor/pygments-main/tests/test_clexer.py +31 -0
- data/vendor/pygments-main/tests/test_cmdline.py +105 -0
- data/vendor/pygments-main/tests/test_examplefiles.py +99 -0
- data/vendor/pygments-main/tests/test_html_formatter.py +178 -0
- data/vendor/pygments-main/tests/test_latex_formatter.py +55 -0
- data/vendor/pygments-main/tests/test_lexers_other.py +68 -0
- data/vendor/pygments-main/tests/test_perllexer.py +137 -0
- data/vendor/pygments-main/tests/test_regexlexer.py +47 -0
- data/vendor/pygments-main/tests/test_token.py +46 -0
- data/vendor/pygments-main/tests/test_using_api.py +40 -0
- data/vendor/pygments-main/tests/test_util.py +135 -0
- data/vendor/simplejson/.gitignore +10 -0
- data/vendor/simplejson/.travis.yml +5 -0
- data/vendor/simplejson/CHANGES.txt +291 -0
- data/vendor/simplejson/LICENSE.txt +19 -0
- data/vendor/simplejson/MANIFEST.in +5 -0
- data/vendor/simplejson/README.rst +19 -0
- data/vendor/simplejson/conf.py +179 -0
- data/vendor/simplejson/index.rst +628 -0
- data/vendor/simplejson/scripts/make_docs.py +18 -0
- data/vendor/simplejson/setup.py +104 -0
- data/vendor/simplejson/simplejson/__init__.py +510 -0
- data/vendor/simplejson/simplejson/_speedups.c +2745 -0
- data/vendor/simplejson/simplejson/decoder.py +425 -0
- data/vendor/simplejson/simplejson/encoder.py +567 -0
- data/vendor/simplejson/simplejson/ordered_dict.py +119 -0
- data/vendor/simplejson/simplejson/scanner.py +77 -0
- data/vendor/simplejson/simplejson/tests/__init__.py +67 -0
- data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +55 -0
- data/vendor/simplejson/simplejson/tests/test_check_circular.py +30 -0
- data/vendor/simplejson/simplejson/tests/test_decimal.py +66 -0
- data/vendor/simplejson/simplejson/tests/test_decode.py +83 -0
- data/vendor/simplejson/simplejson/tests/test_default.py +9 -0
- data/vendor/simplejson/simplejson/tests/test_dump.py +67 -0
- data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +46 -0
- data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +32 -0
- data/vendor/simplejson/simplejson/tests/test_errors.py +34 -0
- data/vendor/simplejson/simplejson/tests/test_fail.py +91 -0
- data/vendor/simplejson/simplejson/tests/test_float.py +19 -0
- data/vendor/simplejson/simplejson/tests/test_indent.py +86 -0
- data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +20 -0
- data/vendor/simplejson/simplejson/tests/test_namedtuple.py +121 -0
- data/vendor/simplejson/simplejson/tests/test_pass1.py +76 -0
- data/vendor/simplejson/simplejson/tests/test_pass2.py +14 -0
- data/vendor/simplejson/simplejson/tests/test_pass3.py +20 -0
- data/vendor/simplejson/simplejson/tests/test_recursion.py +67 -0
- data/vendor/simplejson/simplejson/tests/test_scanstring.py +117 -0
- data/vendor/simplejson/simplejson/tests/test_separators.py +42 -0
- data/vendor/simplejson/simplejson/tests/test_speedups.py +20 -0
- data/vendor/simplejson/simplejson/tests/test_tuple.py +49 -0
- data/vendor/simplejson/simplejson/tests/test_unicode.py +109 -0
- data/vendor/simplejson/simplejson/tool.py +39 -0
- 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:
|