From bbcb66c39f5051d7cb8301c15236e562db55401b Mon Sep 17 00:00:00 2001 From: Maxim Likhachev Date: Sat, 18 Jan 2020 20:27:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9?= =?UTF-8?q?=D0=BA=D0=B8=20vim=20=D0=B8=20nvim=20=D0=BE=D0=B1=D1=8A=D0=B5?= =?UTF-8?q?=D0=B4=D0=B8=D0=BD=D0=B5=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- etc/soft/nvim/+ftplugin/c.vim | 3 + etc/soft/nvim/+ftplugin/cpp.vim | 3 + etc/soft/nvim/+ftplugin/dockerfile.vim | 5 + etc/soft/nvim/+ftplugin/erlang.vim | 7 + etc/soft/nvim/+ftplugin/go.vim | 2 + etc/soft/nvim/+ftplugin/graphviz.vim | 9 + etc/soft/nvim/+ftplugin/haskell.vim | 63 + etc/soft/nvim/+ftplugin/html.vim | 8 + etc/soft/nvim/+ftplugin/install.sh | 15 + etc/soft/nvim/+ftplugin/lisp.vim | 6 + etc/soft/nvim/+ftplugin/markdown.vim | 2 + etc/soft/nvim/+ftplugin/ocaml.vim | 2 + etc/soft/nvim/+ftplugin/pascal.vim | 5 + etc/soft/nvim/+ftplugin/perl.vim | 5 + etc/soft/nvim/+ftplugin/prolog.vim | 10 + etc/soft/nvim/+ftplugin/racket.vim | 1 + etc/soft/nvim/+ftplugin/rename.vim | 32 + etc/soft/nvim/+ftplugin/scheme.vim | 5 + etc/soft/nvim/+ftplugin/sh.vim | 4 + etc/soft/nvim/+ftplugin/tcl.vim | 25 + etc/soft/nvim/+ftplugin/tex.vim | 20 + etc/soft/nvim/+ftplugin/vb.vim | 6 + etc/soft/nvim/+ftplugin/vimwiki.vim | 9 + etc/soft/nvim/+layouts/greek.vim | 55 + etc/soft/nvim/+layouts/russian.vim | 70 + .../nvim/+omnicompletion/tcl/TclCompletion.vim | 5183 ++++++++++++++++++++ etc/soft/nvim/+plugins/MRU/plugin/mru.vim | 1043 ++++ etc/soft/nvim/+plugins/ansible-vim/LICENSE | 21 + etc/soft/nvim/+plugins/ansible-vim/README.md | 135 + .../nvim/+plugins/ansible-vim/UltiSnips/.gitignore | 1 + .../nvim/+plugins/ansible-vim/UltiSnips/README.md | 35 + .../+plugins/ansible-vim/UltiSnips/generate.py | 109 + .../nvim/+plugins/ansible-vim/ftdetect/ansible.vim | 40 + .../nvim/+plugins/ansible-vim/ftplugin/ansible.vim | 6 + .../ansible-vim/ftplugin/ansible_hosts.vim | 9 + .../nvim/+plugins/ansible-vim/indent/ansible.vim | 59 + .../nvim/+plugins/ansible-vim/syntax/ansible.vim | 104 + .../+plugins/ansible-vim/syntax/ansible_hosts.vim | 31 + .../nvim/+plugins/ansible-vim/syntax/jinja2.vim | 97 + .../+plugins/ansible-vim/syntax/jinja2.vim_LICENSE | 31 + .../autoloadTemplate/plugin/autoloadTemplate.vim | 62 + .../nvim/+plugins/calendar/autoload/calendar.vim | 988 ++++ etc/soft/nvim/+plugins/calendar/doc/calendar.txt | 195 + .../nvim/+plugins/calendar/plugin/calendar.vim | 229 + etc/soft/nvim/+plugins/cheat.sh-vim/Licence.txt | 674 +++ etc/soft/nvim/+plugins/cheat.sh-vim/Readme.md | 355 ++ .../nvim/+plugins/cheat.sh-vim/autoload/cheat.vim | 408 ++ .../cheat.sh-vim/autoload/cheat/frameworks.vim | 128 + .../cheat.sh-vim/autoload/cheat/providers.vim | 80 + .../autoload/cheat/providers/quickfix.vim | 27 + .../autoload/cheat/providers/syntastic.vim | 32 + .../cheat.sh-vim/autoload/cheat/requests.vim | 129 + .../cheat.sh-vim/autoload/cheat/session.vim | 115 + etc/soft/nvim/+plugins/cheat.sh-vim/doc/cheat.txt | 314 ++ .../nvim/+plugins/cheat.sh-vim/plugin/cheat.vim | 174 + .../nvim/+plugins/cheat.sh-vim/scripts/chtpager.sh | 2 + .../cmdline_increment/plugin/cmdline-increment.vim | 178 + .../commentToggle/plugin/commentToggle.patch | 11 + .../commentToggle/plugin/commentToggle.vim | 114 + etc/soft/nvim/+plugins/delimitMate/Makefile | 82 + etc/soft/nvim/+plugins/delimitMate/README.md | 6 + .../+plugins/delimitMate/autoload/delimitMate.vim | 640 +++ .../nvim/+plugins/delimitMate/doc/delimitMate.txt | 846 ++++ .../+plugins/delimitMate/plugin/delimitMate.vim | 374 ++ etc/soft/nvim/+plugins/delimitMate/test/README | 13 + etc/soft/nvim/+plugins/delimitMate/test/_setup.vim | 3 + .../delimitMate/test/autoclose_matchpairs.txt | 37 + .../delimitMate/test/autoclose_matchpairs.vim | 42 + .../+plugins/delimitMate/test/autoclose_quotes.txt | 50 + .../+plugins/delimitMate/test/autoclose_quotes.vim | 45 + .../nvim/+plugins/delimitMate/test/expand_cr.txt | 67 + .../nvim/+plugins/delimitMate/test/expand_cr.vim | 55 + .../+plugins/delimitMate/test/expand_space.txt | 8 + .../+plugins/delimitMate/test/expand_space.vim | 42 + .../nvim/+plugins/errormarker/doc/errormarker.txt | 123 + .../+plugins/errormarker/errormarker_origin.vim | 401 ++ .../+plugins/errormarker/plugin/errormarker.vim | 401 ++ .../plugin/filetype-completion.vim | 20 + etc/soft/nvim/+plugins/goyo.vim/README.md | 130 + etc/soft/nvim/+plugins/goyo.vim/autoload/goyo.vim | 473 ++ etc/soft/nvim/+plugins/goyo.vim/doc/goyo.txt | 170 + etc/soft/nvim/+plugins/goyo.vim/plugin/goyo.vim | 24 + .../nvim/+plugins/help+src/plugin/help+src.vim | 361 ++ .../javascript-libraries-syntax.vim/Makefile | 364 ++ .../javascript-libraries-syntax.vim/README.md | 182 + .../after/syntax/coffee.vim | 10 + .../after/syntax/html.vim | 10 + .../after/syntax/javascript.vim | 10 + .../after/syntax/ls.vim | 10 + .../after/syntax/typescript.vim | 10 + .../autoload/jslibsyntax.vim | 61 + .../autoload/syntax/angularjs.coffee.vim | 95 + .../autoload/syntax/angularjs.html.vim | 32 + .../autoload/syntax/angularjs.javascript.vim | 95 + .../autoload/syntax/angularjs.ls.vim | 95 + .../autoload/syntax/angularjs.typescript.vim | 95 + .../autoload/syntax/angularui.html.vim | 14 + .../autoload/syntax/angularuirouter.coffee.vim | 44 + .../autoload/syntax/angularuirouter.javascript.vim | 44 + .../autoload/syntax/angularuirouter.ls.vim | 44 + .../autoload/syntax/angularuirouter.typescript.vim | 44 + .../autoload/syntax/backbone.coffee.vim | 67 + .../autoload/syntax/backbone.javascript.vim | 67 + .../autoload/syntax/backbone.ls.vim | 67 + .../autoload/syntax/backbone.typescript.vim | 67 + .../autoload/syntax/chai.coffee.vim | 49 + .../autoload/syntax/chai.javascript.vim | 49 + .../autoload/syntax/chai.ls.vim | 49 + .../autoload/syntax/chai.typescript.vim | 49 + .../autoload/syntax/flux.coffee.vim | 31 + .../autoload/syntax/flux.javascript.vim | 31 + .../autoload/syntax/flux.ls.vim | 31 + .../autoload/syntax/flux.typescript.vim | 31 + .../autoload/syntax/handlebars.coffee.vim | 41 + .../autoload/syntax/handlebars.javascript.vim | 41 + .../autoload/syntax/handlebars.ls.vim | 41 + .../autoload/syntax/handlebars.typescript.vim | 41 + .../autoload/syntax/jasmine.coffee.vim | 64 + .../autoload/syntax/jasmine.javascript.vim | 64 + .../autoload/syntax/jasmine.ls.vim | 64 + .../autoload/syntax/jasmine.typescript.vim | 64 + .../autoload/syntax/jquery.coffee.vim | 124 + .../autoload/syntax/jquery.javascript.vim | 124 + .../autoload/syntax/jquery.ls.vim | 124 + .../autoload/syntax/jquery.typescript.vim | 124 + .../autoload/syntax/postprocess.coffee.vim | 18 + .../autoload/syntax/postprocess.javascript.vim | 16 + .../autoload/syntax/postprocess.ls.vim | 28 + .../autoload/syntax/postprocess.typescript.vim | 11 + .../autoload/syntax/prelude.coffee.vim | 37 + .../autoload/syntax/prelude.javascript.vim | 37 + .../autoload/syntax/prelude.ls.vim | 37 + .../autoload/syntax/prelude.typescript.vim | 37 + .../autoload/syntax/react.coffee.vim | 37 + .../autoload/syntax/react.javascript.vim | 37 + .../autoload/syntax/react.ls.vim | 37 + .../autoload/syntax/react.typescript.vim | 37 + .../autoload/syntax/requirejs.coffee.vim | 36 + .../autoload/syntax/requirejs.javascript.vim | 36 + .../autoload/syntax/requirejs.ls.vim | 36 + .../autoload/syntax/requirejs.typescript.vim | 36 + .../autoload/syntax/sugar.coffee.vim | 90 + .../autoload/syntax/sugar.javascript.vim | 90 + .../autoload/syntax/sugar.ls.vim | 90 + .../autoload/syntax/sugar.typescript.vim | 90 + .../autoload/syntax/underscore.coffee.vim | 128 + .../autoload/syntax/underscore.javascript.vim | 128 + .../autoload/syntax/underscore.ls.vim | 128 + .../autoload/syntax/underscore.typescript.vim | 128 + .../autoload/syntax/update.sh | 7 + .../javascript-libraries-syntax.vim/config.mk | 6 + etc/soft/nvim/+plugins/look-up/README.md | 48 + etc/soft/nvim/+plugins/look-up/look-up.png | Bin 0 -> 132124 bytes etc/soft/nvim/+plugins/look-up/plugin/look-up.vim | 82 + etc/soft/nvim/+plugins/look-up/syntax/dict.vim | 35 + etc/soft/nvim/+plugins/matchit/doc/matchit.txt | 406 ++ etc/soft/nvim/+plugins/matchit/plugin/matchit.vim | 812 +++ .../nvim/+plugins/neomake/.circleci/config.yml | 125 + etc/soft/nvim/+plugins/neomake/.coveragerc | 7 + etc/soft/nvim/+plugins/neomake/.dockerignore | 1 + etc/soft/nvim/+plugins/neomake/.vintrc.yaml | 3 + etc/soft/nvim/+plugins/neomake/Dockerfile.tests | 63 + etc/soft/nvim/+plugins/neomake/LICENSE | 21 + etc/soft/nvim/+plugins/neomake/Makefile | 413 ++ etc/soft/nvim/+plugins/neomake/README.md | 188 + .../nvim/+plugins/neomake/autoload/neomake.vim | 2598 ++++++++++ .../neomake/autoload/neomake/action_queue.vim | 307 ++ .../nvim/+plugins/neomake/autoload/neomake/cmd.vim | 194 + .../+plugins/neomake/autoload/neomake/compat.vim | 322 ++ .../+plugins/neomake/autoload/neomake/config.vim | 192 + .../neomake/autoload/neomake/configure.vim | 775 +++ .../+plugins/neomake/autoload/neomake/core.vim | 127 + .../+plugins/neomake/autoload/neomake/debug.vim | 274 ++ .../neomake/autoload/neomake/highlights.vim | 155 + .../+plugins/neomake/autoload/neomake/jobinfo.vim | 93 + .../+plugins/neomake/autoload/neomake/list.vim | 1020 ++++ .../nvim/+plugins/neomake/autoload/neomake/log.vim | 170 + .../neomake/autoload/neomake/makers/cabal.vim | 15 + .../neomake/autoload/neomake/makers/clippy.vim | 39 + .../neomake/autoload/neomake/makers/ft/ada.vim | 14 + .../neomake/autoload/neomake/makers/ft/angular.vim | 9 + .../neomake/autoload/neomake/makers/ft/ansible.vim | 17 + .../autoload/neomake/makers/ft/apiblueprint.vim | 16 + .../autoload/neomake/makers/ft/applescript.vim | 11 + .../autoload/neomake/makers/ft/asciidoc.vim | 28 + .../autoload/neomake/makers/ft/beancount.vim | 12 + .../neomake/autoload/neomake/makers/ft/bib.vim | 16 + .../neomake/autoload/neomake/makers/ft/c.vim | 108 + .../neomake/autoload/neomake/makers/ft/cf3.vim | 14 + .../neomake/autoload/neomake/makers/ft/chef.vim | 23 + .../neomake/autoload/neomake/makers/ft/coffee.vim | 15 + .../neomake/autoload/neomake/makers/ft/cpp.vim | 50 + .../neomake/autoload/neomake/makers/ft/crystal.vim | 25 + .../neomake/autoload/neomake/makers/ft/cs.vim | 22 + .../neomake/autoload/neomake/makers/ft/css.vim | 35 + .../neomake/autoload/neomake/makers/ft/cuda.vim | 15 + .../neomake/autoload/neomake/makers/ft/d.vim | 92 + .../neomake/autoload/neomake/makers/ft/docbk.vim | 8 + .../autoload/neomake/makers/ft/dockerfile.vim | 13 + .../neomake/autoload/neomake/makers/ft/elixir.vim | 72 + .../neomake/autoload/neomake/makers/ft/elm.vim | 53 + .../neomake/autoload/neomake/makers/ft/erlang.vim | 72 + .../neomake/autoload/neomake/makers/ft/fish.vim | 16 + .../neomake/autoload/neomake/makers/ft/fortran.vim | 32 + .../neomake/autoload/neomake/makers/ft/go.vim | 97 + .../neomake/autoload/neomake/makers/ft/haml.vim | 13 + .../neomake/autoload/neomake/makers/ft/haskell.vim | 169 + .../neomake/autoload/neomake/makers/ft/haxe.vim | 11 + .../neomake/autoload/neomake/makers/ft/help.vim | 40 + .../neomake/autoload/neomake/makers/ft/html.vim | 20 + .../neomake/autoload/neomake/makers/ft/idris.vim | 25 + .../neomake/autoload/neomake/makers/ft/jade.vim | 13 + .../neomake/autoload/neomake/makers/ft/jasmine.vim | 9 + .../neomake/autoload/neomake/makers/ft/java.vim | 396 ++ .../neomake/makers/ft/java/classpath.gradle | 46 + .../autoload/neomake/makers/ft/java/classpath.py | 15 + .../autoload/neomake/makers/ft/javascript.vim | 119 + .../neomake/autoload/neomake/makers/ft/json.vim | 38 + .../neomake/autoload/neomake/makers/ft/jsx.vim | 17 + .../neomake/autoload/neomake/makers/ft/julia.vim | 24 + .../neomake/autoload/neomake/makers/ft/kotlin.vim | 12 + .../neomake/autoload/neomake/makers/ft/less.vim | 19 + .../neomake/autoload/neomake/makers/ft/lex.vim | 11 + .../neomake/autoload/neomake/makers/ft/lua.vim | 34 + .../neomake/autoload/neomake/makers/ft/mail.vim | 8 + .../autoload/neomake/makers/ft/markdown.vim | 97 + .../neomake/autoload/neomake/makers/ft/matlab.vim | 15 + .../neomake/autoload/neomake/makers/ft/moon.vim | 15 + .../autoload/neomake/makers/ft/neomake_tests.vim | 66 + .../neomake/autoload/neomake/makers/ft/nim.vim | 16 + .../neomake/autoload/neomake/makers/ft/nix.vim | 14 + .../neomake/autoload/neomake/makers/ft/node.vim | 9 + .../neomake/autoload/neomake/makers/ft/objc.vim | 55 + .../neomake/autoload/neomake/makers/ft/pandoc.vim | 8 + .../neomake/autoload/neomake/makers/ft/perl.vim | 34 + .../neomake/autoload/neomake/makers/ft/php.vim | 72 + .../neomake/autoload/neomake/makers/ft/proto.vim | 12 + .../neomake/autoload/neomake/makers/ft/pug.vim | 13 + .../neomake/autoload/neomake/makers/ft/puppet.vim | 29 + .../autoload/neomake/makers/ft/purescript.vim | 63 + .../neomake/autoload/neomake/makers/ft/python.vim | 458 ++ .../autoload/neomake/makers/ft/python/compile.py | 14 + .../neomake/autoload/neomake/makers/ft/r.vim | 17 + .../neomake/autoload/neomake/makers/ft/racket.vim | 32 + .../neomake/autoload/neomake/makers/ft/rst.vim | 89 + .../neomake/autoload/neomake/makers/ft/ruby.vim | 98 + .../neomake/autoload/neomake/makers/ft/rust.vim | 238 + .../neomake/autoload/neomake/makers/ft/scala.vim | 40 + .../neomake/autoload/neomake/makers/ft/scss.vim | 25 + .../neomake/autoload/neomake/makers/ft/serpent.vim | 13 + .../neomake/autoload/neomake/makers/ft/sh.vim | 86 + .../neomake/autoload/neomake/makers/ft/slim.vim | 13 + .../neomake/autoload/neomake/makers/ft/sml.vim | 19 + .../autoload/neomake/makers/ft/solidity.vim | 16 + .../neomake/autoload/neomake/makers/ft/spar.vim | 13 + .../neomake/autoload/neomake/makers/ft/spec.vim | 16 + .../neomake/autoload/neomake/makers/ft/sql.vim | 13 + .../neomake/autoload/neomake/makers/ft/stylus.vim | 16 + .../neomake/autoload/neomake/makers/ft/swift.vim | 54 + .../neomake/autoload/neomake/makers/ft/tcl.vim | 15 + .../neomake/autoload/neomake/makers/ft/tex.vim | 69 + .../neomake/autoload/neomake/makers/ft/text.vim | 30 + .../neomake/autoload/neomake/makers/ft/toml.vim | 15 + .../neomake/autoload/neomake/makers/ft/tsx.vim | 15 + .../autoload/neomake/makers/ft/typescript.vim | 45 + .../neomake/autoload/neomake/makers/ft/verilog.vim | 16 + .../neomake/autoload/neomake/makers/ft/vhdl.vim | 12 + .../neomake/autoload/neomake/makers/ft/vim.vim | 87 + .../neomake/autoload/neomake/makers/ft/vue.vim | 28 + .../neomake/autoload/neomake/makers/ft/xml.vim | 25 + .../neomake/autoload/neomake/makers/ft/xslt.vim | 8 + .../neomake/autoload/neomake/makers/ft/yacc.vim | 17 + .../neomake/autoload/neomake/makers/ft/yaml.vim | 12 + .../neomake/autoload/neomake/makers/ft/zsh.vim | 19 + .../neomake/autoload/neomake/makers/gradle.vim | 28 + .../neomake/autoload/neomake/makers/mvn.vim | 9 + .../neomake/autoload/neomake/makers/sbt.vim | 13 + .../neomake/autoload/neomake/postprocess.vim | 77 + .../+plugins/neomake/autoload/neomake/quickfix.vim | 377 ++ .../+plugins/neomake/autoload/neomake/setup.vim | 37 + .../+plugins/neomake/autoload/neomake/signs.vim | 299 ++ .../neomake/autoload/neomake/statusline.vim | 432 ++ .../+plugins/neomake/autoload/neomake/utils.vim | 826 ++++ .../neomake/autoload/neomake/virtualtext.vim | 113 + .../nvim/+plugins/neomake/contrib/highlight-log | 144 + .../nvim/+plugins/neomake/contrib/run-tests-watch | 127 + etc/soft/nvim/+plugins/neomake/contrib/vim-checks | 123 + etc/soft/nvim/+plugins/neomake/contrib/vimhelplint | 46 + etc/soft/nvim/+plugins/neomake/doc/neomake.txt | 1056 ++++ etc/soft/nvim/+plugins/neomake/plugin/neomake.vim | 50 + .../+plugins/neomake/syntax/neomake/python.vim | 8 + .../nvim/+plugins/neomake/syntax/neomake/qf.vim | 9 + etc/soft/nvim/+plugins/neomake/syntax/qf.vim | 11 + .../nvim/+plugins/neomake/tests/action_queue.vader | 239 + etc/soft/nvim/+plugins/neomake/tests/all.vader | 8 + etc/soft/nvim/+plugins/neomake/tests/args.vader | 108 + .../nvim/+plugins/neomake/tests/automake.vader | 1543 ++++++ .../nvim/+plugins/neomake/tests/cancellation.vader | 289 ++ etc/soft/nvim/+plugins/neomake/tests/clean.vader | 66 + .../+plugins/neomake/tests/cmd_neomakeinfo.vader | 233 + etc/soft/nvim/+plugins/neomake/tests/compat.vader | 213 + .../nvim/+plugins/neomake/tests/completion.vader | 146 + etc/soft/nvim/+plugins/neomake/tests/config.vader | 295 ++ .../+plugins/neomake/tests/current_error.vader | 25 + .../nvim/+plugins/neomake/tests/customqf.vader | 811 +++ etc/soft/nvim/+plugins/neomake/tests/cwd.vader | 520 ++ etc/soft/nvim/+plugins/neomake/tests/debug.vader | 110 + etc/soft/nvim/+plugins/neomake/tests/env.vader | 73 + etc/soft/nvim/+plugins/neomake/tests/errors.vader | 202 + .../nvim/+plugins/neomake/tests/filetypes.vader | 106 + .../+plugins/neomake/tests/filter_output.vader | 64 + .../neomake/tests/fixtures/a filename with spaces | 1 + .../nvim/+plugins/neomake/tests/fixtures/errors.py | 2 + .../nvim/+plugins/neomake/tests/fixtures/errors.sh | 5 + .../fixtures/input/puppet-lint/err_and_warn.pp | 7 + .../fixtures/input/puppet/syntax-error-eoi.pp | 7 + .../tests/fixtures/input/puppet/syntax-error.pp | 8 + .../tests/fixtures/input/xmllint/missingdtd.xml | 6 + .../fixtures/input/xmllint/validity-error.xml | 1 + .../output/puppet-lint/err_and_warn.pp.exitcode | 1 + .../output/puppet-lint/err_and_warn.pp.stderr | 0 .../output/puppet-lint/err_and_warn.pp.stdout | 4 + .../output/puppet/syntax-error-eoi.pp.exitcode | 1 + .../output/puppet/syntax-error-eoi.pp.stderr | 1 + .../output/puppet/syntax-error-eoi.pp.stdout | 0 .../output/puppet/syntax-error.pp.exitcode | 1 + .../fixtures/output/puppet/syntax-error.pp.stderr | 1 + .../fixtures/output/puppet/syntax-error.pp.stdout | 0 .../output/xmllint/missingdtd.xml.exitcode | 1 + .../fixtures/output/xmllint/missingdtd.xml.stderr | 9 + .../fixtures/output/xmllint/missingdtd.xml.stdout | 0 .../output/xmllint/validity-error.xml.exitcode | 1 + .../output/xmllint/validity-error.xml.stderr | 2 + .../output/xmllint/validity-error.xml.stdout | 0 .../fixtures/output/zsh/parse-error.zsh.exitcode | 1 + .../fixtures/output/zsh/parse-error.zsh.stderr | 1 + .../fixtures/output/zsh/parse-error.zsh.stdout | 0 .../neomake/tests/fixtures/rust/cargo_error.json | 1 + .../tests/fixtures/rust/cargo_error_children.json | 1 + .../fixtures/rust/cargo_error_primary_span.json | 3 + .../fixtures/rust/cargo_error_without_span.json | 1 + .../neomake/tests/fixtures/rust/cargo_info.json | 1 + .../neomake/tests/fixtures/rust/cargo_warning.json | 1 + .../tests/fixtures/rust/cargotest_with_failures | 20 + .../tests/fixtures/vim/func-with-errors.vim | 7 + .../tests/fixtures/vim/func-with-errors.vim.output | 2 + etc/soft/nvim/+plugins/neomake/tests/fixtures/~ | 1 + .../nvim/+plugins/neomake/tests/ft_asciidoc.vader | 32 + etc/soft/nvim/+plugins/neomake/tests/ft_cs.vader | 32 + etc/soft/nvim/+plugins/neomake/tests/ft_css.vader | 79 + .../nvim/+plugins/neomake/tests/ft_elixir.vader | 23 + etc/soft/nvim/+plugins/neomake/tests/ft_elm.vader | 34 + .../nvim/+plugins/neomake/tests/ft_erlang.vader | 162 + etc/soft/nvim/+plugins/neomake/tests/ft_go.vader | 57 + .../nvim/+plugins/neomake/tests/ft_haskell.vader | 39 + etc/soft/nvim/+plugins/neomake/tests/ft_html.vader | 17 + .../nvim/+plugins/neomake/tests/ft_idris.vader | 30 + .../+plugins/neomake/tests/ft_javascript.vader | 101 + .../nvim/+plugins/neomake/tests/ft_markdown.vader | 66 + etc/soft/nvim/+plugins/neomake/tests/ft_perl.vader | 27 + etc/soft/nvim/+plugins/neomake/tests/ft_php.vader | 91 + .../nvim/+plugins/neomake/tests/ft_puppet.vader | 91 + .../+plugins/neomake/tests/ft_purescript.vader | 53 + .../nvim/+plugins/neomake/tests/ft_python.vader | 432 ++ etc/soft/nvim/+plugins/neomake/tests/ft_rst.vader | 132 + etc/soft/nvim/+plugins/neomake/tests/ft_rust.vader | 162 + etc/soft/nvim/+plugins/neomake/tests/ft_sh.vader | 116 + etc/soft/nvim/+plugins/neomake/tests/ft_sql.vader | 22 + etc/soft/nvim/+plugins/neomake/tests/ft_text.vader | 89 + .../+plugins/neomake/tests/ft_typescript.vader | 82 + etc/soft/nvim/+plugins/neomake/tests/ft_vim.vader | 102 + etc/soft/nvim/+plugins/neomake/tests/ft_xml.vader | 47 + .../nvim/+plugins/neomake/tests/helpers/trap.sh | 14 + .../nvim/+plugins/neomake/tests/highlights.vader | 132 + .../nvim/+plugins/neomake/tests/hooks-queue.vader | 154 + etc/soft/nvim/+plugins/neomake/tests/hooks.vader | 104 + .../nvim/+plugins/neomake/tests/include/init.vim | 676 +++ .../+plugins/neomake/tests/include/setup.vader | 64 + .../nvim/+plugins/neomake/tests/integration.vader | 1040 ++++ .../nvim/+plugins/neomake/tests/isolated.vader | 15 + .../compat-get_argv-on-emulated-windows.vader | 39 + .../tests/isolated/completion-handles-throw.vader | 27 + .../neomake/tests/isolated/configure.vader | 6 + .../+plugins/neomake/tests/isolated/customqf.vader | 15 + .../+plugins/neomake/tests/isolated/ft_help.vader | 6 + .../+plugins/neomake/tests/isolated/ft_vim.vader | 30 + .../neomake/tests/isolated/highlights.vader | 279 ++ .../+plugins/neomake/tests/isolated/logging.vader | 119 + .../+plugins/neomake/tests/isolated/modes.vader | 36 + .../isolated/resets-ignore_automake_events.vader | 25 + .../neomake/tests/isolated/sign-highlights.vader | 115 + .../+plugins/neomake/tests/isolated/signs.vader | 19 + .../tests/isolated/statusline-highlights.vader | 48 + .../neomake/tests/isolated/tempfiles-cleanup.vader | 40 + etc/soft/nvim/+plugins/neomake/tests/jobinfo.vader | 73 + etc/soft/nvim/+plugins/neomake/tests/json.vader | 28 + .../nvim/+plugins/neomake/tests/list-entries.vader | 12 + etc/soft/nvim/+plugins/neomake/tests/list.vader | 552 +++ etc/soft/nvim/+plugins/neomake/tests/lists.vader | 849 ++++ etc/soft/nvim/+plugins/neomake/tests/log.vader | 40 + etc/soft/nvim/+plugins/neomake/tests/main.vader | 77 + etc/soft/nvim/+plugins/neomake/tests/makeprg.vader | 27 + .../nvim/+plugins/neomake/tests/maker_errors.vader | 35 + etc/soft/nvim/+plugins/neomake/tests/makers.vader | 1094 +++++ etc/soft/nvim/+plugins/neomake/tests/mapexpr.vader | 48 + .../nvim/+plugins/neomake/tests/postprocess.vader | 443 ++ .../nvim/+plugins/neomake/tests/processing.vader | 1139 +++++ .../nvim/+plugins/neomake/tests/serialize.vader | 401 ++ etc/soft/nvim/+plugins/neomake/tests/signs.vader | 573 +++ .../nvim/+plugins/neomake/tests/statusline.vader | 221 + etc/soft/nvim/+plugins/neomake/tests/stdin.vader | 407 ++ .../nvim/+plugins/neomake/tests/tempfiles.vader | 791 +++ etc/soft/nvim/+plugins/neomake/tests/toggle.vader | 165 + etc/soft/nvim/+plugins/neomake/tests/utils.vader | 1106 +++++ .../+plugins/neomake/tests/utils_projectroot.vader | 48 + .../nvim/+plugins/neomake/tests/verbosity.vader | 83 + etc/soft/nvim/+plugins/neomake/tests/vim/vimrc | 107 + .../neomake/tests/vim_and_neovim_behavior.vader | 72 + etc/soft/nvim/+plugins/nnn.vim/LICENSE | 26 + etc/soft/nvim/+plugins/nnn.vim/README.md | 145 + etc/soft/nvim/+plugins/nnn.vim/autoload/nnn.vim | 179 + etc/soft/nvim/+plugins/nnn.vim/doc/nnn.txt | 220 + etc/soft/nvim/+plugins/nnn.vim/ftplugin/nnn.vim | 17 + etc/soft/nvim/+plugins/nnn.vim/plugin/nnn.vim | 51 + .../nvim/+plugins/pummode/autoload/pummode.vim | 105 + etc/soft/nvim/+plugins/pummode/doc/pummode.txt | 126 + .../+plugins/rainbow/plugin/RainbowParenthsis.vim | 61 + etc/soft/nvim/+plugins/rainbow/rainbow.patch | 45 + .../nvim/+plugins/tasklist/plugin/tasklist.vim | 375 ++ etc/soft/nvim/+plugins/timestamp/doc/timestamp.txt | 392 ++ .../nvim/+plugins/timestamp/plugin/timestamp.vim | 192 + etc/soft/nvim/+plugins/toggle/plugin/toggle.vim | 281 ++ etc/soft/nvim/+plugins/vim-airline/.gitignore | 3 + etc/soft/nvim/+plugins/vim-airline/.travis.yml | 4 + etc/soft/nvim/+plugins/vim-airline/Gemfile | 2 + etc/soft/nvim/+plugins/vim-airline/LICENSE | 21 + etc/soft/nvim/+plugins/vim-airline/README.md | 199 + etc/soft/nvim/+plugins/vim-airline/Rakefile | 14 + .../nvim/+plugins/vim-airline/autoload/airline.vim | 170 + .../vim-airline/autoload/airline/builder.vim | 74 + .../vim-airline/autoload/airline/debug.vim | 50 + .../vim-airline/autoload/airline/deprecation.vim | 32 + .../vim-airline/autoload/airline/extensions.vim | 218 + .../autoload/airline/extensions/branch.vim | 66 + .../autoload/airline/extensions/bufferline.vim | 23 + .../autoload/airline/extensions/commandt.vim | 16 + .../autoload/airline/extensions/csv.vim | 31 + .../autoload/airline/extensions/ctrlp.vim | 77 + .../autoload/airline/extensions/default.vim | 77 + .../autoload/airline/extensions/eclim.vim | 35 + .../autoload/airline/extensions/example.vim | 54 + .../autoload/airline/extensions/hunks.vim | 63 + .../autoload/airline/extensions/syntastic.vim | 19 + .../autoload/airline/extensions/tabline.vim | 225 + .../airline/extensions/tabline/formatters.vim | 34 + .../autoload/airline/extensions/tagbar.vim | 39 + .../autoload/airline/extensions/undotree.vim | 27 + .../autoload/airline/extensions/unite.vim | 23 + .../autoload/airline/extensions/virtualenv.vim | 20 + .../autoload/airline/extensions/whitespace.vim | 77 + .../vim-airline/autoload/airline/highlighter.vim | 148 + .../+plugins/vim-airline/autoload/airline/init.vim | 113 + .../vim-airline/autoload/airline/parts.vim | 79 + .../vim-airline/autoload/airline/section.vim | 72 + .../vim-airline/autoload/airline/themes.vim | 67 + .../vim-airline/autoload/airline/themes/alduin.vim | 93 + .../vim-airline/autoload/airline/themes/angr.vim | 109 + .../vim-airline/autoload/airline/themes/atomic.vim | 79 + .../vim-airline/autoload/airline/themes/aurora.vim | 52 + .../autoload/airline/themes/ayu_dark.vim | 34 + .../autoload/airline/themes/ayu_light.vim | 34 + .../autoload/airline/themes/ayu_mirage.vim | 34 + .../vim-airline/autoload/airline/themes/badcat.vim | 82 + .../autoload/airline/themes/badwolf.vim | 52 + .../vim-airline/autoload/airline/themes/base16.vim | 107 + .../autoload/airline/themes/base16color.vim | 77 + .../autoload/airline/themes/behelit.vim | 58 + .../vim-airline/autoload/airline/themes/biogoo.vim | 47 + .../autoload/airline/themes/bubblegum.vim | 62 + .../autoload/airline/themes/cobalt2.vim | 100 + .../vim-airline/autoload/airline/themes/cool.vim | 65 + .../vim-airline/autoload/airline/themes/dark.vim | 102 + .../autoload/airline/themes/dark_minimal.vim | 63 + .../autoload/airline/themes/desertink.vim | 68 + .../vim-airline/autoload/airline/themes/deus.vim | 117 + .../autoload/airline/themes/distinguished.vim | 59 + .../autoload/airline/themes/dracula.vim | 112 + .../vim-airline/autoload/airline/themes/durant.vim | 62 + .../autoload/airline/themes/fairyfloss.vim | 88 + .../autoload/airline/themes/fruit_punch.vim | 80 + .../vim-airline/autoload/airline/themes/hybrid.vim | 52 + .../autoload/airline/themes/hybridline.vim | 34 + .../autoload/airline/themes/jellybeans.vim | 52 + .../vim-airline/autoload/airline/themes/jet.vim | 98 + .../vim-airline/autoload/airline/themes/kalisi.vim | 70 + .../vim-airline/autoload/airline/themes/kolor.vim | 59 + .../autoload/airline/themes/laederon.vim | 62 + .../vim-airline/autoload/airline/themes/light.vim | 45 + .../vim-airline/autoload/airline/themes/lucius.vim | 56 + .../vim-airline/autoload/airline/themes/luna.vim | 92 + .../autoload/airline/themes/minimalist.vim | 81 + .../autoload/airline/themes/molokai.vim | 65 + .../autoload/airline/themes/monochrome.vim | 15 + .../vim-airline/autoload/airline/themes/murmur.vim | 46 + .../autoload/airline/themes/night_owl.vim | 60 + .../autoload/airline/themes/onedark.vim | 129 + .../vim-airline/autoload/airline/themes/ouo.vim | 135 + .../autoload/airline/themes/papercolor.vim | 65 + .../autoload/airline/themes/peaksea.vim | 75 + .../autoload/airline/themes/powerlineish.vim | 46 + .../vim-airline/autoload/airline/themes/qwq.vim | 61 + .../vim-airline/autoload/airline/themes/raven.vim | 85 + .../autoload/airline/themes/ravenpower.vim | 36 + .../autoload/airline/themes/seagull.vim | 189 + .../vim-airline/autoload/airline/themes/serene.vim | 41 + .../vim-airline/autoload/airline/themes/sierra.vim | 94 + .../vim-airline/autoload/airline/themes/silver.vim | 85 + .../vim-airline/autoload/airline/themes/simple.vim | 46 + .../vim-airline/autoload/airline/themes/soda.vim | 33 + .../vim-airline/autoload/airline/themes/sol.vim | 90 + .../autoload/airline/themes/solarized.vim | 173 + .../autoload/airline/themes/solarized_flood.vim | 174 + .../vim-airline/autoload/airline/themes/term.vim | 92 + .../autoload/airline/themes/term_light.vim | 92 + .../autoload/airline/themes/tomorrow.vim | 44 + .../vim-airline/autoload/airline/themes/ubaryd.vim | 64 + .../autoload/airline/themes/understated.vim | 43 + .../vim-airline/autoload/airline/themes/vice.vim | 72 + .../vim-airline/autoload/airline/themes/violet.vim | 32 + .../vim-airline/autoload/airline/themes/wombat.vim | 90 + .../autoload/airline/themes/xtermlight.vim | 45 + .../autoload/airline/themes/zenburn.vim | 44 + .../+plugins/vim-airline/autoload/airline/util.vim | 64 + etc/soft/nvim/+plugins/vim-airline/doc/airline.txt | 648 +++ .../nvim/+plugins/vim-airline/plugin/airline.vim | 104 + etc/soft/nvim/+plugins/vim-airline/t/airline.vim | 87 + etc/soft/nvim/+plugins/vim-airline/t/builder.vim | 80 + etc/soft/nvim/+plugins/vim-airline/t/commands.vim | 33 + .../+plugins/vim-airline/t/extensions_default.vim | 32 + .../nvim/+plugins/vim-airline/t/highlighter.vim | 20 + etc/soft/nvim/+plugins/vim-airline/t/init.vim | 77 + etc/soft/nvim/+plugins/vim-airline/t/parts.vim | 39 + etc/soft/nvim/+plugins/vim-airline/t/section.vim | 76 + etc/soft/nvim/+plugins/vim-airline/t/themes.vim | 68 + etc/soft/nvim/+plugins/vim-airline/t/util.vim | 54 + etc/soft/nvim/+plugins/vim-easymotion/Gemfile | 4 + etc/soft/nvim/+plugins/vim-easymotion/README.md | 395 ++ etc/soft/nvim/+plugins/vim-easymotion/Rakefile | 11 + .../vim-easymotion/autoload/EasyMotion.vim | 1604 ++++++ .../vim-easymotion/autoload/EasyMotion/cmigemo.vim | 117 + .../autoload/EasyMotion/command_line.vim | 283 ++ .../vim-easymotion/autoload/EasyMotion/helper.vim | 185 + .../autoload/EasyMotion/highlight.vim | 251 + .../autoload/EasyMotion/migemo/cp932.vim | 97 + .../autoload/EasyMotion/migemo/eucjp.vim | 97 + .../autoload/EasyMotion/migemo/utf8.vim | 97 + .../vim-easymotion/autoload/EasyMotion/overwin.vim | 27 + .../autoload/EasyMotion/sticky_table.vim | 24 + .../vim-easymotion/autoload/EasyMotion/undo.vim | 50 + .../+plugins/vim-easymotion/autoload/vital.vim | 12 + .../vim-easymotion/autoload/vital/_easymotion.vim | 5 + .../autoload/vital/_easymotion/Data/Dict.vim | 116 + .../autoload/vital/_easymotion/Data/List.vim | 457 ++ .../autoload/vital/_easymotion/Data/Set.vim | 284 ++ .../autoload/vital/_easymotion/HitAHint/Hint.vim | 126 + .../autoload/vital/_easymotion/HitAHint/Motion.vim | 806 +++ .../vital/_easymotion/Over/Commandline/Base.vim | 606 +++ .../vital/_easymotion/Over/Commandline/Modules.vim | 42 + .../Over/Commandline/Modules/BufferComplete.vim | 179 + .../Over/Commandline/Modules/Cancel.vim | 40 + .../Over/Commandline/Modules/CursorMove.vim | 58 + .../Over/Commandline/Modules/Delete.vim | 56 + .../Over/Commandline/Modules/Doautocmd.vim | 121 + .../Over/Commandline/Modules/DrawCommandline.vim | 155 + .../Over/Commandline/Modules/ExceptionExit.vim | 37 + .../Over/Commandline/Modules/ExceptionMessage.vim | 66 + .../_easymotion/Over/Commandline/Modules/Exit.vim | 40 + .../Over/Commandline/Modules/History.vim | 75 + .../Over/Commandline/Modules/InsertRegister.vim | 164 + .../Over/Commandline/Modules/KeyMapping.vim | 139 + .../Over/Commandline/Modules/NoInsert.vim | 55 + .../_easymotion/Over/Commandline/Modules/Paste.vim | 40 + .../Over/Commandline/Modules/Redraw.vim | 72 + .../autoload/vital/_easymotion/Over/Exception.vim | 46 + .../autoload/vital/_easymotion/Over/Input.vim | 40 + .../autoload/vital/_easymotion/Over/Keymapping.vim | 95 + .../autoload/vital/_easymotion/Over/Signals.vim | 119 + .../autoload/vital/_easymotion/Over/String.vim | 164 + .../autoload/vital/_easymotion/Palette/Capture.vim | 74 + .../vital/_easymotion/Palette/Highlight.vim | 133 + .../vital/_easymotion/Palette/Keymapping.vim | 121 + .../autoload/vital/_easymotion/Prelude.vim | 430 ++ .../autoload/vital/_easymotion/Vim/Buffer.vim | 187 + .../autoload/vital/_easymotion/Vim/Guard.vim | 240 + .../autoload/vital/_easymotion/Vim/Message.vim | 80 + .../vim-easymotion/autoload/vital/easymotion.vim | 339 ++ .../vim-easymotion/autoload/vital/easymotion.vital | 20 + .../+plugins/vim-easymotion/doc/easymotion.txt | 1232 +++++ .../+plugins/vim-easymotion/plugin/EasyMotion.vim | 290 ++ .../vim-easymotion/t/compare_movements_spec.vim | 274 ++ .../+plugins/vim-easymotion/t/easymotion_spec.vim | 1471 ++++++ .../vim-easymotion/t/operator_pending_spec.vim | 110 + .../+plugins/vim-easymotion/t/smartsign_spec.vim | 575 +++ etc/soft/nvim/+plugins/vim-emmet/Makefile | 11 + etc/soft/nvim/+plugins/vim-emmet/README.mkd | 149 + etc/soft/nvim/+plugins/vim-emmet/TODO | 0 etc/soft/nvim/+plugins/vim-emmet/TUTORIAL | 212 + .../nvim/+plugins/vim-emmet/autoload/emmet.vim | 1990 ++++++++ .../+plugins/vim-emmet/autoload/emmet/lang.vim | 11 + .../+plugins/vim-emmet/autoload/emmet/lang/css.vim | 346 ++ .../vim-emmet/autoload/emmet/lang/haml.vim | 334 ++ .../vim-emmet/autoload/emmet/lang/html.vim | 868 ++++ .../vim-emmet/autoload/emmet/lang/jade.vim | 331 ++ .../vim-emmet/autoload/emmet/lang/less.vim | 47 + .../vim-emmet/autoload/emmet/lang/sass.vim | 160 + .../vim-emmet/autoload/emmet/lang/scss.vim | 125 + .../vim-emmet/autoload/emmet/lang/slim.vim | 281 ++ .../+plugins/vim-emmet/autoload/emmet/lorem/en.vim | 65 + .../+plugins/vim-emmet/autoload/emmet/lorem/ja.vim | 27 + .../+plugins/vim-emmet/autoload/emmet/util.vim | 349 ++ etc/soft/nvim/+plugins/vim-emmet/doc/emmet.txt | 1773 +++++++ .../nvim/+plugins/vim-emmet/doc/screenshot.gif | Bin 0 -> 33279 bytes etc/soft/nvim/+plugins/vim-emmet/emmet.vim.vimup | 277 ++ etc/soft/nvim/+plugins/vim-emmet/plugin/emmet.vim | 177 + etc/soft/nvim/+plugins/vim-emmet/unittest.vim | 1018 ++++ etc/soft/nvim/+plugins/vim-enter-indent/README.md | 29 + .../vim-enter-indent/plugin/enter-indent.vim | 59 + etc/soft/nvim/+plugins/vim-haskellConceal/README | 11 + .../vim-haskellConceal/after/syntax/haskell.vim | 103 + .../nvim/+plugins/vim-liquid/ftdetect/liquid.vim | 16 + .../nvim/+plugins/vim-liquid/ftplugin/liquid.vim | 61 + .../nvim/+plugins/vim-liquid/indent/liquid.vim | 63 + .../nvim/+plugins/vim-liquid/syntax/liquid.vim | 138 + etc/soft/nvim/+plugins/vim-quickhl/README.md | 18 + etc/soft/nvim/+plugins/vim-quickhl/Rakefile | 21 + etc/soft/nvim/+plugins/vim-quickhl/VERSION | 1 + .../nvim/+plugins/vim-quickhl/autoload/quickhl.vim | 307 ++ etc/soft/nvim/+plugins/vim-quickhl/doc/quickhl.txt | 159 + .../nvim/+plugins/vim-quickhl/plugin/quickhl.vim | 108 + etc/soft/nvim/+plugins/vim-repeat/README.markdown | 53 + .../nvim/+plugins/vim-repeat/autoload/repeat.vim | 115 + .../nvim/+plugins/vim-speeddating/README.markdown | 71 + .../vim-speeddating/autoload/speeddating.vim | 811 +++ .../+plugins/vim-speeddating/doc/speeddating.txt | 102 + .../vim-speeddating/plugin/speeddating.vim | 88 + .../nvim/+plugins/vim-startify/CONTRIBUTING.md | 28 + etc/soft/nvim/+plugins/vim-startify/LICENSE | 20 + etc/soft/nvim/+plugins/vim-startify/README.md | 52 + .../+plugins/vim-startify/autoload/startify.vim | 1126 +++++ .../vim-startify/autoload/startify/fortune.vim | 243 + .../nvim/+plugins/vim-startify/doc/startify.txt | 1182 +++++ .../+plugins/vim-startify/images/startify-logo.png | Bin 0 -> 20797 bytes .../+plugins/vim-startify/images/startify-menu.png | Bin 0 -> 146825 bytes .../nvim/+plugins/vim-startify/plugin/startify.vim | 67 + .../nvim/+plugins/vim-startify/syntax/startify.vim | 55 + .../vim-startify/test/feature/buffer.vader | 14 + .../vim-startify/test/feature/mapping.vader | 20 + .../vim-startify/test/feature/session.vader | 22 + .../vim-startify/test/include/testfile.txt | 2 + etc/soft/nvim/+plugins/vim-startify/test/run | 23 + .../+plugins/vim-startify/test/session/.gitkeep | 0 etc/soft/nvim/+plugins/vim-startify/test/viminfo | 2 + etc/soft/nvim/+plugins/vim-startify/test/vimrc | 13 + .../nvim/+plugins/vim-surround/README.markdown | 97 + .../nvim/+plugins/vim-surround/doc/surround.txt | 205 + .../nvim/+plugins/vim-surround/plugin/surround.vim | 579 +++ .../+plugins/vimwiki/autoload/vimwiki/base.vim | 1056 ++++ .../+plugins/vimwiki/autoload/vimwiki/default.tpl | 11 + .../+plugins/vimwiki/autoload/vimwiki/diary.vim | 286 ++ .../+plugins/vimwiki/autoload/vimwiki/html.vim | 1441 ++++++ .../nvim/+plugins/vimwiki/autoload/vimwiki/lst.vim | 369 ++ .../+plugins/vimwiki/autoload/vimwiki/style.css | 39 + .../nvim/+plugins/vimwiki/autoload/vimwiki/tbl.vim | 510 ++ etc/soft/nvim/+plugins/vimwiki/doc/vimwiki.txt | 2339 +++++++++ .../nvim/+plugins/vimwiki/ftplugin/vimwiki.vim | 418 ++ etc/soft/nvim/+plugins/vimwiki/plugin/vimwiki.vim | 445 ++ etc/soft/nvim/+plugins/vimwiki/syntax/vimwiki.vim | 407 ++ .../+plugins/vimwiki/syntax/vimwiki_default.vim | 85 + .../nvim/+plugins/vimwiki/syntax/vimwiki_media.vim | 69 + etc/soft/nvim/+plugins/yankring/doc/yankring.txt | 1646 +++++++ .../nvim/+plugins/yankring/plugin/yankring.vim | 2880 +++++++++++ etc/soft/nvim/+plugins/yankring/yankring.vim | 2880 +++++++++++ etc/soft/nvim/+plugins_disabled/AnsiESC/README.md | 49 + .../+plugins_disabled/AnsiESC/autoload/AnsiEsc.vim | 1057 ++++ .../nvim/+plugins_disabled/AnsiESC/doc/AnsiEsc.txt | 135 + .../AnsiESC/plugin/AnsiEscPlugin.vim | 32 + .../+plugins_disabled/AnsiESC/plugin/cecutil.vim | 538 ++ etc/soft/nvim/+plugins_disabled/Join/README.md | 93 + etc/soft/nvim/+plugins_disabled/Join/doc/Join.txt | 248 + .../nvim/+plugins_disabled/Join/plugin/Join.vim | 208 + etc/soft/nvim/+plugins_disabled/fff.vim/LICENSE.md | 21 + etc/soft/nvim/+plugins_disabled/fff.vim/README.md | 66 + .../+plugins_disabled/fff.vim/autoload/fff.vim | 48 + .../nvim/+plugins_disabled/fff.vim/plugin/fff.vim | 8 + .../+plugins_disabled/figlet/plugin/Figlet.vim | 557 +++ .../+plugins_disabled/format_helper/README.txt | 282 ++ .../format_helper/format_helper.patch | 89 + .../format_helper/plugin/format_helper.vim | 548 +++ .../functionator/functionator.patch | 35 + .../functionator/plugin/functionator.vim | 107 + .../lispcomplete/autoload/lispcomplete.vim | 182 + .../marks_corey/marks_corey.patch | 55 + .../marks_corey/plugin/marks_corey.vim | 441 ++ .../+plugins_disabled/neocomplcache.vim/README.md | 151 + .../neocomplcache.vim/autoload/neocomplcache.vim | 405 ++ .../autoload/neocomplcache/async_cache.vim | 315 ++ .../autoload/neocomplcache/cache.vim | 326 ++ .../autoload/neocomplcache/commands.vim | 277 ++ .../autoload/neocomplcache/complete.vim | 383 ++ .../autoload/neocomplcache/context_filetype.vim | 207 + .../autoload/neocomplcache/filters.vim | 132 + .../neocomplcache/filters/converter_abbr.vim | 63 + .../neocomplcache/filters/converter_case.vim | 79 + .../neocomplcache/filters/converter_delimiter.vim | 94 + .../neocomplcache/filters/converter_nothing.vim | 47 + .../filters/converter_remove_next_keyword.vim | 87 + .../neocomplcache/filters/matcher_fuzzy.vim | 47 + .../neocomplcache/filters/matcher_head.vim | 47 + .../autoload/neocomplcache/filters/matcher_old.vim | 57 + .../neocomplcache/filters/sorter_length.vim | 54 + .../neocomplcache/filters/sorter_nothing.vim | 47 + .../autoload/neocomplcache/filters/sorter_rank.vim | 51 + .../autoload/neocomplcache/handler.vim | 291 ++ .../autoload/neocomplcache/helper.vim | 438 ++ .../autoload/neocomplcache/init.vim | 866 ++++ .../autoload/neocomplcache/mappings.vim | 188 + .../neocomplcache/sources/buffer_complete.vim | 435 ++ .../neocomplcache/sources/dictionary_complete.vim | 172 + .../neocomplcache/sources/filename_complete.vim | 202 + .../neocomplcache/sources/filename_include.vim | 238 + .../neocomplcache/sources/include_complete.vim | 490 ++ .../neocomplcache/sources/member_complete.vim | 247 + .../neocomplcache/sources/omni_complete.vim | 303 ++ .../neocomplcache/sources/syntax_complete.vim | 322 ++ .../neocomplcache/sources/tags_complete.vim | 113 + .../neocomplcache/sources/vim_complete.vim | 198 + .../sources/vim_complete/autocmds.dict | 83 + .../sources/vim_complete/command_args.dict | 44 + .../sources/vim_complete/command_completions.dict | 498 ++ .../sources/vim_complete/command_prototypes.dict | 498 ++ .../sources/vim_complete/command_replaces.dict | 10 + .../sources/vim_complete/commands.dict | 492 ++ .../sources/vim_complete/features.dict | 153 + .../sources/vim_complete/functions.dict | 252 + .../neocomplcache/sources/vim_complete/helper.vim | 964 ++++ .../sources/vim_complete/mappings.dict | 72 + .../sources/vim_complete/options.dict | 354 ++ .../sources/vim_complete/variables.dict | 54 + .../autoload/neocomplcache/util.vim | 228 + .../autoload/neocomplcache/variables.vim | 71 + .../autoload/unite/sources/file_include.vim | 73 + .../autoload/unite/sources/neocomplcache.vim | 131 + .../neocomplcache.vim/autoload/vital.vim | 12 + .../neocomplcache.vim/autoload/vital/_a20a988.vim | 177 + .../autoload/vital/_a20a988/Data/List.vim | 244 + .../autoload/vital/_a20a988/Data/String.vim | 256 + .../autoload/vital/_a20a988/Prelude.vim | 404 ++ .../autoload/vital/_a20a988/System/Cache.vim | 93 + .../autoload/vital/neocomplcache.vital | 5 + .../neocomplcache.vim/doc/neocomplcache.txt | 1887 +++++++ .../neocomplcache.vim/plugin/neocomplcache.vim | 204 + .../plugin/neocomplcache/buffer_complete.vim | 37 + .../plugin/neocomplcache/dictionary_complete.vim | 25 + .../plugin/neocomplcache/include_complete.vim | 24 + .../plugin/neocomplcache/syntax_complete.vim | 25 + .../plugin/neocomplcache/tags_complete.vim | 25 + .../neocomplcache.vim/vest/test-neocomplcache.vim | 24 + .../+plugins_disabled/neosnippet.vim/README.md | 124 + .../neocomplcache/sources/snippets_complete.vim | 105 + .../autoload/neocomplete/sources/neosnippet.vim | 67 + .../neosnippet.vim/autoload/neosnippet.vim | 1412 ++++++ .../autoload/neosnippet/snippets/Gemfile.snip | 7 + .../autoload/neosnippet/snippets/_.snip | 25 + .../autoload/neosnippet/snippets/actionscript.snip | 265 + .../autoload/neosnippet/snippets/apache.snip | 22 + .../autoload/neosnippet/snippets/applescript.snip | 185 + .../autoload/neosnippet/snippets/c.snip | 153 + .../autoload/neosnippet/snippets/clojure.snip | 32 + .../autoload/neosnippet/snippets/coffee.snip | 72 + .../autoload/neosnippet/snippets/cpp.snip | 76 + .../autoload/neosnippet/snippets/css.snip | 251 + .../autoload/neosnippet/snippets/d.snip | 40 + .../autoload/neosnippet/snippets/erlang.snip | 21 + .../autoload/neosnippet/snippets/eruby.snip | 20 + .../autoload/neosnippet/snippets/go.snip | 51 + .../autoload/neosnippet/snippets/groovy.snip | 29 + .../autoload/neosnippet/snippets/haskell.snip | 32 + .../autoload/neosnippet/snippets/html.snip | 301 ++ .../autoload/neosnippet/snippets/java.snip | 225 + .../autoload/neosnippet/snippets/javascript.snip | 69 + .../autoload/neosnippet/snippets/kp19pp.snip | 21 + .../autoload/neosnippet/snippets/liquid.snip | 107 + .../autoload/neosnippet/snippets/lua.snip | 41 + .../autoload/neosnippet/snippets/make.snip | 8 + .../autoload/neosnippet/snippets/markdown.snip | 67 + .../autoload/neosnippet/snippets/mediawiki.snip | 70 + .../autoload/neosnippet/snippets/objc.snip | 333 ++ .../autoload/neosnippet/snippets/perl.snip | 77 + .../autoload/neosnippet/snippets/php.snip | 276 ++ .../autoload/neosnippet/snippets/python.snip | 119 + .../autoload/neosnippet/snippets/rails.snip | 164 + .../autoload/neosnippet/snippets/rst.snip | 121 + .../autoload/neosnippet/snippets/ruby.snip | 136 + .../autoload/neosnippet/snippets/scala.snip | 42 + .../autoload/neosnippet/snippets/scheme.snip | 20 + .../autoload/neosnippet/snippets/sh.snip | 89 + .../autoload/neosnippet/snippets/snippet.snip | 9 + .../autoload/neosnippet/snippets/sql.snip | 30 + .../autoload/neosnippet/snippets/sshconfig.snip | 6 + .../autoload/neosnippet/snippets/tcl.snip | 1 + .../autoload/neosnippet/snippets/tex.snip | 355 ++ .../autoload/neosnippet/snippets/vim.snip | 186 + .../autoload/neosnippet/snippets/vim/vital.snip | 35 + .../autoload/neosnippet/snippets/vimshell.snip | 4 + .../autoload/neosnippet/snippets/vimwiki.snip | 1 + .../autoload/neosnippet/snippets/xhtml.snip | 7 + .../neosnippet.vim/autoload/neosnippet/util.vim | 117 + .../autoload/unite/sources/neosnippet_file.vim | 105 + .../autoload/unite/sources/snippet.vim | 174 + .../autoload/unite/sources/snippet_target.vim | 121 + .../neosnippet.vim/autoload/vital.vim | 12 + .../neosnippet.vim/autoload/vital/_de83b96.vim | 177 + .../autoload/vital/_de83b96/Prelude.vim | 409 ++ .../neosnippet.vim/autoload/vital/neosnippet.vital | 3 + .../neosnippet.vim/doc/neosnippet.txt | 728 +++ .../neosnippet.vim/ftdetect/snippet.vim | 2 + .../neosnippet.vim/ftplugin/snippet.vim | 44 + .../neosnippet.vim/indent/snippet.vim | 61 + .../neosnippet.vim/plugin/neosnippet.vim | 96 + .../neosnippet.vim/syntax/snippet.vim | 111 + etc/soft/nvim/+plugins_disabled/tablify/README.md | 133 + .../nvim/+plugins_disabled/tablify/doc/tablify.txt | 148 + .../+plugins_disabled/tablify/plugin/tablify.vim | 1030 ++++ .../nvim/+plugins_disabled/taglist/doc/taglist.txt | 1515 ++++++ .../+plugins_disabled/taglist/plugin/taglist.vim | 4677 ++++++++++++++++++ .../textmanip/autoload/textmanip.vim | 148 + .../+plugins_disabled/textmanip/doc/textmanip.txt | 136 + .../textmanip/plugin/textmanip.vim | 35 + .../vCoolor/autoload/vcoolor/convert.vim | 414 ++ .../vCoolor/autoload/vcoolor/misc.vim | 38 + .../nvim/+plugins_disabled/vCoolor/doc/vCoolor.txt | 202 + .../vCoolor/pickers/osx/color-picker | 32 + .../+plugins_disabled/vCoolor/plugin/vCoolor.vim | 267 + .../nvim/+plugins_disabled/vicle/plugin/vicle.vim | 595 +++ .../+plugins_disabled/vim-easy-align/EXAMPLES.md | 288 ++ .../+plugins_disabled/vim-easy-align/README.md | 361 ++ .../vim-easy-align/autoload/easy_align.vim | 477 ++ .../vim-easy-align/doc/easy_align.txt | 263 + .../vim-easy-align/plugin/easy_align.vim | 29 + .../vim-easy-align/test/basic.expected | 358 ++ .../+plugins_disabled/vim-easy-align/test/basic.md | 109 + .../vim-easy-align/test/basic.script | 1 + .../vim-easy-align/test/include.vim | 42 + .../vim-easy-align/test/regexp.expected | 93 + .../vim-easy-align/test/regexp.md | 12 + .../vim-easy-align/test/regexp.script | 1 + .../+plugins_disabled/vim-easy-align/test/run.vim | 13 + etc/soft/nvim/+plugins_disabled/vim-easy-align/zip | 2 + etc/soft/nvim/+plugins_disabled/vim-fugitive | 1 + .../nvim/+plugins_disabled/vim-racket/README.md | 11 + .../vim-racket/ftdetect/racket.vim | 1 + .../vim-racket/ftplugin/racket.vim | 10 + .../+plugins_disabled/vim-racket/indent/racket.vim | 13 + .../+plugins_disabled/vim-racket/syntax/racket.vim | 558 +++ .../vim-racket/test/delimiters.rkt | 6 + .../vim-racket/test/number-syntax-test.rkt | 92 + etc/soft/nvim/+plugins_disabled/vimple/README | 148 + .../+plugins_disabled/vimple/autoload/args.vim | 107 + .../+plugins_disabled/vimple/autoload/complete.vim | 67 + .../vimple/autoload/completers.vim | 73 + .../+plugins_disabled/vimple/autoload/file.vim | 3 + .../+plugins_disabled/vimple/autoload/list.vim | 208 + .../+plugins_disabled/vimple/autoload/loclist.vim | 21 + .../+plugins_disabled/vimple/autoload/ml/bayes.vim | 91 + .../vimple/autoload/ml/porter.vim | 196 + .../+plugins_disabled/vimple/autoload/overlay.vim | 115 + .../vimple/autoload/parse/ini.vim | 58 + .../+plugins_disabled/vimple/autoload/quickfix.vim | 23 + .../+plugins_disabled/vimple/autoload/regex.vim | 74 + .../nvim/+plugins_disabled/vimple/autoload/rng.vim | 18 + .../+plugins_disabled/vimple/autoload/scope.vim | 92 + .../+plugins_disabled/vimple/autoload/scripts.vim | 47 + .../+plugins_disabled/vimple/autoload/string.vim | 292 ++ .../+plugins_disabled/vimple/autoload/variable.vim | 3 + .../+plugins_disabled/vimple/autoload/vimple.vim | 256 + .../vimple/autoload/vimple/abbreviations.vim | 105 + .../vimple/autoload/vimple/comparators.vim | 66 + .../vimple/autoload/vimple/highlight.vim | 103 + .../vimple/autoload/vimple/history.vim | 90 + .../vimple/autoload/vimple/ls.vim | 386 ++ .../vimple/autoload/vimple/map.vim | 176 + .../vimple/autoload/vimple/marks.vim | 110 + .../vimple/autoload/vimple/options.vim | 209 + .../vimple/autoload/vimple/scriptnames.vim | 100 + .../vimple/autoload/vimple/undolist.vim | 176 + .../vimple/autoload/vimple/version.vim | 115 + .../nvim/+plugins_disabled/vimple/demo/bufgrep.vim | 47 + .../+plugins_disabled/vimple/demo/calendar.vim | 89 + .../+plugins_disabled/vimple/demo/changelist.vim | 63 + .../+plugins_disabled/vimple/demo/global_marks.vim | 26 + .../nvim/+plugins_disabled/vimple/demo/helptoc.vim | 32 + .../+plugins_disabled/vimple/demo/iabbrevs.vim | 29 + .../+plugins_disabled/vimple/demo/identsearch.vim | 34 + .../+plugins_disabled/vimple/demo/jumplist.vim | 63 + .../+plugins_disabled/vimple/demo/oldfiles.vim | 22 + .../+plugins_disabled/vimple/demo/spellsuggest.vim | 45 + .../+plugins_disabled/vimple/demo/tagkinds.vim | 24 + .../+plugins_disabled/vimple/demo/tagsearch.vim | 41 + .../nvim/+plugins_disabled/vimple/doc/vimple.txt | 316 ++ .../+plugins_disabled/vimple/doc/vimple_ls.txt | 344 ++ .../vimple/ftplugin/python_scope.vim | 6 + .../vimple/ftplugin/vim_scope.vim | 4 + .../+plugins_disabled/vimple/plugin/vimple.vim | 451 ++ .../vimple/syntax/vimple_jumplist.vim | 11 + .../nvim/+plugins_disabled/vimple/test/Makefile | 11 + etc/soft/nvim/+plugins_disabled/vimple/test/README | 13 + .../nvim/+plugins_disabled/vimple/test/_setup.vim | 16 + .../+plugins_disabled/vimple/test/buffer_list.vim | 19 + .../nvim/+plugins_disabled/vimple/test/ini_001.ini | 13 + .../+plugins_disabled/vimple/test/ini_001_out.ini | 8 + .../nvim/+plugins_disabled/vimple/test/ini_002.ini | 5 + .../+plugins_disabled/vimple/test/ini_002_out.ini | 4 + .../vimple/test/parse_ini_001.vim | 9 + .../vimple/test/parse_ini_002.vim | 9 + .../+plugins_disabled/vimple/test/string001.vim | 48 + .../+plugins_disabled/vimple/test/vimple001.vim | 18 + .../+plugins_disabled/vimple/test/vimple002.vim | 15 + .../+plugins_disabled/vimwiki/autoload/vimwiki.vim | 1088 ++++ .../vimwiki/autoload/vimwiki_diary.vim | 281 ++ .../vimwiki/autoload/vimwiki_html.vim | 1311 +++++ .../vimwiki/autoload/vimwiki_lst.vim | 359 ++ .../vimwiki/autoload/vimwiki_tbl.vim | 510 ++ .../nvim/+plugins_disabled/vimwiki/doc/vimwiki.txt | 2147 ++++++++ .../+plugins_disabled/vimwiki/ftplugin/vimwiki.vim | 384 ++ .../+plugins_disabled/vimwiki/plugin/vimwiki.vim | 398 ++ .../+plugins_disabled/vimwiki/syntax/vimwiki.vim | 236 + .../vimwiki/syntax/vimwiki_default.vim | 83 + .../vimwiki/syntax/vimwiki_media.vim | 67 + etc/soft/nvim/+scripts/declarations/perl | 10 + etc/soft/nvim/+scripts/declarations/prolog | 16 + etc/soft/nvim/+scripts/declarations/rebol | 13 + etc/soft/nvim/+scripts/declarations/scheme | 19 + etc/soft/nvim/+scripts/declarations/sh | 23 + etc/soft/nvim/+scripts/declarations/tcl | 21 + etc/soft/nvim/+scripts/sources/getTclSrc | 18 + etc/soft/nvim/+snippets/install.sh | 14 + etc/soft/nvim/+snippets/tcl.snip | 97 + etc/soft/nvim/+snippets/vimwiki.snip | 4 + etc/soft/nvim/after/syntax/c.vim | 265 + etc/soft/nvim/after/syntax/css.vim | 318 ++ etc/soft/nvim/autoload/pathogen.vim | 347 ++ etc/soft/nvim/colors/OneHalfDark.vim | 195 + etc/soft/nvim/colors/OneHalfLight.vim | 195 + etc/soft/nvim/colors/PaperColor.vim | 1322 +++++ etc/soft/nvim/colors/forgotten-light.vim | 243 + etc/soft/nvim/colors/wombat.vim | 51 + etc/soft/nvim/colors/wombat256.vim | 302 ++ etc/soft/nvim/colors/wombat256mod.vim | 96 + etc/soft/nvim/colors/wombat_converted.vim | 114 + etc/soft/nvim/compiler/tex.vim | 294 ++ etc/soft/nvim/dic/sh | 170 + etc/soft/nvim/dic/tcl | 370 ++ etc/soft/nvim/doc/git-cheat.txt | 502 ++ etc/soft/nvim/doc/latexhelp.txt | 2430 +++++++++ etc/soft/nvim/doc/regexpref.txt | 53 + etc/soft/nvim/ftdetect/detect.vim | 61 + etc/soft/nvim/ftplugin/c/c.custom.vim | 1 + etc/soft/nvim/ftplugin/cpp/cpp.custom.vim | 1 + .../nvim/ftplugin/dockerfile/dockerfile.custom.vim | 1 + etc/soft/nvim/ftplugin/erlang/erlang.custom.vim | 1 + etc/soft/nvim/ftplugin/go/go.custom.vim | 1 + .../nvim/ftplugin/graphviz/graphviz.custom.vim | 1 + etc/soft/nvim/ftplugin/haskell/haskell.custom.vim | 1 + etc/soft/nvim/ftplugin/html/html.custom.vim | 1 + etc/soft/nvim/ftplugin/lisp/lisp.custom.vim | 1 + .../nvim/ftplugin/markdown/markdown.custom.vim | 1 + etc/soft/nvim/ftplugin/ocaml/ocaml.custom.vim | 1 + etc/soft/nvim/ftplugin/pascal/pascal.custom.vim | 1 + etc/soft/nvim/ftplugin/perl/perl.custom.vim | 1 + etc/soft/nvim/ftplugin/prolog/prolog.custom.vim | 1 + etc/soft/nvim/ftplugin/racket/racket.custom.vim | 1 + etc/soft/nvim/ftplugin/rename/rename.custom.vim | 1 + etc/soft/nvim/ftplugin/scheme/scheme.custom.vim | 1 + etc/soft/nvim/ftplugin/sh/sh.custom.vim | 1 + etc/soft/nvim/ftplugin/tcl/tcl.custom.vim | 1 + etc/soft/nvim/ftplugin/tex/tex.custom.vim | 1 + etc/soft/nvim/ftplugin/vb/vb.custom.vim | 1 + etc/soft/nvim/ftplugin/vimwiki/vimwiki.custom.vim | 1 + etc/soft/nvim/indent/erlang.vim | 206 + etc/soft/nvim/indent/tcl.vim | 478 ++ etc/soft/nvim/init.vim | 4 +- etc/soft/nvim/spell/el.utf-8.spl | Bin 0 -> 4076258 bytes etc/soft/nvim/spell/en.utf-8.spl | Bin 0 -> 570548 bytes etc/soft/nvim/spell/ru.utf-8.spl | Bin 0 -> 837741 bytes etc/soft/nvim/syntax/abnf.vim | 72 + etc/soft/nvim/syntax/alex.vim | 82 + etc/soft/nvim/syntax/c.vim | 901 ++++ etc/soft/nvim/syntax/conf.vim | 115 + etc/soft/nvim/syntax/cpp.vim | 68 + etc/soft/nvim/syntax/delphi.vim | 146 + etc/soft/nvim/syntax/erlang.vim | 134 + etc/soft/nvim/syntax/graphviz.vim | 115 + etc/soft/nvim/syntax/happy.vim | 81 + etc/soft/nvim/syntax/haskell.vim | 577 +++ etc/soft/nvim/syntax/html.vim | 190 + etc/soft/nvim/syntax/j.vim | 135 + etc/soft/nvim/syntax/nmap.vim | 43 + etc/soft/nvim/syntax/note.vim | 121 + etc/soft/nvim/syntax/octave.vim | 369 ++ etc/soft/nvim/syntax/perl.vim | 536 ++ etc/soft/nvim/syntax/prolog.vim | 155 + etc/soft/nvim/syntax/rfc.vim | 39 + etc/soft/nvim/syntax/rsc.vim | 229 + etc/soft/nvim/syntax/rtorrent.vim | 28 + etc/soft/nvim/syntax/scheme.vim | 311 ++ etc/soft/nvim/syntax/tab.vim | 65 + etc/soft/nvim/syntax/tcl.vim | 1099 +++++ etc/soft/nvim/syntax/tcl_critcl.vim | 73 + etc/soft/nvim/syntax/tcl_doctools.vim | 44 + etc/soft/nvim/syntax/tcl_itcl.vim | 16 + etc/soft/nvim/syntax/tcl_snit.vim | 106 + etc/soft/nvim/syntax/tcl_sqlite.vim | 33 + etc/soft/nvim/syntax/tcl_togl.vim | 11 + etc/soft/nvim/syntax/todo.vim | 46 + etc/soft/nvim/syntax/txt.vim | 115 + etc/soft/nvim/template/cpp.vim | 8 + etc/soft/nvim/template/dosbatch.vim | 10 + etc/soft/nvim/template/haskell.vim | 3 + etc/soft/nvim/template/perl.vim | 5 + etc/soft/nvim/template/prolog.vim | 6 + etc/soft/nvim/template/rebol.vim | 12 + etc/soft/nvim/template/scheme.vim | 7 + etc/soft/nvim/template/sh.vim | 5 + etc/soft/nvim/template/tcl.vim | 23 + etc/soft/nvim/template/tex.vim | 120 + etc/soft/nvim/vim.rc | 872 ++++ etc/soft/nvim/vimrc | 901 ++++ etc/soft/vim/vim.rc | 872 ---- etc/soft/vim/vim/+ftplugin/c.vim | 3 - etc/soft/vim/vim/+ftplugin/cpp.vim | 3 - etc/soft/vim/vim/+ftplugin/dockerfile.vim | 5 - etc/soft/vim/vim/+ftplugin/erlang.vim | 7 - etc/soft/vim/vim/+ftplugin/go.vim | 2 - etc/soft/vim/vim/+ftplugin/graphviz.vim | 9 - etc/soft/vim/vim/+ftplugin/haskell.vim | 63 - etc/soft/vim/vim/+ftplugin/html.vim | 8 - etc/soft/vim/vim/+ftplugin/install.sh | 15 - etc/soft/vim/vim/+ftplugin/lisp.vim | 6 - etc/soft/vim/vim/+ftplugin/markdown.vim | 2 - etc/soft/vim/vim/+ftplugin/ocaml.vim | 2 - etc/soft/vim/vim/+ftplugin/pascal.vim | 5 - etc/soft/vim/vim/+ftplugin/perl.vim | 5 - etc/soft/vim/vim/+ftplugin/prolog.vim | 10 - etc/soft/vim/vim/+ftplugin/racket.vim | 1 - etc/soft/vim/vim/+ftplugin/rename.vim | 32 - etc/soft/vim/vim/+ftplugin/scheme.vim | 5 - etc/soft/vim/vim/+ftplugin/sh.vim | 4 - etc/soft/vim/vim/+ftplugin/tcl.vim | 25 - etc/soft/vim/vim/+ftplugin/tex.vim | 20 - etc/soft/vim/vim/+ftplugin/vb.vim | 6 - etc/soft/vim/vim/+ftplugin/vimwiki.vim | 9 - etc/soft/vim/vim/+layouts/greek.vim | 55 - etc/soft/vim/vim/+layouts/russian.vim | 70 - .../vim/vim/+omnicompletion/tcl/TclCompletion.vim | 5183 -------------------- etc/soft/vim/vim/+plugins/MRU/plugin/mru.vim | 1043 ---- etc/soft/vim/vim/+plugins/ansible-vim/LICENSE | 21 - etc/soft/vim/vim/+plugins/ansible-vim/README.md | 135 - .../vim/+plugins/ansible-vim/UltiSnips/.gitignore | 1 - .../vim/+plugins/ansible-vim/UltiSnips/README.md | 35 - .../vim/+plugins/ansible-vim/UltiSnips/generate.py | 109 - .../vim/+plugins/ansible-vim/ftdetect/ansible.vim | 40 - .../vim/+plugins/ansible-vim/ftplugin/ansible.vim | 6 - .../ansible-vim/ftplugin/ansible_hosts.vim | 9 - .../vim/+plugins/ansible-vim/indent/ansible.vim | 59 - .../vim/+plugins/ansible-vim/syntax/ansible.vim | 104 - .../+plugins/ansible-vim/syntax/ansible_hosts.vim | 31 - .../vim/vim/+plugins/ansible-vim/syntax/jinja2.vim | 97 - .../+plugins/ansible-vim/syntax/jinja2.vim_LICENSE | 31 - .../autoloadTemplate/plugin/autoloadTemplate.vim | 62 - .../vim/+plugins/calendar/autoload/calendar.vim | 988 ---- .../vim/vim/+plugins/calendar/doc/calendar.txt | 195 - .../vim/vim/+plugins/calendar/plugin/calendar.vim | 229 - etc/soft/vim/vim/+plugins/cheat.sh-vim/Licence.txt | 674 --- etc/soft/vim/vim/+plugins/cheat.sh-vim/Readme.md | 355 -- .../vim/+plugins/cheat.sh-vim/autoload/cheat.vim | 408 -- .../cheat.sh-vim/autoload/cheat/frameworks.vim | 128 - .../cheat.sh-vim/autoload/cheat/providers.vim | 80 - .../autoload/cheat/providers/quickfix.vim | 27 - .../autoload/cheat/providers/syntastic.vim | 32 - .../cheat.sh-vim/autoload/cheat/requests.vim | 129 - .../cheat.sh-vim/autoload/cheat/session.vim | 115 - .../vim/vim/+plugins/cheat.sh-vim/doc/cheat.txt | 314 -- .../vim/vim/+plugins/cheat.sh-vim/plugin/cheat.vim | 174 - .../vim/+plugins/cheat.sh-vim/scripts/chtpager.sh | 2 - .../cmdline_increment/plugin/cmdline-increment.vim | 178 - .../commentToggle/plugin/commentToggle.patch | 11 - .../commentToggle/plugin/commentToggle.vim | 114 - etc/soft/vim/vim/+plugins/delimitMate/Makefile | 82 - etc/soft/vim/vim/+plugins/delimitMate/README.md | 6 - .../+plugins/delimitMate/autoload/delimitMate.vim | 640 --- .../vim/+plugins/delimitMate/doc/delimitMate.txt | 846 ---- .../+plugins/delimitMate/plugin/delimitMate.vim | 374 -- etc/soft/vim/vim/+plugins/delimitMate/test/README | 13 - .../vim/vim/+plugins/delimitMate/test/_setup.vim | 3 - .../delimitMate/test/autoclose_matchpairs.txt | 37 - .../delimitMate/test/autoclose_matchpairs.vim | 42 - .../+plugins/delimitMate/test/autoclose_quotes.txt | 50 - .../+plugins/delimitMate/test/autoclose_quotes.vim | 45 - .../vim/+plugins/delimitMate/test/expand_cr.txt | 67 - .../vim/+plugins/delimitMate/test/expand_cr.vim | 55 - .../vim/+plugins/delimitMate/test/expand_space.txt | 8 - .../vim/+plugins/delimitMate/test/expand_space.vim | 42 - .../vim/+plugins/errormarker/doc/errormarker.txt | 123 - .../+plugins/errormarker/errormarker_origin.vim | 401 -- .../+plugins/errormarker/plugin/errormarker.vim | 401 -- .../plugin/filetype-completion.vim | 20 - etc/soft/vim/vim/+plugins/goyo.vim/README.md | 130 - .../vim/vim/+plugins/goyo.vim/autoload/goyo.vim | 473 -- etc/soft/vim/vim/+plugins/goyo.vim/doc/goyo.txt | 170 - etc/soft/vim/vim/+plugins/goyo.vim/plugin/goyo.vim | 24 - .../vim/vim/+plugins/help+src/plugin/help+src.vim | 361 -- .../javascript-libraries-syntax.vim/Makefile | 364 -- .../javascript-libraries-syntax.vim/README.md | 182 - .../after/syntax/coffee.vim | 10 - .../after/syntax/html.vim | 10 - .../after/syntax/javascript.vim | 10 - .../after/syntax/ls.vim | 10 - .../after/syntax/typescript.vim | 10 - .../autoload/jslibsyntax.vim | 61 - .../autoload/syntax/angularjs.coffee.vim | 95 - .../autoload/syntax/angularjs.html.vim | 32 - .../autoload/syntax/angularjs.javascript.vim | 95 - .../autoload/syntax/angularjs.ls.vim | 95 - .../autoload/syntax/angularjs.typescript.vim | 95 - .../autoload/syntax/angularui.html.vim | 14 - .../autoload/syntax/angularuirouter.coffee.vim | 44 - .../autoload/syntax/angularuirouter.javascript.vim | 44 - .../autoload/syntax/angularuirouter.ls.vim | 44 - .../autoload/syntax/angularuirouter.typescript.vim | 44 - .../autoload/syntax/backbone.coffee.vim | 67 - .../autoload/syntax/backbone.javascript.vim | 67 - .../autoload/syntax/backbone.ls.vim | 67 - .../autoload/syntax/backbone.typescript.vim | 67 - .../autoload/syntax/chai.coffee.vim | 49 - .../autoload/syntax/chai.javascript.vim | 49 - .../autoload/syntax/chai.ls.vim | 49 - .../autoload/syntax/chai.typescript.vim | 49 - .../autoload/syntax/flux.coffee.vim | 31 - .../autoload/syntax/flux.javascript.vim | 31 - .../autoload/syntax/flux.ls.vim | 31 - .../autoload/syntax/flux.typescript.vim | 31 - .../autoload/syntax/handlebars.coffee.vim | 41 - .../autoload/syntax/handlebars.javascript.vim | 41 - .../autoload/syntax/handlebars.ls.vim | 41 - .../autoload/syntax/handlebars.typescript.vim | 41 - .../autoload/syntax/jasmine.coffee.vim | 64 - .../autoload/syntax/jasmine.javascript.vim | 64 - .../autoload/syntax/jasmine.ls.vim | 64 - .../autoload/syntax/jasmine.typescript.vim | 64 - .../autoload/syntax/jquery.coffee.vim | 124 - .../autoload/syntax/jquery.javascript.vim | 124 - .../autoload/syntax/jquery.ls.vim | 124 - .../autoload/syntax/jquery.typescript.vim | 124 - .../autoload/syntax/postprocess.coffee.vim | 18 - .../autoload/syntax/postprocess.javascript.vim | 16 - .../autoload/syntax/postprocess.ls.vim | 28 - .../autoload/syntax/postprocess.typescript.vim | 11 - .../autoload/syntax/prelude.coffee.vim | 37 - .../autoload/syntax/prelude.javascript.vim | 37 - .../autoload/syntax/prelude.ls.vim | 37 - .../autoload/syntax/prelude.typescript.vim | 37 - .../autoload/syntax/react.coffee.vim | 37 - .../autoload/syntax/react.javascript.vim | 37 - .../autoload/syntax/react.ls.vim | 37 - .../autoload/syntax/react.typescript.vim | 37 - .../autoload/syntax/requirejs.coffee.vim | 36 - .../autoload/syntax/requirejs.javascript.vim | 36 - .../autoload/syntax/requirejs.ls.vim | 36 - .../autoload/syntax/requirejs.typescript.vim | 36 - .../autoload/syntax/sugar.coffee.vim | 90 - .../autoload/syntax/sugar.javascript.vim | 90 - .../autoload/syntax/sugar.ls.vim | 90 - .../autoload/syntax/sugar.typescript.vim | 90 - .../autoload/syntax/underscore.coffee.vim | 128 - .../autoload/syntax/underscore.javascript.vim | 128 - .../autoload/syntax/underscore.ls.vim | 128 - .../autoload/syntax/underscore.typescript.vim | 128 - .../autoload/syntax/update.sh | 7 - .../javascript-libraries-syntax.vim/config.mk | 6 - etc/soft/vim/vim/+plugins/look-up/README.md | 48 - etc/soft/vim/vim/+plugins/look-up/look-up.png | Bin 132124 -> 0 bytes .../vim/vim/+plugins/look-up/plugin/look-up.vim | 82 - etc/soft/vim/vim/+plugins/look-up/syntax/dict.vim | 35 - etc/soft/vim/vim/+plugins/matchit/doc/matchit.txt | 406 -- .../vim/vim/+plugins/matchit/plugin/matchit.vim | 812 --- .../vim/vim/+plugins/neomake/.circleci/config.yml | 125 - etc/soft/vim/vim/+plugins/neomake/.coveragerc | 7 - etc/soft/vim/vim/+plugins/neomake/.dockerignore | 1 - etc/soft/vim/vim/+plugins/neomake/.vintrc.yaml | 3 - etc/soft/vim/vim/+plugins/neomake/Dockerfile.tests | 63 - etc/soft/vim/vim/+plugins/neomake/LICENSE | 21 - etc/soft/vim/vim/+plugins/neomake/Makefile | 413 -- etc/soft/vim/vim/+plugins/neomake/README.md | 188 - .../vim/vim/+plugins/neomake/autoload/neomake.vim | 2598 ---------- .../neomake/autoload/neomake/action_queue.vim | 307 -- .../vim/+plugins/neomake/autoload/neomake/cmd.vim | 194 - .../+plugins/neomake/autoload/neomake/compat.vim | 322 -- .../+plugins/neomake/autoload/neomake/config.vim | 192 - .../neomake/autoload/neomake/configure.vim | 775 --- .../vim/+plugins/neomake/autoload/neomake/core.vim | 127 - .../+plugins/neomake/autoload/neomake/debug.vim | 274 -- .../neomake/autoload/neomake/highlights.vim | 155 - .../+plugins/neomake/autoload/neomake/jobinfo.vim | 93 - .../vim/+plugins/neomake/autoload/neomake/list.vim | 1020 ---- .../vim/+plugins/neomake/autoload/neomake/log.vim | 170 - .../neomake/autoload/neomake/makers/cabal.vim | 15 - .../neomake/autoload/neomake/makers/clippy.vim | 39 - .../neomake/autoload/neomake/makers/ft/ada.vim | 14 - .../neomake/autoload/neomake/makers/ft/angular.vim | 9 - .../neomake/autoload/neomake/makers/ft/ansible.vim | 17 - .../autoload/neomake/makers/ft/apiblueprint.vim | 16 - .../autoload/neomake/makers/ft/applescript.vim | 11 - .../autoload/neomake/makers/ft/asciidoc.vim | 28 - .../autoload/neomake/makers/ft/beancount.vim | 12 - .../neomake/autoload/neomake/makers/ft/bib.vim | 16 - .../neomake/autoload/neomake/makers/ft/c.vim | 108 - .../neomake/autoload/neomake/makers/ft/cf3.vim | 14 - .../neomake/autoload/neomake/makers/ft/chef.vim | 23 - .../neomake/autoload/neomake/makers/ft/coffee.vim | 15 - .../neomake/autoload/neomake/makers/ft/cpp.vim | 50 - .../neomake/autoload/neomake/makers/ft/crystal.vim | 25 - .../neomake/autoload/neomake/makers/ft/cs.vim | 22 - .../neomake/autoload/neomake/makers/ft/css.vim | 35 - .../neomake/autoload/neomake/makers/ft/cuda.vim | 15 - .../neomake/autoload/neomake/makers/ft/d.vim | 92 - .../neomake/autoload/neomake/makers/ft/docbk.vim | 8 - .../autoload/neomake/makers/ft/dockerfile.vim | 13 - .../neomake/autoload/neomake/makers/ft/elixir.vim | 72 - .../neomake/autoload/neomake/makers/ft/elm.vim | 53 - .../neomake/autoload/neomake/makers/ft/erlang.vim | 72 - .../neomake/autoload/neomake/makers/ft/fish.vim | 16 - .../neomake/autoload/neomake/makers/ft/fortran.vim | 32 - .../neomake/autoload/neomake/makers/ft/go.vim | 97 - .../neomake/autoload/neomake/makers/ft/haml.vim | 13 - .../neomake/autoload/neomake/makers/ft/haskell.vim | 169 - .../neomake/autoload/neomake/makers/ft/haxe.vim | 11 - .../neomake/autoload/neomake/makers/ft/help.vim | 40 - .../neomake/autoload/neomake/makers/ft/html.vim | 20 - .../neomake/autoload/neomake/makers/ft/idris.vim | 25 - .../neomake/autoload/neomake/makers/ft/jade.vim | 13 - .../neomake/autoload/neomake/makers/ft/jasmine.vim | 9 - .../neomake/autoload/neomake/makers/ft/java.vim | 396 -- .../neomake/makers/ft/java/classpath.gradle | 46 - .../autoload/neomake/makers/ft/java/classpath.py | 15 - .../autoload/neomake/makers/ft/javascript.vim | 119 - .../neomake/autoload/neomake/makers/ft/json.vim | 38 - .../neomake/autoload/neomake/makers/ft/jsx.vim | 17 - .../neomake/autoload/neomake/makers/ft/julia.vim | 24 - .../neomake/autoload/neomake/makers/ft/kotlin.vim | 12 - .../neomake/autoload/neomake/makers/ft/less.vim | 19 - .../neomake/autoload/neomake/makers/ft/lex.vim | 11 - .../neomake/autoload/neomake/makers/ft/lua.vim | 34 - .../neomake/autoload/neomake/makers/ft/mail.vim | 8 - .../autoload/neomake/makers/ft/markdown.vim | 97 - .../neomake/autoload/neomake/makers/ft/matlab.vim | 15 - .../neomake/autoload/neomake/makers/ft/moon.vim | 15 - .../autoload/neomake/makers/ft/neomake_tests.vim | 66 - .../neomake/autoload/neomake/makers/ft/nim.vim | 16 - .../neomake/autoload/neomake/makers/ft/nix.vim | 14 - .../neomake/autoload/neomake/makers/ft/node.vim | 9 - .../neomake/autoload/neomake/makers/ft/objc.vim | 55 - .../neomake/autoload/neomake/makers/ft/pandoc.vim | 8 - .../neomake/autoload/neomake/makers/ft/perl.vim | 34 - .../neomake/autoload/neomake/makers/ft/php.vim | 72 - .../neomake/autoload/neomake/makers/ft/proto.vim | 12 - .../neomake/autoload/neomake/makers/ft/pug.vim | 13 - .../neomake/autoload/neomake/makers/ft/puppet.vim | 29 - .../autoload/neomake/makers/ft/purescript.vim | 63 - .../neomake/autoload/neomake/makers/ft/python.vim | 458 -- .../autoload/neomake/makers/ft/python/compile.py | 14 - .../neomake/autoload/neomake/makers/ft/r.vim | 17 - .../neomake/autoload/neomake/makers/ft/racket.vim | 32 - .../neomake/autoload/neomake/makers/ft/rst.vim | 89 - .../neomake/autoload/neomake/makers/ft/ruby.vim | 98 - .../neomake/autoload/neomake/makers/ft/rust.vim | 238 - .../neomake/autoload/neomake/makers/ft/scala.vim | 40 - .../neomake/autoload/neomake/makers/ft/scss.vim | 25 - .../neomake/autoload/neomake/makers/ft/serpent.vim | 13 - .../neomake/autoload/neomake/makers/ft/sh.vim | 86 - .../neomake/autoload/neomake/makers/ft/slim.vim | 13 - .../neomake/autoload/neomake/makers/ft/sml.vim | 19 - .../autoload/neomake/makers/ft/solidity.vim | 16 - .../neomake/autoload/neomake/makers/ft/spar.vim | 13 - .../neomake/autoload/neomake/makers/ft/spec.vim | 16 - .../neomake/autoload/neomake/makers/ft/sql.vim | 13 - .../neomake/autoload/neomake/makers/ft/stylus.vim | 16 - .../neomake/autoload/neomake/makers/ft/swift.vim | 54 - .../neomake/autoload/neomake/makers/ft/tcl.vim | 15 - .../neomake/autoload/neomake/makers/ft/tex.vim | 69 - .../neomake/autoload/neomake/makers/ft/text.vim | 30 - .../neomake/autoload/neomake/makers/ft/toml.vim | 15 - .../neomake/autoload/neomake/makers/ft/tsx.vim | 15 - .../autoload/neomake/makers/ft/typescript.vim | 45 - .../neomake/autoload/neomake/makers/ft/verilog.vim | 16 - .../neomake/autoload/neomake/makers/ft/vhdl.vim | 12 - .../neomake/autoload/neomake/makers/ft/vim.vim | 87 - .../neomake/autoload/neomake/makers/ft/vue.vim | 28 - .../neomake/autoload/neomake/makers/ft/xml.vim | 25 - .../neomake/autoload/neomake/makers/ft/xslt.vim | 8 - .../neomake/autoload/neomake/makers/ft/yacc.vim | 17 - .../neomake/autoload/neomake/makers/ft/yaml.vim | 12 - .../neomake/autoload/neomake/makers/ft/zsh.vim | 19 - .../neomake/autoload/neomake/makers/gradle.vim | 28 - .../neomake/autoload/neomake/makers/mvn.vim | 9 - .../neomake/autoload/neomake/makers/sbt.vim | 13 - .../neomake/autoload/neomake/postprocess.vim | 77 - .../+plugins/neomake/autoload/neomake/quickfix.vim | 377 -- .../+plugins/neomake/autoload/neomake/setup.vim | 37 - .../+plugins/neomake/autoload/neomake/signs.vim | 299 -- .../neomake/autoload/neomake/statusline.vim | 432 -- .../+plugins/neomake/autoload/neomake/utils.vim | 826 ---- .../neomake/autoload/neomake/virtualtext.vim | 113 - .../vim/vim/+plugins/neomake/contrib/highlight-log | 144 - .../vim/+plugins/neomake/contrib/run-tests-watch | 127 - .../vim/vim/+plugins/neomake/contrib/vim-checks | 123 - .../vim/vim/+plugins/neomake/contrib/vimhelplint | 46 - etc/soft/vim/vim/+plugins/neomake/doc/neomake.txt | 1056 ---- .../vim/vim/+plugins/neomake/plugin/neomake.vim | 50 - .../vim/+plugins/neomake/syntax/neomake/python.vim | 8 - .../vim/vim/+plugins/neomake/syntax/neomake/qf.vim | 9 - etc/soft/vim/vim/+plugins/neomake/syntax/qf.vim | 11 - .../vim/+plugins/neomake/tests/action_queue.vader | 239 - etc/soft/vim/vim/+plugins/neomake/tests/all.vader | 8 - etc/soft/vim/vim/+plugins/neomake/tests/args.vader | 108 - .../vim/vim/+plugins/neomake/tests/automake.vader | 1543 ------ .../vim/+plugins/neomake/tests/cancellation.vader | 289 -- .../vim/vim/+plugins/neomake/tests/clean.vader | 66 - .../+plugins/neomake/tests/cmd_neomakeinfo.vader | 233 - .../vim/vim/+plugins/neomake/tests/compat.vader | 213 - .../vim/+plugins/neomake/tests/completion.vader | 146 - .../vim/vim/+plugins/neomake/tests/config.vader | 295 -- .../vim/+plugins/neomake/tests/current_error.vader | 25 - .../vim/vim/+plugins/neomake/tests/customqf.vader | 811 --- etc/soft/vim/vim/+plugins/neomake/tests/cwd.vader | 520 -- .../vim/vim/+plugins/neomake/tests/debug.vader | 110 - etc/soft/vim/vim/+plugins/neomake/tests/env.vader | 73 - .../vim/vim/+plugins/neomake/tests/errors.vader | 202 - .../vim/vim/+plugins/neomake/tests/filetypes.vader | 106 - .../vim/+plugins/neomake/tests/filter_output.vader | 64 - .../neomake/tests/fixtures/a filename with spaces | 1 - .../vim/+plugins/neomake/tests/fixtures/errors.py | 2 - .../vim/+plugins/neomake/tests/fixtures/errors.sh | 5 - .../fixtures/input/puppet-lint/err_and_warn.pp | 7 - .../fixtures/input/puppet/syntax-error-eoi.pp | 7 - .../tests/fixtures/input/puppet/syntax-error.pp | 8 - .../tests/fixtures/input/xmllint/missingdtd.xml | 6 - .../fixtures/input/xmllint/validity-error.xml | 1 - .../output/puppet-lint/err_and_warn.pp.exitcode | 1 - .../output/puppet-lint/err_and_warn.pp.stderr | 0 .../output/puppet-lint/err_and_warn.pp.stdout | 4 - .../output/puppet/syntax-error-eoi.pp.exitcode | 1 - .../output/puppet/syntax-error-eoi.pp.stderr | 1 - .../output/puppet/syntax-error-eoi.pp.stdout | 0 .../output/puppet/syntax-error.pp.exitcode | 1 - .../fixtures/output/puppet/syntax-error.pp.stderr | 1 - .../fixtures/output/puppet/syntax-error.pp.stdout | 0 .../output/xmllint/missingdtd.xml.exitcode | 1 - .../fixtures/output/xmllint/missingdtd.xml.stderr | 9 - .../fixtures/output/xmllint/missingdtd.xml.stdout | 0 .../output/xmllint/validity-error.xml.exitcode | 1 - .../output/xmllint/validity-error.xml.stderr | 2 - .../output/xmllint/validity-error.xml.stdout | 0 .../fixtures/output/zsh/parse-error.zsh.exitcode | 1 - .../fixtures/output/zsh/parse-error.zsh.stderr | 1 - .../fixtures/output/zsh/parse-error.zsh.stdout | 0 .../neomake/tests/fixtures/rust/cargo_error.json | 1 - .../tests/fixtures/rust/cargo_error_children.json | 1 - .../fixtures/rust/cargo_error_primary_span.json | 3 - .../fixtures/rust/cargo_error_without_span.json | 1 - .../neomake/tests/fixtures/rust/cargo_info.json | 1 - .../neomake/tests/fixtures/rust/cargo_warning.json | 1 - .../tests/fixtures/rust/cargotest_with_failures | 20 - .../tests/fixtures/vim/func-with-errors.vim | 7 - .../tests/fixtures/vim/func-with-errors.vim.output | 2 - etc/soft/vim/vim/+plugins/neomake/tests/fixtures/~ | 1 - .../vim/+plugins/neomake/tests/ft_asciidoc.vader | 32 - .../vim/vim/+plugins/neomake/tests/ft_cs.vader | 32 - .../vim/vim/+plugins/neomake/tests/ft_css.vader | 79 - .../vim/vim/+plugins/neomake/tests/ft_elixir.vader | 23 - .../vim/vim/+plugins/neomake/tests/ft_elm.vader | 34 - .../vim/vim/+plugins/neomake/tests/ft_erlang.vader | 162 - .../vim/vim/+plugins/neomake/tests/ft_go.vader | 57 - .../vim/+plugins/neomake/tests/ft_haskell.vader | 39 - .../vim/vim/+plugins/neomake/tests/ft_html.vader | 17 - .../vim/vim/+plugins/neomake/tests/ft_idris.vader | 30 - .../vim/+plugins/neomake/tests/ft_javascript.vader | 101 - .../vim/+plugins/neomake/tests/ft_markdown.vader | 66 - .../vim/vim/+plugins/neomake/tests/ft_perl.vader | 27 - .../vim/vim/+plugins/neomake/tests/ft_php.vader | 91 - .../vim/vim/+plugins/neomake/tests/ft_puppet.vader | 91 - .../vim/+plugins/neomake/tests/ft_purescript.vader | 53 - .../vim/vim/+plugins/neomake/tests/ft_python.vader | 432 -- .../vim/vim/+plugins/neomake/tests/ft_rst.vader | 132 - .../vim/vim/+plugins/neomake/tests/ft_rust.vader | 162 - .../vim/vim/+plugins/neomake/tests/ft_sh.vader | 116 - .../vim/vim/+plugins/neomake/tests/ft_sql.vader | 22 - .../vim/vim/+plugins/neomake/tests/ft_text.vader | 89 - .../vim/+plugins/neomake/tests/ft_typescript.vader | 82 - .../vim/vim/+plugins/neomake/tests/ft_vim.vader | 102 - .../vim/vim/+plugins/neomake/tests/ft_xml.vader | 47 - .../vim/vim/+plugins/neomake/tests/helpers/trap.sh | 14 - .../vim/+plugins/neomake/tests/highlights.vader | 132 - .../vim/+plugins/neomake/tests/hooks-queue.vader | 154 - .../vim/vim/+plugins/neomake/tests/hooks.vader | 104 - .../vim/+plugins/neomake/tests/include/init.vim | 676 --- .../vim/+plugins/neomake/tests/include/setup.vader | 64 - .../vim/+plugins/neomake/tests/integration.vader | 1040 ---- .../vim/vim/+plugins/neomake/tests/isolated.vader | 15 - .../compat-get_argv-on-emulated-windows.vader | 39 - .../tests/isolated/completion-handles-throw.vader | 27 - .../neomake/tests/isolated/configure.vader | 6 - .../+plugins/neomake/tests/isolated/customqf.vader | 15 - .../+plugins/neomake/tests/isolated/ft_help.vader | 6 - .../+plugins/neomake/tests/isolated/ft_vim.vader | 30 - .../neomake/tests/isolated/highlights.vader | 279 -- .../+plugins/neomake/tests/isolated/logging.vader | 119 - .../+plugins/neomake/tests/isolated/modes.vader | 36 - .../isolated/resets-ignore_automake_events.vader | 25 - .../neomake/tests/isolated/sign-highlights.vader | 115 - .../+plugins/neomake/tests/isolated/signs.vader | 19 - .../tests/isolated/statusline-highlights.vader | 48 - .../neomake/tests/isolated/tempfiles-cleanup.vader | 40 - .../vim/vim/+plugins/neomake/tests/jobinfo.vader | 73 - etc/soft/vim/vim/+plugins/neomake/tests/json.vader | 28 - .../vim/+plugins/neomake/tests/list-entries.vader | 12 - etc/soft/vim/vim/+plugins/neomake/tests/list.vader | 552 --- .../vim/vim/+plugins/neomake/tests/lists.vader | 849 ---- etc/soft/vim/vim/+plugins/neomake/tests/log.vader | 40 - etc/soft/vim/vim/+plugins/neomake/tests/main.vader | 77 - .../vim/vim/+plugins/neomake/tests/makeprg.vader | 27 - .../vim/+plugins/neomake/tests/maker_errors.vader | 35 - .../vim/vim/+plugins/neomake/tests/makers.vader | 1094 ----- .../vim/vim/+plugins/neomake/tests/mapexpr.vader | 48 - .../vim/+plugins/neomake/tests/postprocess.vader | 443 -- .../vim/+plugins/neomake/tests/processing.vader | 1139 ----- .../vim/vim/+plugins/neomake/tests/serialize.vader | 401 -- .../vim/vim/+plugins/neomake/tests/signs.vader | 573 --- .../vim/+plugins/neomake/tests/statusline.vader | 221 - .../vim/vim/+plugins/neomake/tests/stdin.vader | 407 -- .../vim/vim/+plugins/neomake/tests/tempfiles.vader | 791 --- .../vim/vim/+plugins/neomake/tests/toggle.vader | 165 - .../vim/vim/+plugins/neomake/tests/utils.vader | 1106 ----- .../+plugins/neomake/tests/utils_projectroot.vader | 48 - .../vim/vim/+plugins/neomake/tests/verbosity.vader | 83 - etc/soft/vim/vim/+plugins/neomake/tests/vim/vimrc | 107 - .../neomake/tests/vim_and_neovim_behavior.vader | 72 - etc/soft/vim/vim/+plugins/nnn.vim/LICENSE | 26 - etc/soft/vim/vim/+plugins/nnn.vim/README.md | 145 - etc/soft/vim/vim/+plugins/nnn.vim/autoload/nnn.vim | 179 - etc/soft/vim/vim/+plugins/nnn.vim/doc/nnn.txt | 220 - etc/soft/vim/vim/+plugins/nnn.vim/ftplugin/nnn.vim | 17 - etc/soft/vim/vim/+plugins/nnn.vim/plugin/nnn.vim | 51 - .../vim/vim/+plugins/pummode/autoload/pummode.vim | 105 - etc/soft/vim/vim/+plugins/pummode/doc/pummode.txt | 126 - .../+plugins/rainbow/plugin/RainbowParenthsis.vim | 61 - etc/soft/vim/vim/+plugins/rainbow/rainbow.patch | 45 - .../vim/vim/+plugins/tasklist/plugin/tasklist.vim | 375 -- .../vim/vim/+plugins/timestamp/doc/timestamp.txt | 392 -- .../vim/+plugins/timestamp/plugin/timestamp.vim | 192 - etc/soft/vim/vim/+plugins/toggle/plugin/toggle.vim | 281 -- etc/soft/vim/vim/+plugins/vim-airline/.gitignore | 3 - etc/soft/vim/vim/+plugins/vim-airline/.travis.yml | 4 - etc/soft/vim/vim/+plugins/vim-airline/Gemfile | 2 - etc/soft/vim/vim/+plugins/vim-airline/LICENSE | 21 - etc/soft/vim/vim/+plugins/vim-airline/README.md | 199 - etc/soft/vim/vim/+plugins/vim-airline/Rakefile | 14 - .../vim/+plugins/vim-airline/autoload/airline.vim | 170 - .../vim-airline/autoload/airline/builder.vim | 74 - .../vim-airline/autoload/airline/debug.vim | 50 - .../vim-airline/autoload/airline/deprecation.vim | 32 - .../vim-airline/autoload/airline/extensions.vim | 218 - .../autoload/airline/extensions/branch.vim | 66 - .../autoload/airline/extensions/bufferline.vim | 23 - .../autoload/airline/extensions/commandt.vim | 16 - .../autoload/airline/extensions/csv.vim | 31 - .../autoload/airline/extensions/ctrlp.vim | 77 - .../autoload/airline/extensions/default.vim | 77 - .../autoload/airline/extensions/eclim.vim | 35 - .../autoload/airline/extensions/example.vim | 54 - .../autoload/airline/extensions/hunks.vim | 63 - .../autoload/airline/extensions/syntastic.vim | 19 - .../autoload/airline/extensions/tabline.vim | 225 - .../airline/extensions/tabline/formatters.vim | 34 - .../autoload/airline/extensions/tagbar.vim | 39 - .../autoload/airline/extensions/undotree.vim | 27 - .../autoload/airline/extensions/unite.vim | 23 - .../autoload/airline/extensions/virtualenv.vim | 20 - .../autoload/airline/extensions/whitespace.vim | 77 - .../vim-airline/autoload/airline/highlighter.vim | 148 - .../+plugins/vim-airline/autoload/airline/init.vim | 113 - .../vim-airline/autoload/airline/parts.vim | 79 - .../vim-airline/autoload/airline/section.vim | 72 - .../vim-airline/autoload/airline/themes.vim | 67 - .../vim-airline/autoload/airline/themes/alduin.vim | 93 - .../vim-airline/autoload/airline/themes/angr.vim | 109 - .../vim-airline/autoload/airline/themes/atomic.vim | 79 - .../vim-airline/autoload/airline/themes/aurora.vim | 52 - .../autoload/airline/themes/ayu_dark.vim | 34 - .../autoload/airline/themes/ayu_light.vim | 34 - .../autoload/airline/themes/ayu_mirage.vim | 34 - .../vim-airline/autoload/airline/themes/badcat.vim | 82 - .../autoload/airline/themes/badwolf.vim | 52 - .../vim-airline/autoload/airline/themes/base16.vim | 107 - .../autoload/airline/themes/base16color.vim | 77 - .../autoload/airline/themes/behelit.vim | 58 - .../vim-airline/autoload/airline/themes/biogoo.vim | 47 - .../autoload/airline/themes/bubblegum.vim | 62 - .../autoload/airline/themes/cobalt2.vim | 100 - .../vim-airline/autoload/airline/themes/cool.vim | 65 - .../vim-airline/autoload/airline/themes/dark.vim | 102 - .../autoload/airline/themes/dark_minimal.vim | 63 - .../autoload/airline/themes/desertink.vim | 68 - .../vim-airline/autoload/airline/themes/deus.vim | 117 - .../autoload/airline/themes/distinguished.vim | 59 - .../autoload/airline/themes/dracula.vim | 112 - .../vim-airline/autoload/airline/themes/durant.vim | 62 - .../autoload/airline/themes/fairyfloss.vim | 88 - .../autoload/airline/themes/fruit_punch.vim | 80 - .../vim-airline/autoload/airline/themes/hybrid.vim | 52 - .../autoload/airline/themes/hybridline.vim | 34 - .../autoload/airline/themes/jellybeans.vim | 52 - .../vim-airline/autoload/airline/themes/jet.vim | 98 - .../vim-airline/autoload/airline/themes/kalisi.vim | 70 - .../vim-airline/autoload/airline/themes/kolor.vim | 59 - .../autoload/airline/themes/laederon.vim | 62 - .../vim-airline/autoload/airline/themes/light.vim | 45 - .../vim-airline/autoload/airline/themes/lucius.vim | 56 - .../vim-airline/autoload/airline/themes/luna.vim | 92 - .../autoload/airline/themes/minimalist.vim | 81 - .../autoload/airline/themes/molokai.vim | 65 - .../autoload/airline/themes/monochrome.vim | 15 - .../vim-airline/autoload/airline/themes/murmur.vim | 46 - .../autoload/airline/themes/night_owl.vim | 60 - .../autoload/airline/themes/onedark.vim | 129 - .../vim-airline/autoload/airline/themes/ouo.vim | 135 - .../autoload/airline/themes/papercolor.vim | 65 - .../autoload/airline/themes/peaksea.vim | 75 - .../autoload/airline/themes/powerlineish.vim | 46 - .../vim-airline/autoload/airline/themes/qwq.vim | 61 - .../vim-airline/autoload/airline/themes/raven.vim | 85 - .../autoload/airline/themes/ravenpower.vim | 36 - .../autoload/airline/themes/seagull.vim | 189 - .../vim-airline/autoload/airline/themes/serene.vim | 41 - .../vim-airline/autoload/airline/themes/sierra.vim | 94 - .../vim-airline/autoload/airline/themes/silver.vim | 85 - .../vim-airline/autoload/airline/themes/simple.vim | 46 - .../vim-airline/autoload/airline/themes/soda.vim | 33 - .../vim-airline/autoload/airline/themes/sol.vim | 90 - .../autoload/airline/themes/solarized.vim | 173 - .../autoload/airline/themes/solarized_flood.vim | 174 - .../vim-airline/autoload/airline/themes/term.vim | 92 - .../autoload/airline/themes/term_light.vim | 92 - .../autoload/airline/themes/tomorrow.vim | 44 - .../vim-airline/autoload/airline/themes/ubaryd.vim | 64 - .../autoload/airline/themes/understated.vim | 43 - .../vim-airline/autoload/airline/themes/vice.vim | 72 - .../vim-airline/autoload/airline/themes/violet.vim | 32 - .../vim-airline/autoload/airline/themes/wombat.vim | 90 - .../autoload/airline/themes/xtermlight.vim | 45 - .../autoload/airline/themes/zenburn.vim | 44 - .../+plugins/vim-airline/autoload/airline/util.vim | 64 - .../vim/vim/+plugins/vim-airline/doc/airline.txt | 648 --- .../vim/+plugins/vim-airline/plugin/airline.vim | 104 - .../vim/vim/+plugins/vim-airline/t/airline.vim | 87 - .../vim/vim/+plugins/vim-airline/t/builder.vim | 80 - .../vim/vim/+plugins/vim-airline/t/commands.vim | 33 - .../+plugins/vim-airline/t/extensions_default.vim | 32 - .../vim/vim/+plugins/vim-airline/t/highlighter.vim | 20 - etc/soft/vim/vim/+plugins/vim-airline/t/init.vim | 77 - etc/soft/vim/vim/+plugins/vim-airline/t/parts.vim | 39 - .../vim/vim/+plugins/vim-airline/t/section.vim | 76 - etc/soft/vim/vim/+plugins/vim-airline/t/themes.vim | 68 - etc/soft/vim/vim/+plugins/vim-airline/t/util.vim | 54 - etc/soft/vim/vim/+plugins/vim-easymotion/Gemfile | 4 - etc/soft/vim/vim/+plugins/vim-easymotion/README.md | 395 -- etc/soft/vim/vim/+plugins/vim-easymotion/Rakefile | 11 - .../vim-easymotion/autoload/EasyMotion.vim | 1604 ------ .../vim-easymotion/autoload/EasyMotion/cmigemo.vim | 117 - .../autoload/EasyMotion/command_line.vim | 283 -- .../vim-easymotion/autoload/EasyMotion/helper.vim | 185 - .../autoload/EasyMotion/highlight.vim | 251 - .../autoload/EasyMotion/migemo/cp932.vim | 97 - .../autoload/EasyMotion/migemo/eucjp.vim | 97 - .../autoload/EasyMotion/migemo/utf8.vim | 97 - .../vim-easymotion/autoload/EasyMotion/overwin.vim | 27 - .../autoload/EasyMotion/sticky_table.vim | 24 - .../vim-easymotion/autoload/EasyMotion/undo.vim | 50 - .../vim/+plugins/vim-easymotion/autoload/vital.vim | 12 - .../vim-easymotion/autoload/vital/_easymotion.vim | 5 - .../autoload/vital/_easymotion/Data/Dict.vim | 116 - .../autoload/vital/_easymotion/Data/List.vim | 457 -- .../autoload/vital/_easymotion/Data/Set.vim | 284 -- .../autoload/vital/_easymotion/HitAHint/Hint.vim | 126 - .../autoload/vital/_easymotion/HitAHint/Motion.vim | 806 --- .../vital/_easymotion/Over/Commandline/Base.vim | 606 --- .../vital/_easymotion/Over/Commandline/Modules.vim | 42 - .../Over/Commandline/Modules/BufferComplete.vim | 179 - .../Over/Commandline/Modules/Cancel.vim | 40 - .../Over/Commandline/Modules/CursorMove.vim | 58 - .../Over/Commandline/Modules/Delete.vim | 56 - .../Over/Commandline/Modules/Doautocmd.vim | 121 - .../Over/Commandline/Modules/DrawCommandline.vim | 155 - .../Over/Commandline/Modules/ExceptionExit.vim | 37 - .../Over/Commandline/Modules/ExceptionMessage.vim | 66 - .../_easymotion/Over/Commandline/Modules/Exit.vim | 40 - .../Over/Commandline/Modules/History.vim | 75 - .../Over/Commandline/Modules/InsertRegister.vim | 164 - .../Over/Commandline/Modules/KeyMapping.vim | 139 - .../Over/Commandline/Modules/NoInsert.vim | 55 - .../_easymotion/Over/Commandline/Modules/Paste.vim | 40 - .../Over/Commandline/Modules/Redraw.vim | 72 - .../autoload/vital/_easymotion/Over/Exception.vim | 46 - .../autoload/vital/_easymotion/Over/Input.vim | 40 - .../autoload/vital/_easymotion/Over/Keymapping.vim | 95 - .../autoload/vital/_easymotion/Over/Signals.vim | 119 - .../autoload/vital/_easymotion/Over/String.vim | 164 - .../autoload/vital/_easymotion/Palette/Capture.vim | 74 - .../vital/_easymotion/Palette/Highlight.vim | 133 - .../vital/_easymotion/Palette/Keymapping.vim | 121 - .../autoload/vital/_easymotion/Prelude.vim | 430 -- .../autoload/vital/_easymotion/Vim/Buffer.vim | 187 - .../autoload/vital/_easymotion/Vim/Guard.vim | 240 - .../autoload/vital/_easymotion/Vim/Message.vim | 80 - .../vim-easymotion/autoload/vital/easymotion.vim | 339 -- .../vim-easymotion/autoload/vital/easymotion.vital | 20 - .../vim/+plugins/vim-easymotion/doc/easymotion.txt | 1232 ----- .../+plugins/vim-easymotion/plugin/EasyMotion.vim | 290 -- .../vim-easymotion/t/compare_movements_spec.vim | 274 -- .../+plugins/vim-easymotion/t/easymotion_spec.vim | 1471 ------ .../vim-easymotion/t/operator_pending_spec.vim | 110 - .../+plugins/vim-easymotion/t/smartsign_spec.vim | 575 --- etc/soft/vim/vim/+plugins/vim-emmet/.gitignore | 1 - etc/soft/vim/vim/+plugins/vim-emmet/Makefile | 11 - etc/soft/vim/vim/+plugins/vim-emmet/README.mkd | 149 - etc/soft/vim/vim/+plugins/vim-emmet/TODO | 0 etc/soft/vim/vim/+plugins/vim-emmet/TUTORIAL | 212 - .../vim/vim/+plugins/vim-emmet/autoload/emmet.vim | 1990 -------- .../vim/+plugins/vim-emmet/autoload/emmet/lang.vim | 11 - .../+plugins/vim-emmet/autoload/emmet/lang/css.vim | 346 -- .../vim-emmet/autoload/emmet/lang/haml.vim | 334 -- .../vim-emmet/autoload/emmet/lang/html.vim | 868 ---- .../vim-emmet/autoload/emmet/lang/jade.vim | 331 -- .../vim-emmet/autoload/emmet/lang/less.vim | 47 - .../vim-emmet/autoload/emmet/lang/sass.vim | 160 - .../vim-emmet/autoload/emmet/lang/scss.vim | 125 - .../vim-emmet/autoload/emmet/lang/slim.vim | 281 -- .../+plugins/vim-emmet/autoload/emmet/lorem/en.vim | 65 - .../+plugins/vim-emmet/autoload/emmet/lorem/ja.vim | 27 - .../vim/+plugins/vim-emmet/autoload/emmet/util.vim | 349 -- etc/soft/vim/vim/+plugins/vim-emmet/doc/emmet.txt | 1773 ------- .../vim/vim/+plugins/vim-emmet/doc/screenshot.gif | Bin 33279 -> 0 bytes .../vim/vim/+plugins/vim-emmet/emmet.vim.vimup | 277 -- .../vim/vim/+plugins/vim-emmet/plugin/emmet.vim | 177 - etc/soft/vim/vim/+plugins/vim-emmet/unittest.vim | 1018 ---- .../vim/vim/+plugins/vim-enter-indent/README.md | 29 - .../vim-enter-indent/plugin/enter-indent.vim | 59 - .../vim/vim/+plugins/vim-haskellConceal/README | 11 - .../vim-haskellConceal/after/syntax/haskell.vim | 103 - .../vim/+plugins/vim-liquid/ftdetect/liquid.vim | 16 - .../vim/+plugins/vim-liquid/ftplugin/liquid.vim | 61 - .../vim/vim/+plugins/vim-liquid/indent/liquid.vim | 63 - .../vim/vim/+plugins/vim-liquid/syntax/liquid.vim | 138 - etc/soft/vim/vim/+plugins/vim-quickhl/README.md | 18 - etc/soft/vim/vim/+plugins/vim-quickhl/Rakefile | 21 - etc/soft/vim/vim/+plugins/vim-quickhl/VERSION | 1 - .../vim/+plugins/vim-quickhl/autoload/quickhl.vim | 307 -- .../vim/vim/+plugins/vim-quickhl/doc/quickhl.txt | 159 - .../vim/+plugins/vim-quickhl/plugin/quickhl.vim | 108 - .../vim/vim/+plugins/vim-repeat/README.markdown | 53 - .../vim/+plugins/vim-repeat/autoload/repeat.vim | 115 - .../vim/+plugins/vim-speeddating/README.markdown | 71 - .../vim-speeddating/autoload/speeddating.vim | 811 --- .../+plugins/vim-speeddating/doc/speeddating.txt | 102 - .../vim-speeddating/plugin/speeddating.vim | 88 - .../vim/vim/+plugins/vim-startify/CONTRIBUTING.md | 28 - etc/soft/vim/vim/+plugins/vim-startify/LICENSE | 20 - etc/soft/vim/vim/+plugins/vim-startify/README.md | 52 - .../+plugins/vim-startify/autoload/startify.vim | 1126 ----- .../vim-startify/autoload/startify/fortune.vim | 243 - .../vim/vim/+plugins/vim-startify/doc/startify.txt | 1182 ----- .../+plugins/vim-startify/images/startify-logo.png | Bin 20797 -> 0 bytes .../+plugins/vim-startify/images/startify-menu.png | Bin 146825 -> 0 bytes .../vim/+plugins/vim-startify/plugin/startify.vim | 67 - .../vim/+plugins/vim-startify/syntax/startify.vim | 55 - .../vim-startify/test/feature/buffer.vader | 14 - .../vim-startify/test/feature/mapping.vader | 20 - .../vim-startify/test/feature/session.vader | 22 - .../vim-startify/test/include/testfile.txt | 2 - etc/soft/vim/vim/+plugins/vim-startify/test/run | 23 - .../+plugins/vim-startify/test/session/.gitkeep | 0 .../vim/vim/+plugins/vim-startify/test/viminfo | 2 - etc/soft/vim/vim/+plugins/vim-startify/test/vimrc | 13 - .../vim/vim/+plugins/vim-surround/README.markdown | 97 - .../vim/vim/+plugins/vim-surround/doc/surround.txt | 205 - .../vim/+plugins/vim-surround/plugin/surround.vim | 579 --- .../vim/+plugins/vimwiki/autoload/vimwiki/base.vim | 1056 ---- .../+plugins/vimwiki/autoload/vimwiki/default.tpl | 11 - .../+plugins/vimwiki/autoload/vimwiki/diary.vim | 286 -- .../vim/+plugins/vimwiki/autoload/vimwiki/html.vim | 1441 ------ .../vim/+plugins/vimwiki/autoload/vimwiki/lst.vim | 369 -- .../+plugins/vimwiki/autoload/vimwiki/style.css | 39 - .../vim/+plugins/vimwiki/autoload/vimwiki/tbl.vim | 510 -- etc/soft/vim/vim/+plugins/vimwiki/doc/vimwiki.txt | 2339 --------- .../vim/vim/+plugins/vimwiki/ftplugin/vimwiki.vim | 418 -- .../vim/vim/+plugins/vimwiki/plugin/vimwiki.vim | 445 -- .../vim/vim/+plugins/vimwiki/syntax/vimwiki.vim | 407 -- .../+plugins/vimwiki/syntax/vimwiki_default.vim | 85 - .../vim/+plugins/vimwiki/syntax/vimwiki_media.vim | 69 - .../vim/vim/+plugins/yankring/doc/yankring.txt | 1646 ------- .../vim/vim/+plugins/yankring/plugin/yankring.vim | 2880 ----------- etc/soft/vim/vim/+plugins/yankring/yankring.vim | 2880 ----------- .../vim/vim/+plugins_disabled/AnsiESC/README.md | 49 - .../+plugins_disabled/AnsiESC/autoload/AnsiEsc.vim | 1057 ---- .../vim/+plugins_disabled/AnsiESC/doc/AnsiEsc.txt | 135 - .../AnsiESC/plugin/AnsiEscPlugin.vim | 32 - .../+plugins_disabled/AnsiESC/plugin/cecutil.vim | 538 -- etc/soft/vim/vim/+plugins_disabled/Join/README.md | 93 - .../vim/vim/+plugins_disabled/Join/doc/Join.txt | 248 - .../vim/vim/+plugins_disabled/Join/plugin/Join.vim | 208 - .../vim/vim/+plugins_disabled/fff.vim/LICENSE.md | 21 - .../vim/vim/+plugins_disabled/fff.vim/README.md | 66 - .../vim/+plugins_disabled/fff.vim/autoload/fff.vim | 48 - .../vim/+plugins_disabled/fff.vim/plugin/fff.vim | 8 - .../vim/+plugins_disabled/figlet/plugin/Figlet.vim | 557 --- .../vim/+plugins_disabled/format_helper/README.txt | 282 -- .../format_helper/format_helper.patch | 89 - .../format_helper/plugin/format_helper.vim | 548 --- .../functionator/functionator.patch | 35 - .../functionator/plugin/functionator.vim | 107 - .../lispcomplete/autoload/lispcomplete.vim | 182 - .../marks_corey/marks_corey.patch | 55 - .../marks_corey/plugin/marks_corey.vim | 441 -- .../+plugins_disabled/neocomplcache.vim/README.md | 151 - .../neocomplcache.vim/autoload/neocomplcache.vim | 405 -- .../autoload/neocomplcache/async_cache.vim | 315 -- .../autoload/neocomplcache/cache.vim | 326 -- .../autoload/neocomplcache/commands.vim | 277 -- .../autoload/neocomplcache/complete.vim | 383 -- .../autoload/neocomplcache/context_filetype.vim | 207 - .../autoload/neocomplcache/filters.vim | 132 - .../neocomplcache/filters/converter_abbr.vim | 63 - .../neocomplcache/filters/converter_case.vim | 79 - .../neocomplcache/filters/converter_delimiter.vim | 94 - .../neocomplcache/filters/converter_nothing.vim | 47 - .../filters/converter_remove_next_keyword.vim | 87 - .../neocomplcache/filters/matcher_fuzzy.vim | 47 - .../neocomplcache/filters/matcher_head.vim | 47 - .../autoload/neocomplcache/filters/matcher_old.vim | 57 - .../neocomplcache/filters/sorter_length.vim | 54 - .../neocomplcache/filters/sorter_nothing.vim | 47 - .../autoload/neocomplcache/filters/sorter_rank.vim | 51 - .../autoload/neocomplcache/handler.vim | 291 -- .../autoload/neocomplcache/helper.vim | 438 -- .../autoload/neocomplcache/init.vim | 866 ---- .../autoload/neocomplcache/mappings.vim | 188 - .../neocomplcache/sources/buffer_complete.vim | 435 -- .../neocomplcache/sources/dictionary_complete.vim | 172 - .../neocomplcache/sources/filename_complete.vim | 202 - .../neocomplcache/sources/filename_include.vim | 238 - .../neocomplcache/sources/include_complete.vim | 490 -- .../neocomplcache/sources/member_complete.vim | 247 - .../neocomplcache/sources/omni_complete.vim | 303 -- .../neocomplcache/sources/syntax_complete.vim | 322 -- .../neocomplcache/sources/tags_complete.vim | 113 - .../neocomplcache/sources/vim_complete.vim | 198 - .../sources/vim_complete/autocmds.dict | 83 - .../sources/vim_complete/command_args.dict | 44 - .../sources/vim_complete/command_completions.dict | 498 -- .../sources/vim_complete/command_prototypes.dict | 498 -- .../sources/vim_complete/command_replaces.dict | 10 - .../sources/vim_complete/commands.dict | 492 -- .../sources/vim_complete/features.dict | 153 - .../sources/vim_complete/functions.dict | 252 - .../neocomplcache/sources/vim_complete/helper.vim | 964 ---- .../sources/vim_complete/mappings.dict | 72 - .../sources/vim_complete/options.dict | 354 -- .../sources/vim_complete/variables.dict | 54 - .../autoload/neocomplcache/util.vim | 228 - .../autoload/neocomplcache/variables.vim | 71 - .../autoload/unite/sources/file_include.vim | 73 - .../autoload/unite/sources/neocomplcache.vim | 131 - .../neocomplcache.vim/autoload/vital.vim | 12 - .../neocomplcache.vim/autoload/vital/_a20a988.vim | 177 - .../autoload/vital/_a20a988/Data/List.vim | 244 - .../autoload/vital/_a20a988/Data/String.vim | 256 - .../autoload/vital/_a20a988/Prelude.vim | 404 -- .../autoload/vital/_a20a988/System/Cache.vim | 93 - .../autoload/vital/neocomplcache.vital | 5 - .../neocomplcache.vim/doc/neocomplcache.txt | 1887 ------- .../neocomplcache.vim/plugin/neocomplcache.vim | 204 - .../plugin/neocomplcache/buffer_complete.vim | 37 - .../plugin/neocomplcache/dictionary_complete.vim | 25 - .../plugin/neocomplcache/include_complete.vim | 24 - .../plugin/neocomplcache/syntax_complete.vim | 25 - .../plugin/neocomplcache/tags_complete.vim | 25 - .../neocomplcache.vim/vest/test-neocomplcache.vim | 24 - .../vim/+plugins_disabled/neosnippet.vim/README.md | 124 - .../neocomplcache/sources/snippets_complete.vim | 105 - .../autoload/neocomplete/sources/neosnippet.vim | 67 - .../neosnippet.vim/autoload/neosnippet.vim | 1412 ------ .../autoload/neosnippet/snippets/Gemfile.snip | 7 - .../autoload/neosnippet/snippets/_.snip | 25 - .../autoload/neosnippet/snippets/actionscript.snip | 265 - .../autoload/neosnippet/snippets/apache.snip | 22 - .../autoload/neosnippet/snippets/applescript.snip | 185 - .../autoload/neosnippet/snippets/c.snip | 153 - .../autoload/neosnippet/snippets/clojure.snip | 32 - .../autoload/neosnippet/snippets/coffee.snip | 72 - .../autoload/neosnippet/snippets/cpp.snip | 76 - .../autoload/neosnippet/snippets/css.snip | 251 - .../autoload/neosnippet/snippets/d.snip | 40 - .../autoload/neosnippet/snippets/erlang.snip | 21 - .../autoload/neosnippet/snippets/eruby.snip | 20 - .../autoload/neosnippet/snippets/go.snip | 51 - .../autoload/neosnippet/snippets/groovy.snip | 29 - .../autoload/neosnippet/snippets/haskell.snip | 32 - .../autoload/neosnippet/snippets/html.snip | 301 -- .../autoload/neosnippet/snippets/java.snip | 225 - .../autoload/neosnippet/snippets/javascript.snip | 69 - .../autoload/neosnippet/snippets/kp19pp.snip | 21 - .../autoload/neosnippet/snippets/liquid.snip | 107 - .../autoload/neosnippet/snippets/lua.snip | 41 - .../autoload/neosnippet/snippets/make.snip | 8 - .../autoload/neosnippet/snippets/markdown.snip | 67 - .../autoload/neosnippet/snippets/mediawiki.snip | 70 - .../autoload/neosnippet/snippets/objc.snip | 333 -- .../autoload/neosnippet/snippets/perl.snip | 77 - .../autoload/neosnippet/snippets/php.snip | 276 -- .../autoload/neosnippet/snippets/python.snip | 119 - .../autoload/neosnippet/snippets/rails.snip | 164 - .../autoload/neosnippet/snippets/rst.snip | 121 - .../autoload/neosnippet/snippets/ruby.snip | 136 - .../autoload/neosnippet/snippets/scala.snip | 42 - .../autoload/neosnippet/snippets/scheme.snip | 20 - .../autoload/neosnippet/snippets/sh.snip | 89 - .../autoload/neosnippet/snippets/snippet.snip | 9 - .../autoload/neosnippet/snippets/sql.snip | 30 - .../autoload/neosnippet/snippets/sshconfig.snip | 6 - .../autoload/neosnippet/snippets/tcl.snip | 1 - .../autoload/neosnippet/snippets/tex.snip | 355 -- .../autoload/neosnippet/snippets/vim.snip | 186 - .../autoload/neosnippet/snippets/vim/vital.snip | 35 - .../autoload/neosnippet/snippets/vimshell.snip | 4 - .../autoload/neosnippet/snippets/vimwiki.snip | 1 - .../autoload/neosnippet/snippets/xhtml.snip | 7 - .../neosnippet.vim/autoload/neosnippet/util.vim | 117 - .../autoload/unite/sources/neosnippet_file.vim | 105 - .../autoload/unite/sources/snippet.vim | 174 - .../autoload/unite/sources/snippet_target.vim | 121 - .../neosnippet.vim/autoload/vital.vim | 12 - .../neosnippet.vim/autoload/vital/_de83b96.vim | 177 - .../autoload/vital/_de83b96/Prelude.vim | 409 -- .../neosnippet.vim/autoload/vital/neosnippet.vital | 3 - .../neosnippet.vim/doc/neosnippet.txt | 728 --- .../neosnippet.vim/ftdetect/snippet.vim | 2 - .../neosnippet.vim/ftplugin/snippet.vim | 44 - .../neosnippet.vim/indent/snippet.vim | 61 - .../neosnippet.vim/plugin/neosnippet.vim | 96 - .../neosnippet.vim/syntax/snippet.vim | 111 - .../vim/vim/+plugins_disabled/tablify/README.md | 133 - .../vim/+plugins_disabled/tablify/doc/tablify.txt | 148 - .../+plugins_disabled/tablify/plugin/tablify.vim | 1030 ---- .../vim/+plugins_disabled/taglist/doc/taglist.txt | 1515 ------ .../+plugins_disabled/taglist/plugin/taglist.vim | 4677 ------------------ .../textmanip/autoload/textmanip.vim | 148 - .../+plugins_disabled/textmanip/doc/textmanip.txt | 136 - .../textmanip/plugin/textmanip.vim | 35 - .../vCoolor/autoload/vcoolor/convert.vim | 414 -- .../vCoolor/autoload/vcoolor/misc.vim | 38 - .../vim/+plugins_disabled/vCoolor/doc/vCoolor.txt | 202 - .../vCoolor/pickers/osx/color-picker | 32 - .../+plugins_disabled/vCoolor/plugin/vCoolor.vim | 267 - .../vim/+plugins_disabled/vicle/plugin/vicle.vim | 595 --- .../+plugins_disabled/vim-easy-align/EXAMPLES.md | 288 -- .../vim/+plugins_disabled/vim-easy-align/README.md | 361 -- .../vim-easy-align/autoload/easy_align.vim | 477 -- .../vim-easy-align/doc/easy_align.txt | 263 - .../vim-easy-align/plugin/easy_align.vim | 29 - .../vim-easy-align/test/basic.expected | 358 -- .../+plugins_disabled/vim-easy-align/test/basic.md | 109 - .../vim-easy-align/test/basic.script | 1 - .../vim-easy-align/test/include.vim | 42 - .../vim-easy-align/test/regexp.expected | 93 - .../vim-easy-align/test/regexp.md | 12 - .../vim-easy-align/test/regexp.script | 1 - .../+plugins_disabled/vim-easy-align/test/run.vim | 13 - .../vim/vim/+plugins_disabled/vim-easy-align/zip | 2 - etc/soft/vim/vim/+plugins_disabled/vim-fugitive | 1 - .../vim/vim/+plugins_disabled/vim-racket/README.md | 11 - .../vim-racket/ftdetect/racket.vim | 1 - .../vim-racket/ftplugin/racket.vim | 10 - .../+plugins_disabled/vim-racket/indent/racket.vim | 13 - .../+plugins_disabled/vim-racket/syntax/racket.vim | 558 --- .../vim-racket/test/delimiters.rkt | 6 - .../vim-racket/test/number-syntax-test.rkt | 92 - etc/soft/vim/vim/+plugins_disabled/vimple/README | 148 - .../vim/+plugins_disabled/vimple/autoload/args.vim | 107 - .../+plugins_disabled/vimple/autoload/complete.vim | 67 - .../vimple/autoload/completers.vim | 73 - .../vim/+plugins_disabled/vimple/autoload/file.vim | 3 - .../vim/+plugins_disabled/vimple/autoload/list.vim | 208 - .../+plugins_disabled/vimple/autoload/loclist.vim | 21 - .../+plugins_disabled/vimple/autoload/ml/bayes.vim | 91 - .../vimple/autoload/ml/porter.vim | 196 - .../+plugins_disabled/vimple/autoload/overlay.vim | 115 - .../vimple/autoload/parse/ini.vim | 58 - .../+plugins_disabled/vimple/autoload/quickfix.vim | 23 - .../+plugins_disabled/vimple/autoload/regex.vim | 74 - .../vim/+plugins_disabled/vimple/autoload/rng.vim | 18 - .../+plugins_disabled/vimple/autoload/scope.vim | 92 - .../+plugins_disabled/vimple/autoload/scripts.vim | 47 - .../+plugins_disabled/vimple/autoload/string.vim | 292 -- .../+plugins_disabled/vimple/autoload/variable.vim | 3 - .../+plugins_disabled/vimple/autoload/vimple.vim | 256 - .../vimple/autoload/vimple/abbreviations.vim | 105 - .../vimple/autoload/vimple/comparators.vim | 66 - .../vimple/autoload/vimple/highlight.vim | 103 - .../vimple/autoload/vimple/history.vim | 90 - .../vimple/autoload/vimple/ls.vim | 386 -- .../vimple/autoload/vimple/map.vim | 176 - .../vimple/autoload/vimple/marks.vim | 110 - .../vimple/autoload/vimple/options.vim | 209 - .../vimple/autoload/vimple/scriptnames.vim | 100 - .../vimple/autoload/vimple/undolist.vim | 176 - .../vimple/autoload/vimple/version.vim | 115 - .../vim/+plugins_disabled/vimple/demo/bufgrep.vim | 47 - .../vim/+plugins_disabled/vimple/demo/calendar.vim | 89 - .../+plugins_disabled/vimple/demo/changelist.vim | 63 - .../+plugins_disabled/vimple/demo/global_marks.vim | 26 - .../vim/+plugins_disabled/vimple/demo/helptoc.vim | 32 - .../vim/+plugins_disabled/vimple/demo/iabbrevs.vim | 29 - .../+plugins_disabled/vimple/demo/identsearch.vim | 34 - .../vim/+plugins_disabled/vimple/demo/jumplist.vim | 63 - .../vim/+plugins_disabled/vimple/demo/oldfiles.vim | 22 - .../+plugins_disabled/vimple/demo/spellsuggest.vim | 45 - .../vim/+plugins_disabled/vimple/demo/tagkinds.vim | 24 - .../+plugins_disabled/vimple/demo/tagsearch.vim | 41 - .../vim/+plugins_disabled/vimple/doc/vimple.txt | 316 -- .../vim/+plugins_disabled/vimple/doc/vimple_ls.txt | 344 -- .../vimple/ftplugin/python_scope.vim | 6 - .../vimple/ftplugin/vim_scope.vim | 4 - .../vim/+plugins_disabled/vimple/plugin/vimple.vim | 451 -- .../vimple/syntax/vimple_jumplist.vim | 11 - .../vim/vim/+plugins_disabled/vimple/test/Makefile | 11 - .../vim/vim/+plugins_disabled/vimple/test/README | 13 - .../vim/+plugins_disabled/vimple/test/_setup.vim | 16 - .../+plugins_disabled/vimple/test/buffer_list.vim | 19 - .../vim/+plugins_disabled/vimple/test/ini_001.ini | 13 - .../+plugins_disabled/vimple/test/ini_001_out.ini | 8 - .../vim/+plugins_disabled/vimple/test/ini_002.ini | 5 - .../+plugins_disabled/vimple/test/ini_002_out.ini | 4 - .../vimple/test/parse_ini_001.vim | 9 - .../vimple/test/parse_ini_002.vim | 9 - .../+plugins_disabled/vimple/test/string001.vim | 48 - .../+plugins_disabled/vimple/test/vimple001.vim | 18 - .../+plugins_disabled/vimple/test/vimple002.vim | 15 - .../+plugins_disabled/vimwiki/autoload/vimwiki.vim | 1088 ---- .../vimwiki/autoload/vimwiki_diary.vim | 281 -- .../vimwiki/autoload/vimwiki_html.vim | 1311 ----- .../vimwiki/autoload/vimwiki_lst.vim | 359 -- .../vimwiki/autoload/vimwiki_tbl.vim | 510 -- .../vim/+plugins_disabled/vimwiki/doc/vimwiki.txt | 2147 -------- .../+plugins_disabled/vimwiki/ftplugin/vimwiki.vim | 384 -- .../+plugins_disabled/vimwiki/plugin/vimwiki.vim | 398 -- .../+plugins_disabled/vimwiki/syntax/vimwiki.vim | 236 - .../vimwiki/syntax/vimwiki_default.vim | 83 - .../vimwiki/syntax/vimwiki_media.vim | 67 - etc/soft/vim/vim/+scripts/declarations/perl | 10 - etc/soft/vim/vim/+scripts/declarations/prolog | 16 - etc/soft/vim/vim/+scripts/declarations/rebol | 13 - etc/soft/vim/vim/+scripts/declarations/scheme | 19 - etc/soft/vim/vim/+scripts/declarations/sh | 23 - etc/soft/vim/vim/+scripts/declarations/tcl | 21 - etc/soft/vim/vim/+scripts/sources/getTclSrc | 18 - etc/soft/vim/vim/+snippets/install.sh | 14 - etc/soft/vim/vim/+snippets/tcl.snip | 97 - etc/soft/vim/vim/+snippets/vimwiki.snip | 4 - etc/soft/vim/vim/after/syntax/c.vim | 265 - etc/soft/vim/vim/after/syntax/css.vim | 318 -- etc/soft/vim/vim/autoload/pathogen.vim | 347 -- etc/soft/vim/vim/colors/OneHalfDark.vim | 195 - etc/soft/vim/vim/colors/OneHalfLight.vim | 195 - etc/soft/vim/vim/colors/PaperColor.vim | 1322 ----- etc/soft/vim/vim/colors/forgotten-light.vim | 243 - etc/soft/vim/vim/colors/wombat.vim | 51 - etc/soft/vim/vim/colors/wombat256.vim | 302 -- etc/soft/vim/vim/colors/wombat256mod.vim | 96 - etc/soft/vim/vim/colors/wombat_converted.vim | 114 - etc/soft/vim/vim/compiler/tex.vim | 294 -- etc/soft/vim/vim/dic/sh | 170 - etc/soft/vim/vim/dic/tcl | 370 -- etc/soft/vim/vim/doc/git-cheat.txt | 502 -- etc/soft/vim/vim/doc/latexhelp.txt | 2430 --------- etc/soft/vim/vim/doc/regexpref.txt | 53 - etc/soft/vim/vim/ftdetect/detect.vim | 61 - etc/soft/vim/vim/ftplugin/c/c.custom.vim | 1 - etc/soft/vim/vim/ftplugin/cpp/cpp.custom.vim | 1 - .../vim/ftplugin/dockerfile/dockerfile.custom.vim | 1 - etc/soft/vim/vim/ftplugin/erlang/erlang.custom.vim | 1 - etc/soft/vim/vim/ftplugin/go/go.custom.vim | 1 - .../vim/vim/ftplugin/graphviz/graphviz.custom.vim | 1 - .../vim/vim/ftplugin/haskell/haskell.custom.vim | 1 - etc/soft/vim/vim/ftplugin/html/html.custom.vim | 1 - etc/soft/vim/vim/ftplugin/lisp/lisp.custom.vim | 1 - .../vim/vim/ftplugin/markdown/markdown.custom.vim | 1 - etc/soft/vim/vim/ftplugin/ocaml/ocaml.custom.vim | 1 - etc/soft/vim/vim/ftplugin/pascal/pascal.custom.vim | 1 - etc/soft/vim/vim/ftplugin/perl/perl.custom.vim | 1 - etc/soft/vim/vim/ftplugin/prolog/prolog.custom.vim | 1 - etc/soft/vim/vim/ftplugin/racket/racket.custom.vim | 1 - etc/soft/vim/vim/ftplugin/rename/rename.custom.vim | 1 - etc/soft/vim/vim/ftplugin/scheme/scheme.custom.vim | 1 - etc/soft/vim/vim/ftplugin/sh/sh.custom.vim | 1 - etc/soft/vim/vim/ftplugin/tcl/tcl.custom.vim | 1 - etc/soft/vim/vim/ftplugin/tex/tex.custom.vim | 1 - etc/soft/vim/vim/ftplugin/vb/vb.custom.vim | 1 - .../vim/vim/ftplugin/vimwiki/vimwiki.custom.vim | 1 - etc/soft/vim/vim/indent/erlang.vim | 206 - etc/soft/vim/vim/indent/tcl.vim | 478 -- etc/soft/vim/vim/spell/el.utf-8.spl | Bin 4076258 -> 0 bytes etc/soft/vim/vim/spell/en.utf-8.spl | Bin 570548 -> 0 bytes etc/soft/vim/vim/spell/ru.utf-8.spl | Bin 837741 -> 0 bytes etc/soft/vim/vim/syntax/abnf.vim | 72 - etc/soft/vim/vim/syntax/alex.vim | 82 - etc/soft/vim/vim/syntax/c.vim | 901 ---- etc/soft/vim/vim/syntax/conf.vim | 115 - etc/soft/vim/vim/syntax/cpp.vim | 68 - etc/soft/vim/vim/syntax/delphi.vim | 146 - etc/soft/vim/vim/syntax/erlang.vim | 134 - etc/soft/vim/vim/syntax/graphviz.vim | 115 - etc/soft/vim/vim/syntax/happy.vim | 81 - etc/soft/vim/vim/syntax/haskell.vim | 577 --- etc/soft/vim/vim/syntax/html.vim | 190 - etc/soft/vim/vim/syntax/j.vim | 135 - etc/soft/vim/vim/syntax/nmap.vim | 43 - etc/soft/vim/vim/syntax/note.vim | 121 - etc/soft/vim/vim/syntax/octave.vim | 369 -- etc/soft/vim/vim/syntax/perl.vim | 536 -- etc/soft/vim/vim/syntax/prolog.vim | 155 - etc/soft/vim/vim/syntax/rfc.vim | 39 - etc/soft/vim/vim/syntax/rsc.vim | 229 - etc/soft/vim/vim/syntax/rtorrent.vim | 28 - etc/soft/vim/vim/syntax/scheme.vim | 311 -- etc/soft/vim/vim/syntax/tab.vim | 65 - etc/soft/vim/vim/syntax/tcl.vim | 1099 ----- etc/soft/vim/vim/syntax/tcl_critcl.vim | 73 - etc/soft/vim/vim/syntax/tcl_doctools.vim | 44 - etc/soft/vim/vim/syntax/tcl_itcl.vim | 16 - etc/soft/vim/vim/syntax/tcl_snit.vim | 106 - etc/soft/vim/vim/syntax/tcl_sqlite.vim | 33 - etc/soft/vim/vim/syntax/tcl_togl.vim | 11 - etc/soft/vim/vim/syntax/todo.vim | 46 - etc/soft/vim/vim/syntax/txt.vim | 115 - etc/soft/vim/vim/template/cpp.vim | 8 - etc/soft/vim/vim/template/dosbatch.vim | 10 - etc/soft/vim/vim/template/haskell.vim | 3 - etc/soft/vim/vim/template/perl.vim | 5 - etc/soft/vim/vim/template/prolog.vim | 6 - etc/soft/vim/vim/template/rebol.vim | 12 - etc/soft/vim/vim/template/scheme.vim | 7 - etc/soft/vim/vim/template/sh.vim | 5 - etc/soft/vim/vim/template/tcl.vim | 23 - etc/soft/vim/vim/template/tex.vim | 120 - etc/soft/vim/vimrc | 901 ---- 2074 files changed, 176633 insertions(+), 176634 deletions(-) create mode 100644 etc/soft/nvim/+ftplugin/c.vim create mode 100644 etc/soft/nvim/+ftplugin/cpp.vim create mode 100644 etc/soft/nvim/+ftplugin/dockerfile.vim create mode 100644 etc/soft/nvim/+ftplugin/erlang.vim create mode 100644 etc/soft/nvim/+ftplugin/go.vim create mode 100644 etc/soft/nvim/+ftplugin/graphviz.vim create mode 100644 etc/soft/nvim/+ftplugin/haskell.vim create mode 100644 etc/soft/nvim/+ftplugin/html.vim create mode 100755 etc/soft/nvim/+ftplugin/install.sh create mode 100644 etc/soft/nvim/+ftplugin/lisp.vim create mode 100644 etc/soft/nvim/+ftplugin/markdown.vim create mode 100644 etc/soft/nvim/+ftplugin/ocaml.vim create mode 100644 etc/soft/nvim/+ftplugin/pascal.vim create mode 100644 etc/soft/nvim/+ftplugin/perl.vim create mode 100644 etc/soft/nvim/+ftplugin/prolog.vim create mode 100644 etc/soft/nvim/+ftplugin/racket.vim create mode 100644 etc/soft/nvim/+ftplugin/rename.vim create mode 100644 etc/soft/nvim/+ftplugin/scheme.vim create mode 100644 etc/soft/nvim/+ftplugin/sh.vim create mode 100644 etc/soft/nvim/+ftplugin/tcl.vim create mode 100644 etc/soft/nvim/+ftplugin/tex.vim create mode 100644 etc/soft/nvim/+ftplugin/vb.vim create mode 100644 etc/soft/nvim/+ftplugin/vimwiki.vim create mode 100644 etc/soft/nvim/+layouts/greek.vim create mode 100644 etc/soft/nvim/+layouts/russian.vim create mode 100644 etc/soft/nvim/+omnicompletion/tcl/TclCompletion.vim create mode 100644 etc/soft/nvim/+plugins/MRU/plugin/mru.vim create mode 100644 etc/soft/nvim/+plugins/ansible-vim/LICENSE create mode 100644 etc/soft/nvim/+plugins/ansible-vim/README.md create mode 100644 etc/soft/nvim/+plugins/ansible-vim/UltiSnips/.gitignore create mode 100644 etc/soft/nvim/+plugins/ansible-vim/UltiSnips/README.md create mode 100755 etc/soft/nvim/+plugins/ansible-vim/UltiSnips/generate.py create mode 100644 etc/soft/nvim/+plugins/ansible-vim/ftdetect/ansible.vim create mode 100644 etc/soft/nvim/+plugins/ansible-vim/ftplugin/ansible.vim create mode 100644 etc/soft/nvim/+plugins/ansible-vim/ftplugin/ansible_hosts.vim create mode 100644 etc/soft/nvim/+plugins/ansible-vim/indent/ansible.vim create mode 100644 etc/soft/nvim/+plugins/ansible-vim/syntax/ansible.vim create mode 100644 etc/soft/nvim/+plugins/ansible-vim/syntax/ansible_hosts.vim create mode 100644 etc/soft/nvim/+plugins/ansible-vim/syntax/jinja2.vim create mode 100644 etc/soft/nvim/+plugins/ansible-vim/syntax/jinja2.vim_LICENSE create mode 100644 etc/soft/nvim/+plugins/autoloadTemplate/plugin/autoloadTemplate.vim create mode 100644 etc/soft/nvim/+plugins/calendar/autoload/calendar.vim create mode 100644 etc/soft/nvim/+plugins/calendar/doc/calendar.txt create mode 100644 etc/soft/nvim/+plugins/calendar/plugin/calendar.vim create mode 100644 etc/soft/nvim/+plugins/cheat.sh-vim/Licence.txt create mode 100644 etc/soft/nvim/+plugins/cheat.sh-vim/Readme.md create mode 100644 etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat.vim create mode 100644 etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/frameworks.vim create mode 100644 etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/providers.vim create mode 100644 etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/providers/quickfix.vim create mode 100644 etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/providers/syntastic.vim create mode 100644 etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/requests.vim create mode 100644 etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/session.vim create mode 100644 etc/soft/nvim/+plugins/cheat.sh-vim/doc/cheat.txt create mode 100644 etc/soft/nvim/+plugins/cheat.sh-vim/plugin/cheat.vim create mode 100755 etc/soft/nvim/+plugins/cheat.sh-vim/scripts/chtpager.sh create mode 100644 etc/soft/nvim/+plugins/cmdline_increment/plugin/cmdline-increment.vim create mode 100644 etc/soft/nvim/+plugins/commentToggle/plugin/commentToggle.patch create mode 100644 etc/soft/nvim/+plugins/commentToggle/plugin/commentToggle.vim create mode 100644 etc/soft/nvim/+plugins/delimitMate/Makefile create mode 100644 etc/soft/nvim/+plugins/delimitMate/README.md create mode 100644 etc/soft/nvim/+plugins/delimitMate/autoload/delimitMate.vim create mode 100644 etc/soft/nvim/+plugins/delimitMate/doc/delimitMate.txt create mode 100644 etc/soft/nvim/+plugins/delimitMate/plugin/delimitMate.vim create mode 100644 etc/soft/nvim/+plugins/delimitMate/test/README create mode 100644 etc/soft/nvim/+plugins/delimitMate/test/_setup.vim create mode 100644 etc/soft/nvim/+plugins/delimitMate/test/autoclose_matchpairs.txt create mode 100644 etc/soft/nvim/+plugins/delimitMate/test/autoclose_matchpairs.vim create mode 100644 etc/soft/nvim/+plugins/delimitMate/test/autoclose_quotes.txt create mode 100644 etc/soft/nvim/+plugins/delimitMate/test/autoclose_quotes.vim create mode 100644 etc/soft/nvim/+plugins/delimitMate/test/expand_cr.txt create mode 100644 etc/soft/nvim/+plugins/delimitMate/test/expand_cr.vim create mode 100644 etc/soft/nvim/+plugins/delimitMate/test/expand_space.txt create mode 100644 etc/soft/nvim/+plugins/delimitMate/test/expand_space.vim create mode 100644 etc/soft/nvim/+plugins/errormarker/doc/errormarker.txt create mode 100644 etc/soft/nvim/+plugins/errormarker/errormarker_origin.vim create mode 100644 etc/soft/nvim/+plugins/errormarker/plugin/errormarker.vim create mode 100644 etc/soft/nvim/+plugins/filetype_completion/plugin/filetype-completion.vim create mode 100644 etc/soft/nvim/+plugins/goyo.vim/README.md create mode 100644 etc/soft/nvim/+plugins/goyo.vim/autoload/goyo.vim create mode 100644 etc/soft/nvim/+plugins/goyo.vim/doc/goyo.txt create mode 100644 etc/soft/nvim/+plugins/goyo.vim/plugin/goyo.vim create mode 100644 etc/soft/nvim/+plugins/help+src/plugin/help+src.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/Makefile create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/README.md create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/after/syntax/coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/after/syntax/html.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/after/syntax/javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/after/syntax/ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/after/syntax/typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/jslibsyntax.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularjs.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularjs.html.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularjs.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularjs.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularjs.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularui.html.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularuirouter.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularuirouter.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularuirouter.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularuirouter.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/backbone.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/backbone.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/backbone.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/backbone.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/chai.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/chai.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/chai.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/chai.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/flux.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/flux.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/flux.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/flux.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/handlebars.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/handlebars.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/handlebars.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/handlebars.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jasmine.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jasmine.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jasmine.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jasmine.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jquery.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jquery.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jquery.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jquery.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/postprocess.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/postprocess.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/postprocess.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/postprocess.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/prelude.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/prelude.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/prelude.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/prelude.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/react.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/react.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/react.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/react.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/requirejs.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/requirejs.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/requirejs.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/requirejs.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/sugar.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/sugar.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/sugar.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/sugar.typescript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/underscore.coffee.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/underscore.javascript.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/underscore.ls.vim create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/underscore.typescript.vim create mode 100755 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/update.sh create mode 100644 etc/soft/nvim/+plugins/javascript-libraries-syntax.vim/config.mk create mode 100644 etc/soft/nvim/+plugins/look-up/README.md create mode 100644 etc/soft/nvim/+plugins/look-up/look-up.png create mode 100644 etc/soft/nvim/+plugins/look-up/plugin/look-up.vim create mode 100644 etc/soft/nvim/+plugins/look-up/syntax/dict.vim create mode 100644 etc/soft/nvim/+plugins/matchit/doc/matchit.txt create mode 100644 etc/soft/nvim/+plugins/matchit/plugin/matchit.vim create mode 100644 etc/soft/nvim/+plugins/neomake/.circleci/config.yml create mode 100644 etc/soft/nvim/+plugins/neomake/.coveragerc create mode 100644 etc/soft/nvim/+plugins/neomake/.dockerignore create mode 100644 etc/soft/nvim/+plugins/neomake/.vintrc.yaml create mode 100644 etc/soft/nvim/+plugins/neomake/Dockerfile.tests create mode 100644 etc/soft/nvim/+plugins/neomake/LICENSE create mode 100644 etc/soft/nvim/+plugins/neomake/Makefile create mode 100644 etc/soft/nvim/+plugins/neomake/README.md create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/action_queue.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/cmd.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/compat.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/config.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/configure.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/core.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/debug.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/highlights.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/jobinfo.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/list.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/log.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/cabal.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/clippy.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/ada.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/angular.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/ansible.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/apiblueprint.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/applescript.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/asciidoc.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/beancount.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/bib.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/c.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/cf3.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/chef.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/coffee.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/cpp.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/crystal.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/cs.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/css.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/cuda.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/d.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/docbk.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/dockerfile.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/elixir.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/elm.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/erlang.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/fish.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/fortran.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/go.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/haml.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/haskell.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/haxe.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/help.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/html.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/idris.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/jade.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/jasmine.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/java.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/java/classpath.gradle create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/java/classpath.py create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/javascript.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/json.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/jsx.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/julia.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/kotlin.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/less.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/lex.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/lua.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/mail.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/markdown.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/matlab.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/moon.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/neomake_tests.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/nim.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/nix.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/node.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/objc.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/pandoc.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/perl.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/php.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/proto.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/pug.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/puppet.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/purescript.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/python.vim create mode 100755 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/python/compile.py create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/r.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/racket.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/rst.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/ruby.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/rust.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/scala.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/scss.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/serpent.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/sh.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/slim.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/sml.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/solidity.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/spar.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/spec.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/sql.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/stylus.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/swift.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/tcl.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/tex.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/text.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/toml.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/tsx.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/typescript.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/verilog.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/vhdl.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/vim.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/vue.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/xml.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/xslt.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/yacc.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/yaml.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/ft/zsh.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/gradle.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/mvn.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/makers/sbt.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/postprocess.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/quickfix.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/setup.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/signs.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/statusline.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/utils.vim create mode 100644 etc/soft/nvim/+plugins/neomake/autoload/neomake/virtualtext.vim create mode 100755 etc/soft/nvim/+plugins/neomake/contrib/highlight-log create mode 100755 etc/soft/nvim/+plugins/neomake/contrib/run-tests-watch create mode 100755 etc/soft/nvim/+plugins/neomake/contrib/vim-checks create mode 100755 etc/soft/nvim/+plugins/neomake/contrib/vimhelplint create mode 100644 etc/soft/nvim/+plugins/neomake/doc/neomake.txt create mode 100644 etc/soft/nvim/+plugins/neomake/plugin/neomake.vim create mode 100644 etc/soft/nvim/+plugins/neomake/syntax/neomake/python.vim create mode 100644 etc/soft/nvim/+plugins/neomake/syntax/neomake/qf.vim create mode 100644 etc/soft/nvim/+plugins/neomake/syntax/qf.vim create mode 100644 etc/soft/nvim/+plugins/neomake/tests/action_queue.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/all.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/args.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/automake.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/cancellation.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/clean.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/cmd_neomakeinfo.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/compat.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/completion.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/config.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/current_error.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/customqf.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/cwd.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/debug.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/env.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/errors.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/filetypes.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/filter_output.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/a filename with spaces create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/errors.py create mode 100755 etc/soft/nvim/+plugins/neomake/tests/fixtures/errors.sh create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/input/puppet-lint/err_and_warn.pp create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/input/puppet/syntax-error-eoi.pp create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/input/puppet/syntax-error.pp create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/input/xmllint/missingdtd.xml create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/input/xmllint/validity-error.xml create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/puppet-lint/err_and_warn.pp.exitcode create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/puppet-lint/err_and_warn.pp.stderr create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/puppet-lint/err_and_warn.pp.stdout create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/puppet/syntax-error-eoi.pp.exitcode create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/puppet/syntax-error-eoi.pp.stderr create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/puppet/syntax-error-eoi.pp.stdout create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/puppet/syntax-error.pp.exitcode create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/puppet/syntax-error.pp.stderr create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/puppet/syntax-error.pp.stdout create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/xmllint/missingdtd.xml.exitcode create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/xmllint/missingdtd.xml.stderr create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/xmllint/missingdtd.xml.stdout create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/xmllint/validity-error.xml.exitcode create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/xmllint/validity-error.xml.stderr create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/xmllint/validity-error.xml.stdout create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/zsh/parse-error.zsh.exitcode create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/zsh/parse-error.zsh.stderr create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/output/zsh/parse-error.zsh.stdout create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/rust/cargo_error.json create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/rust/cargo_error_children.json create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/rust/cargo_error_primary_span.json create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/rust/cargo_error_without_span.json create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/rust/cargo_info.json create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/rust/cargo_warning.json create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/rust/cargotest_with_failures create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/vim/func-with-errors.vim create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/vim/func-with-errors.vim.output create mode 100644 etc/soft/nvim/+plugins/neomake/tests/fixtures/~ create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_asciidoc.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_cs.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_css.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_elixir.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_elm.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_erlang.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_go.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_haskell.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_html.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_idris.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_javascript.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_markdown.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_perl.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_php.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_puppet.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_purescript.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_python.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_rst.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_rust.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_sh.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_sql.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_text.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_typescript.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_vim.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/ft_xml.vader create mode 100755 etc/soft/nvim/+plugins/neomake/tests/helpers/trap.sh create mode 100644 etc/soft/nvim/+plugins/neomake/tests/highlights.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/hooks-queue.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/hooks.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/include/init.vim create mode 100644 etc/soft/nvim/+plugins/neomake/tests/include/setup.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/integration.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/compat-get_argv-on-emulated-windows.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/completion-handles-throw.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/configure.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/customqf.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/ft_help.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/ft_vim.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/highlights.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/logging.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/modes.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/resets-ignore_automake_events.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/sign-highlights.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/signs.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/statusline-highlights.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/isolated/tempfiles-cleanup.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/jobinfo.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/json.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/list-entries.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/list.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/lists.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/log.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/main.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/makeprg.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/maker_errors.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/makers.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/mapexpr.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/postprocess.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/processing.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/serialize.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/signs.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/statusline.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/stdin.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/tempfiles.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/toggle.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/utils.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/utils_projectroot.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/verbosity.vader create mode 100644 etc/soft/nvim/+plugins/neomake/tests/vim/vimrc create mode 100644 etc/soft/nvim/+plugins/neomake/tests/vim_and_neovim_behavior.vader create mode 100644 etc/soft/nvim/+plugins/nnn.vim/LICENSE create mode 100644 etc/soft/nvim/+plugins/nnn.vim/README.md create mode 100644 etc/soft/nvim/+plugins/nnn.vim/autoload/nnn.vim create mode 100644 etc/soft/nvim/+plugins/nnn.vim/doc/nnn.txt create mode 100644 etc/soft/nvim/+plugins/nnn.vim/ftplugin/nnn.vim create mode 100644 etc/soft/nvim/+plugins/nnn.vim/plugin/nnn.vim create mode 100644 etc/soft/nvim/+plugins/pummode/autoload/pummode.vim create mode 100644 etc/soft/nvim/+plugins/pummode/doc/pummode.txt create mode 100644 etc/soft/nvim/+plugins/rainbow/plugin/RainbowParenthsis.vim create mode 100644 etc/soft/nvim/+plugins/rainbow/rainbow.patch create mode 100644 etc/soft/nvim/+plugins/tasklist/plugin/tasklist.vim create mode 100644 etc/soft/nvim/+plugins/timestamp/doc/timestamp.txt create mode 100644 etc/soft/nvim/+plugins/timestamp/plugin/timestamp.vim create mode 100644 etc/soft/nvim/+plugins/toggle/plugin/toggle.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/.gitignore create mode 100644 etc/soft/nvim/+plugins/vim-airline/.travis.yml create mode 100644 etc/soft/nvim/+plugins/vim-airline/Gemfile create mode 100644 etc/soft/nvim/+plugins/vim-airline/LICENSE create mode 100644 etc/soft/nvim/+plugins/vim-airline/README.md create mode 100644 etc/soft/nvim/+plugins/vim-airline/Rakefile create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/builder.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/debug.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/deprecation.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/branch.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/bufferline.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/commandt.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/csv.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/ctrlp.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/default.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/eclim.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/example.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/hunks.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/syntastic.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/tabline.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/tabline/formatters.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/tagbar.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/undotree.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/unite.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/virtualenv.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/extensions/whitespace.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/highlighter.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/init.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/parts.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/section.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/alduin.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/angr.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/atomic.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/aurora.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/ayu_dark.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/ayu_light.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/ayu_mirage.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/badcat.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/badwolf.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/base16.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/base16color.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/behelit.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/biogoo.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/bubblegum.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/cobalt2.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/cool.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/dark.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/dark_minimal.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/desertink.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/deus.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/distinguished.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/dracula.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/durant.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/fairyfloss.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/fruit_punch.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/hybrid.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/hybridline.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/jellybeans.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/jet.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/kalisi.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/kolor.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/laederon.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/light.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/lucius.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/luna.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/minimalist.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/molokai.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/monochrome.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/murmur.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/night_owl.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/onedark.vim create mode 100755 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/ouo.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/papercolor.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/peaksea.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/powerlineish.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/qwq.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/raven.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/ravenpower.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/seagull.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/serene.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/sierra.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/silver.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/simple.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/soda.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/sol.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/solarized.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/solarized_flood.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/term.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/term_light.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/tomorrow.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/ubaryd.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/understated.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/vice.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/violet.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/wombat.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/xtermlight.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/themes/zenburn.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/autoload/airline/util.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/doc/airline.txt create mode 100644 etc/soft/nvim/+plugins/vim-airline/plugin/airline.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/t/airline.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/t/builder.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/t/commands.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/t/extensions_default.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/t/highlighter.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/t/init.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/t/parts.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/t/section.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/t/themes.vim create mode 100644 etc/soft/nvim/+plugins/vim-airline/t/util.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/Gemfile create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/README.md create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/Rakefile create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/EasyMotion.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/EasyMotion/cmigemo.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/EasyMotion/command_line.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/EasyMotion/helper.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/EasyMotion/highlight.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/EasyMotion/migemo/cp932.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/EasyMotion/migemo/eucjp.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/EasyMotion/migemo/utf8.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/EasyMotion/overwin.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/EasyMotion/sticky_table.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/EasyMotion/undo.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Data/Dict.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Data/List.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Data/Set.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/HitAHint/Hint.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/HitAHint/Motion.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Base.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/BufferComplete.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/Cancel.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/CursorMove.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/Delete.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/Doautocmd.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/DrawCommandline.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/ExceptionExit.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/ExceptionMessage.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/Exit.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/History.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/InsertRegister.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/KeyMapping.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/NoInsert.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/Paste.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/Redraw.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Exception.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Input.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Keymapping.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Signals.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/String.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Palette/Capture.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Palette/Highlight.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Palette/Keymapping.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Prelude.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Vim/Buffer.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Vim/Guard.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/_easymotion/Vim/Message.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/easymotion.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/autoload/vital/easymotion.vital create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/doc/easymotion.txt create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/plugin/EasyMotion.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/t/compare_movements_spec.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/t/easymotion_spec.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/t/operator_pending_spec.vim create mode 100644 etc/soft/nvim/+plugins/vim-easymotion/t/smartsign_spec.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/Makefile create mode 100644 etc/soft/nvim/+plugins/vim-emmet/README.mkd create mode 100644 etc/soft/nvim/+plugins/vim-emmet/TODO create mode 100644 etc/soft/nvim/+plugins/vim-emmet/TUTORIAL create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet/lang.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet/lang/css.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet/lang/haml.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet/lang/html.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet/lang/jade.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet/lang/less.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet/lang/sass.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet/lang/scss.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet/lang/slim.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet/lorem/en.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet/lorem/ja.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/autoload/emmet/util.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/doc/emmet.txt create mode 100644 etc/soft/nvim/+plugins/vim-emmet/doc/screenshot.gif create mode 100644 etc/soft/nvim/+plugins/vim-emmet/emmet.vim.vimup create mode 100644 etc/soft/nvim/+plugins/vim-emmet/plugin/emmet.vim create mode 100644 etc/soft/nvim/+plugins/vim-emmet/unittest.vim create mode 100644 etc/soft/nvim/+plugins/vim-enter-indent/README.md create mode 100644 etc/soft/nvim/+plugins/vim-enter-indent/plugin/enter-indent.vim create mode 100644 etc/soft/nvim/+plugins/vim-haskellConceal/README create mode 100644 etc/soft/nvim/+plugins/vim-haskellConceal/after/syntax/haskell.vim create mode 100644 etc/soft/nvim/+plugins/vim-liquid/ftdetect/liquid.vim create mode 100644 etc/soft/nvim/+plugins/vim-liquid/ftplugin/liquid.vim create mode 100644 etc/soft/nvim/+plugins/vim-liquid/indent/liquid.vim create mode 100644 etc/soft/nvim/+plugins/vim-liquid/syntax/liquid.vim create mode 100644 etc/soft/nvim/+plugins/vim-quickhl/README.md create mode 100644 etc/soft/nvim/+plugins/vim-quickhl/Rakefile create mode 100644 etc/soft/nvim/+plugins/vim-quickhl/VERSION create mode 100644 etc/soft/nvim/+plugins/vim-quickhl/autoload/quickhl.vim create mode 100644 etc/soft/nvim/+plugins/vim-quickhl/doc/quickhl.txt create mode 100644 etc/soft/nvim/+plugins/vim-quickhl/plugin/quickhl.vim create mode 100644 etc/soft/nvim/+plugins/vim-repeat/README.markdown create mode 100644 etc/soft/nvim/+plugins/vim-repeat/autoload/repeat.vim create mode 100644 etc/soft/nvim/+plugins/vim-speeddating/README.markdown create mode 100644 etc/soft/nvim/+plugins/vim-speeddating/autoload/speeddating.vim create mode 100644 etc/soft/nvim/+plugins/vim-speeddating/doc/speeddating.txt create mode 100644 etc/soft/nvim/+plugins/vim-speeddating/plugin/speeddating.vim create mode 100644 etc/soft/nvim/+plugins/vim-startify/CONTRIBUTING.md create mode 100644 etc/soft/nvim/+plugins/vim-startify/LICENSE create mode 100644 etc/soft/nvim/+plugins/vim-startify/README.md create mode 100644 etc/soft/nvim/+plugins/vim-startify/autoload/startify.vim create mode 100644 etc/soft/nvim/+plugins/vim-startify/autoload/startify/fortune.vim create mode 100644 etc/soft/nvim/+plugins/vim-startify/doc/startify.txt create mode 100644 etc/soft/nvim/+plugins/vim-startify/images/startify-logo.png create mode 100644 etc/soft/nvim/+plugins/vim-startify/images/startify-menu.png create mode 100644 etc/soft/nvim/+plugins/vim-startify/plugin/startify.vim create mode 100644 etc/soft/nvim/+plugins/vim-startify/syntax/startify.vim create mode 100644 etc/soft/nvim/+plugins/vim-startify/test/feature/buffer.vader create mode 100644 etc/soft/nvim/+plugins/vim-startify/test/feature/mapping.vader create mode 100644 etc/soft/nvim/+plugins/vim-startify/test/feature/session.vader create mode 100644 etc/soft/nvim/+plugins/vim-startify/test/include/testfile.txt create mode 100755 etc/soft/nvim/+plugins/vim-startify/test/run create mode 100644 etc/soft/nvim/+plugins/vim-startify/test/session/.gitkeep create mode 100644 etc/soft/nvim/+plugins/vim-startify/test/viminfo create mode 100644 etc/soft/nvim/+plugins/vim-startify/test/vimrc create mode 100644 etc/soft/nvim/+plugins/vim-surround/README.markdown create mode 100644 etc/soft/nvim/+plugins/vim-surround/doc/surround.txt create mode 100644 etc/soft/nvim/+plugins/vim-surround/plugin/surround.vim create mode 100644 etc/soft/nvim/+plugins/vimwiki/autoload/vimwiki/base.vim create mode 100644 etc/soft/nvim/+plugins/vimwiki/autoload/vimwiki/default.tpl create mode 100644 etc/soft/nvim/+plugins/vimwiki/autoload/vimwiki/diary.vim create mode 100644 etc/soft/nvim/+plugins/vimwiki/autoload/vimwiki/html.vim create mode 100644 etc/soft/nvim/+plugins/vimwiki/autoload/vimwiki/lst.vim create mode 100644 etc/soft/nvim/+plugins/vimwiki/autoload/vimwiki/style.css create mode 100644 etc/soft/nvim/+plugins/vimwiki/autoload/vimwiki/tbl.vim create mode 100644 etc/soft/nvim/+plugins/vimwiki/doc/vimwiki.txt create mode 100644 etc/soft/nvim/+plugins/vimwiki/ftplugin/vimwiki.vim create mode 100644 etc/soft/nvim/+plugins/vimwiki/plugin/vimwiki.vim create mode 100644 etc/soft/nvim/+plugins/vimwiki/syntax/vimwiki.vim create mode 100644 etc/soft/nvim/+plugins/vimwiki/syntax/vimwiki_default.vim create mode 100644 etc/soft/nvim/+plugins/vimwiki/syntax/vimwiki_media.vim create mode 100644 etc/soft/nvim/+plugins/yankring/doc/yankring.txt create mode 100644 etc/soft/nvim/+plugins/yankring/plugin/yankring.vim create mode 100644 etc/soft/nvim/+plugins/yankring/yankring.vim create mode 100644 etc/soft/nvim/+plugins_disabled/AnsiESC/README.md create mode 100644 etc/soft/nvim/+plugins_disabled/AnsiESC/autoload/AnsiEsc.vim create mode 100644 etc/soft/nvim/+plugins_disabled/AnsiESC/doc/AnsiEsc.txt create mode 100644 etc/soft/nvim/+plugins_disabled/AnsiESC/plugin/AnsiEscPlugin.vim create mode 100644 etc/soft/nvim/+plugins_disabled/AnsiESC/plugin/cecutil.vim create mode 100644 etc/soft/nvim/+plugins_disabled/Join/README.md create mode 100644 etc/soft/nvim/+plugins_disabled/Join/doc/Join.txt create mode 100644 etc/soft/nvim/+plugins_disabled/Join/plugin/Join.vim create mode 100644 etc/soft/nvim/+plugins_disabled/fff.vim/LICENSE.md create mode 100644 etc/soft/nvim/+plugins_disabled/fff.vim/README.md create mode 100644 etc/soft/nvim/+plugins_disabled/fff.vim/autoload/fff.vim create mode 100644 etc/soft/nvim/+plugins_disabled/fff.vim/plugin/fff.vim create mode 100644 etc/soft/nvim/+plugins_disabled/figlet/plugin/Figlet.vim create mode 100644 etc/soft/nvim/+plugins_disabled/format_helper/README.txt create mode 100644 etc/soft/nvim/+plugins_disabled/format_helper/format_helper.patch create mode 100644 etc/soft/nvim/+plugins_disabled/format_helper/plugin/format_helper.vim create mode 100644 etc/soft/nvim/+plugins_disabled/functionator/functionator.patch create mode 100644 etc/soft/nvim/+plugins_disabled/functionator/plugin/functionator.vim create mode 100644 etc/soft/nvim/+plugins_disabled/lispcomplete/autoload/lispcomplete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/marks_corey/marks_corey.patch create mode 100644 etc/soft/nvim/+plugins_disabled/marks_corey/plugin/marks_corey.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/README.md create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/async_cache.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/cache.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/commands.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/context_filetype.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_abbr.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_case.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_delimiter.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_nothing.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_remove_next_keyword.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_fuzzy.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_head.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_old.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_length.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_nothing.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_rank.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/handler.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/helper.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/init.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/mappings.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/buffer_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/dictionary_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/filename_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/filename_include.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/include_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/member_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/omni_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/syntax_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/tags_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/autocmds.dict create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_args.dict create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_completions.dict create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_prototypes.dict create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_replaces.dict create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/commands.dict create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/features.dict create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/functions.dict create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/helper.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/mappings.dict create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/options.dict create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/variables.dict create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/util.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/variables.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/unite/sources/file_include.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/unite/sources/neocomplcache.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/vital.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/vital/_a20a988.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/vital/_a20a988/Data/List.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/vital/_a20a988/Data/String.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/vital/_a20a988/Prelude.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/vital/_a20a988/System/Cache.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/vital/neocomplcache.vital create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/doc/neocomplcache.txt create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/buffer_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/dictionary_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/include_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/syntax_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/tags_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neocomplcache.vim/vest/test-neocomplcache.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/README.md create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neocomplcache/sources/snippets_complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neocomplete/sources/neosnippet.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/Gemfile.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/_.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/actionscript.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/apache.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/applescript.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/c.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/clojure.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/coffee.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/cpp.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/css.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/d.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/erlang.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/eruby.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/go.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/groovy.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/haskell.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/html.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/java.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/javascript.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/kp19pp.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/liquid.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/lua.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/make.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/markdown.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/mediawiki.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/objc.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/perl.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/php.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/python.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/rails.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/rst.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/ruby.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/scala.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/scheme.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/sh.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/snippet.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/sql.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/sshconfig.snip create mode 120000 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/tcl.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/tex.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/vim.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/vim/vital.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/vimshell.snip create mode 120000 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/vimwiki.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/xhtml.snip create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/util.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/unite/sources/neosnippet_file.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/unite/sources/snippet.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/unite/sources/snippet_target.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/vital.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/vital/_de83b96.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/vital/_de83b96/Prelude.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/vital/neosnippet.vital create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/doc/neosnippet.txt create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/ftdetect/snippet.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/ftplugin/snippet.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/indent/snippet.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/plugin/neosnippet.vim create mode 100644 etc/soft/nvim/+plugins_disabled/neosnippet.vim/syntax/snippet.vim create mode 100644 etc/soft/nvim/+plugins_disabled/tablify/README.md create mode 100644 etc/soft/nvim/+plugins_disabled/tablify/doc/tablify.txt create mode 100644 etc/soft/nvim/+plugins_disabled/tablify/plugin/tablify.vim create mode 100644 etc/soft/nvim/+plugins_disabled/taglist/doc/taglist.txt create mode 100644 etc/soft/nvim/+plugins_disabled/taglist/plugin/taglist.vim create mode 100644 etc/soft/nvim/+plugins_disabled/textmanip/autoload/textmanip.vim create mode 100644 etc/soft/nvim/+plugins_disabled/textmanip/doc/textmanip.txt create mode 100644 etc/soft/nvim/+plugins_disabled/textmanip/plugin/textmanip.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vCoolor/autoload/vcoolor/convert.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vCoolor/autoload/vcoolor/misc.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vCoolor/doc/vCoolor.txt create mode 100755 etc/soft/nvim/+plugins_disabled/vCoolor/pickers/osx/color-picker create mode 100644 etc/soft/nvim/+plugins_disabled/vCoolor/plugin/vCoolor.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vicle/plugin/vicle.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/EXAMPLES.md create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/README.md create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/autoload/easy_align.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/doc/easy_align.txt create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/plugin/easy_align.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/test/basic.expected create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/test/basic.md create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/test/basic.script create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/test/include.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/test/regexp.expected create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/test/regexp.md create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/test/regexp.script create mode 100644 etc/soft/nvim/+plugins_disabled/vim-easy-align/test/run.vim create mode 100755 etc/soft/nvim/+plugins_disabled/vim-easy-align/zip create mode 160000 etc/soft/nvim/+plugins_disabled/vim-fugitive create mode 100644 etc/soft/nvim/+plugins_disabled/vim-racket/README.md create mode 100644 etc/soft/nvim/+plugins_disabled/vim-racket/ftdetect/racket.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vim-racket/ftplugin/racket.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vim-racket/indent/racket.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vim-racket/syntax/racket.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vim-racket/test/delimiters.rkt create mode 100644 etc/soft/nvim/+plugins_disabled/vim-racket/test/number-syntax-test.rkt create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/README create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/args.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/complete.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/completers.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/file.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/list.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/loclist.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/ml/bayes.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/ml/porter.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/overlay.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/parse/ini.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/quickfix.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/regex.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/rng.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/scope.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/scripts.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/string.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/variable.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/vimple.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/vimple/abbreviations.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/vimple/comparators.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/vimple/highlight.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/vimple/history.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/vimple/ls.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/vimple/map.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/vimple/marks.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/vimple/options.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/vimple/scriptnames.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/vimple/undolist.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/autoload/vimple/version.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/demo/bufgrep.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/demo/calendar.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/demo/changelist.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/demo/global_marks.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/demo/helptoc.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/demo/iabbrevs.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/demo/identsearch.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/demo/jumplist.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/demo/oldfiles.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/demo/spellsuggest.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/demo/tagkinds.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/demo/tagsearch.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/doc/vimple.txt create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/doc/vimple_ls.txt create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/ftplugin/python_scope.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/ftplugin/vim_scope.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/plugin/vimple.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/syntax/vimple_jumplist.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/Makefile create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/README create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/_setup.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/buffer_list.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/ini_001.ini create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/ini_001_out.ini create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/ini_002.ini create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/ini_002_out.ini create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/parse_ini_001.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/parse_ini_002.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/string001.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/vimple001.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimple/test/vimple002.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimwiki/autoload/vimwiki.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimwiki/autoload/vimwiki_diary.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimwiki/autoload/vimwiki_html.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimwiki/autoload/vimwiki_lst.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimwiki/autoload/vimwiki_tbl.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimwiki/doc/vimwiki.txt create mode 100644 etc/soft/nvim/+plugins_disabled/vimwiki/ftplugin/vimwiki.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimwiki/plugin/vimwiki.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimwiki/syntax/vimwiki.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimwiki/syntax/vimwiki_default.vim create mode 100644 etc/soft/nvim/+plugins_disabled/vimwiki/syntax/vimwiki_media.vim create mode 100755 etc/soft/nvim/+scripts/declarations/perl create mode 100755 etc/soft/nvim/+scripts/declarations/prolog create mode 100755 etc/soft/nvim/+scripts/declarations/rebol create mode 100755 etc/soft/nvim/+scripts/declarations/scheme create mode 100755 etc/soft/nvim/+scripts/declarations/sh create mode 100755 etc/soft/nvim/+scripts/declarations/tcl create mode 100755 etc/soft/nvim/+scripts/sources/getTclSrc create mode 100755 etc/soft/nvim/+snippets/install.sh create mode 100644 etc/soft/nvim/+snippets/tcl.snip create mode 100644 etc/soft/nvim/+snippets/vimwiki.snip create mode 100644 etc/soft/nvim/after/syntax/c.vim create mode 100644 etc/soft/nvim/after/syntax/css.vim create mode 100644 etc/soft/nvim/autoload/pathogen.vim create mode 100644 etc/soft/nvim/colors/OneHalfDark.vim create mode 100644 etc/soft/nvim/colors/OneHalfLight.vim create mode 100644 etc/soft/nvim/colors/PaperColor.vim create mode 100644 etc/soft/nvim/colors/forgotten-light.vim create mode 100644 etc/soft/nvim/colors/wombat.vim create mode 100644 etc/soft/nvim/colors/wombat256.vim create mode 100644 etc/soft/nvim/colors/wombat256mod.vim create mode 100644 etc/soft/nvim/colors/wombat_converted.vim create mode 100644 etc/soft/nvim/compiler/tex.vim create mode 100644 etc/soft/nvim/dic/sh create mode 100644 etc/soft/nvim/dic/tcl create mode 100644 etc/soft/nvim/doc/git-cheat.txt create mode 100644 etc/soft/nvim/doc/latexhelp.txt create mode 100644 etc/soft/nvim/doc/regexpref.txt create mode 100644 etc/soft/nvim/ftdetect/detect.vim create mode 120000 etc/soft/nvim/ftplugin/c/c.custom.vim create mode 120000 etc/soft/nvim/ftplugin/cpp/cpp.custom.vim create mode 120000 etc/soft/nvim/ftplugin/dockerfile/dockerfile.custom.vim create mode 120000 etc/soft/nvim/ftplugin/erlang/erlang.custom.vim create mode 120000 etc/soft/nvim/ftplugin/go/go.custom.vim create mode 120000 etc/soft/nvim/ftplugin/graphviz/graphviz.custom.vim create mode 120000 etc/soft/nvim/ftplugin/haskell/haskell.custom.vim create mode 120000 etc/soft/nvim/ftplugin/html/html.custom.vim create mode 120000 etc/soft/nvim/ftplugin/lisp/lisp.custom.vim create mode 120000 etc/soft/nvim/ftplugin/markdown/markdown.custom.vim create mode 120000 etc/soft/nvim/ftplugin/ocaml/ocaml.custom.vim create mode 120000 etc/soft/nvim/ftplugin/pascal/pascal.custom.vim create mode 120000 etc/soft/nvim/ftplugin/perl/perl.custom.vim create mode 120000 etc/soft/nvim/ftplugin/prolog/prolog.custom.vim create mode 120000 etc/soft/nvim/ftplugin/racket/racket.custom.vim create mode 120000 etc/soft/nvim/ftplugin/rename/rename.custom.vim create mode 120000 etc/soft/nvim/ftplugin/scheme/scheme.custom.vim create mode 120000 etc/soft/nvim/ftplugin/sh/sh.custom.vim create mode 120000 etc/soft/nvim/ftplugin/tcl/tcl.custom.vim create mode 120000 etc/soft/nvim/ftplugin/tex/tex.custom.vim create mode 120000 etc/soft/nvim/ftplugin/vb/vb.custom.vim create mode 120000 etc/soft/nvim/ftplugin/vimwiki/vimwiki.custom.vim create mode 100644 etc/soft/nvim/indent/erlang.vim create mode 100644 etc/soft/nvim/indent/tcl.vim create mode 100644 etc/soft/nvim/spell/el.utf-8.spl create mode 100644 etc/soft/nvim/spell/en.utf-8.spl create mode 100644 etc/soft/nvim/spell/ru.utf-8.spl create mode 100644 etc/soft/nvim/syntax/abnf.vim create mode 100644 etc/soft/nvim/syntax/alex.vim create mode 100644 etc/soft/nvim/syntax/c.vim create mode 100644 etc/soft/nvim/syntax/conf.vim create mode 100644 etc/soft/nvim/syntax/cpp.vim create mode 100644 etc/soft/nvim/syntax/delphi.vim create mode 100644 etc/soft/nvim/syntax/erlang.vim create mode 100644 etc/soft/nvim/syntax/graphviz.vim create mode 100644 etc/soft/nvim/syntax/happy.vim create mode 100644 etc/soft/nvim/syntax/haskell.vim create mode 100644 etc/soft/nvim/syntax/html.vim create mode 100644 etc/soft/nvim/syntax/j.vim create mode 100644 etc/soft/nvim/syntax/nmap.vim create mode 100644 etc/soft/nvim/syntax/note.vim create mode 100644 etc/soft/nvim/syntax/octave.vim create mode 100644 etc/soft/nvim/syntax/perl.vim create mode 100644 etc/soft/nvim/syntax/prolog.vim create mode 100644 etc/soft/nvim/syntax/rfc.vim create mode 100644 etc/soft/nvim/syntax/rsc.vim create mode 100644 etc/soft/nvim/syntax/rtorrent.vim create mode 100644 etc/soft/nvim/syntax/scheme.vim create mode 100644 etc/soft/nvim/syntax/tab.vim create mode 100644 etc/soft/nvim/syntax/tcl.vim create mode 100644 etc/soft/nvim/syntax/tcl_critcl.vim create mode 100644 etc/soft/nvim/syntax/tcl_doctools.vim create mode 100644 etc/soft/nvim/syntax/tcl_itcl.vim create mode 100644 etc/soft/nvim/syntax/tcl_snit.vim create mode 100644 etc/soft/nvim/syntax/tcl_sqlite.vim create mode 100644 etc/soft/nvim/syntax/tcl_togl.vim create mode 100644 etc/soft/nvim/syntax/todo.vim create mode 100644 etc/soft/nvim/syntax/txt.vim create mode 100644 etc/soft/nvim/template/cpp.vim create mode 100644 etc/soft/nvim/template/dosbatch.vim create mode 100644 etc/soft/nvim/template/haskell.vim create mode 100644 etc/soft/nvim/template/perl.vim create mode 100644 etc/soft/nvim/template/prolog.vim create mode 100644 etc/soft/nvim/template/rebol.vim create mode 100644 etc/soft/nvim/template/scheme.vim create mode 100644 etc/soft/nvim/template/sh.vim create mode 100644 etc/soft/nvim/template/tcl.vim create mode 100644 etc/soft/nvim/template/tex.vim create mode 100644 etc/soft/nvim/vim.rc create mode 100644 etc/soft/nvim/vimrc delete mode 100644 etc/soft/vim/vim.rc delete mode 100644 etc/soft/vim/vim/+ftplugin/c.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/cpp.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/dockerfile.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/erlang.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/go.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/graphviz.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/haskell.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/html.vim delete mode 100755 etc/soft/vim/vim/+ftplugin/install.sh delete mode 100644 etc/soft/vim/vim/+ftplugin/lisp.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/markdown.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/ocaml.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/pascal.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/perl.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/prolog.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/racket.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/rename.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/scheme.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/sh.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/tcl.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/tex.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/vb.vim delete mode 100644 etc/soft/vim/vim/+ftplugin/vimwiki.vim delete mode 100644 etc/soft/vim/vim/+layouts/greek.vim delete mode 100644 etc/soft/vim/vim/+layouts/russian.vim delete mode 100644 etc/soft/vim/vim/+omnicompletion/tcl/TclCompletion.vim delete mode 100644 etc/soft/vim/vim/+plugins/MRU/plugin/mru.vim delete mode 100644 etc/soft/vim/vim/+plugins/ansible-vim/LICENSE delete mode 100644 etc/soft/vim/vim/+plugins/ansible-vim/README.md delete mode 100644 etc/soft/vim/vim/+plugins/ansible-vim/UltiSnips/.gitignore delete mode 100644 etc/soft/vim/vim/+plugins/ansible-vim/UltiSnips/README.md delete mode 100755 etc/soft/vim/vim/+plugins/ansible-vim/UltiSnips/generate.py delete mode 100644 etc/soft/vim/vim/+plugins/ansible-vim/ftdetect/ansible.vim delete mode 100644 etc/soft/vim/vim/+plugins/ansible-vim/ftplugin/ansible.vim delete mode 100644 etc/soft/vim/vim/+plugins/ansible-vim/ftplugin/ansible_hosts.vim delete mode 100644 etc/soft/vim/vim/+plugins/ansible-vim/indent/ansible.vim delete mode 100644 etc/soft/vim/vim/+plugins/ansible-vim/syntax/ansible.vim delete mode 100644 etc/soft/vim/vim/+plugins/ansible-vim/syntax/ansible_hosts.vim delete mode 100644 etc/soft/vim/vim/+plugins/ansible-vim/syntax/jinja2.vim delete mode 100644 etc/soft/vim/vim/+plugins/ansible-vim/syntax/jinja2.vim_LICENSE delete mode 100644 etc/soft/vim/vim/+plugins/autoloadTemplate/plugin/autoloadTemplate.vim delete mode 100644 etc/soft/vim/vim/+plugins/calendar/autoload/calendar.vim delete mode 100644 etc/soft/vim/vim/+plugins/calendar/doc/calendar.txt delete mode 100644 etc/soft/vim/vim/+plugins/calendar/plugin/calendar.vim delete mode 100644 etc/soft/vim/vim/+plugins/cheat.sh-vim/Licence.txt delete mode 100644 etc/soft/vim/vim/+plugins/cheat.sh-vim/Readme.md delete mode 100644 etc/soft/vim/vim/+plugins/cheat.sh-vim/autoload/cheat.vim delete mode 100644 etc/soft/vim/vim/+plugins/cheat.sh-vim/autoload/cheat/frameworks.vim delete mode 100644 etc/soft/vim/vim/+plugins/cheat.sh-vim/autoload/cheat/providers.vim delete mode 100644 etc/soft/vim/vim/+plugins/cheat.sh-vim/autoload/cheat/providers/quickfix.vim delete mode 100644 etc/soft/vim/vim/+plugins/cheat.sh-vim/autoload/cheat/providers/syntastic.vim delete mode 100644 etc/soft/vim/vim/+plugins/cheat.sh-vim/autoload/cheat/requests.vim delete mode 100644 etc/soft/vim/vim/+plugins/cheat.sh-vim/autoload/cheat/session.vim delete mode 100644 etc/soft/vim/vim/+plugins/cheat.sh-vim/doc/cheat.txt delete mode 100644 etc/soft/vim/vim/+plugins/cheat.sh-vim/plugin/cheat.vim delete mode 100755 etc/soft/vim/vim/+plugins/cheat.sh-vim/scripts/chtpager.sh delete mode 100644 etc/soft/vim/vim/+plugins/cmdline_increment/plugin/cmdline-increment.vim delete mode 100644 etc/soft/vim/vim/+plugins/commentToggle/plugin/commentToggle.patch delete mode 100644 etc/soft/vim/vim/+plugins/commentToggle/plugin/commentToggle.vim delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/Makefile delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/README.md delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/autoload/delimitMate.vim delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/doc/delimitMate.txt delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/plugin/delimitMate.vim delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/test/README delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/test/_setup.vim delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/test/autoclose_matchpairs.txt delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/test/autoclose_matchpairs.vim delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/test/autoclose_quotes.txt delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/test/autoclose_quotes.vim delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/test/expand_cr.txt delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/test/expand_cr.vim delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/test/expand_space.txt delete mode 100644 etc/soft/vim/vim/+plugins/delimitMate/test/expand_space.vim delete mode 100644 etc/soft/vim/vim/+plugins/errormarker/doc/errormarker.txt delete mode 100644 etc/soft/vim/vim/+plugins/errormarker/errormarker_origin.vim delete mode 100644 etc/soft/vim/vim/+plugins/errormarker/plugin/errormarker.vim delete mode 100644 etc/soft/vim/vim/+plugins/filetype_completion/plugin/filetype-completion.vim delete mode 100644 etc/soft/vim/vim/+plugins/goyo.vim/README.md delete mode 100644 etc/soft/vim/vim/+plugins/goyo.vim/autoload/goyo.vim delete mode 100644 etc/soft/vim/vim/+plugins/goyo.vim/doc/goyo.txt delete mode 100644 etc/soft/vim/vim/+plugins/goyo.vim/plugin/goyo.vim delete mode 100644 etc/soft/vim/vim/+plugins/help+src/plugin/help+src.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/Makefile delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/README.md delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/after/syntax/coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/after/syntax/html.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/after/syntax/javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/after/syntax/ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/after/syntax/typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/jslibsyntax.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularjs.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularjs.html.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularjs.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularjs.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularjs.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularui.html.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularuirouter.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularuirouter.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularuirouter.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/angularuirouter.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/backbone.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/backbone.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/backbone.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/backbone.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/chai.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/chai.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/chai.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/chai.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/flux.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/flux.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/flux.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/flux.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/handlebars.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/handlebars.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/handlebars.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/handlebars.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jasmine.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jasmine.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jasmine.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jasmine.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jquery.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jquery.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jquery.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/jquery.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/postprocess.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/postprocess.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/postprocess.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/postprocess.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/prelude.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/prelude.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/prelude.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/prelude.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/react.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/react.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/react.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/react.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/requirejs.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/requirejs.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/requirejs.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/requirejs.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/sugar.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/sugar.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/sugar.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/sugar.typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/underscore.coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/underscore.javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/underscore.ls.vim delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/underscore.typescript.vim delete mode 100755 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/autoload/syntax/update.sh delete mode 100644 etc/soft/vim/vim/+plugins/javascript-libraries-syntax.vim/config.mk delete mode 100644 etc/soft/vim/vim/+plugins/look-up/README.md delete mode 100644 etc/soft/vim/vim/+plugins/look-up/look-up.png delete mode 100644 etc/soft/vim/vim/+plugins/look-up/plugin/look-up.vim delete mode 100644 etc/soft/vim/vim/+plugins/look-up/syntax/dict.vim delete mode 100644 etc/soft/vim/vim/+plugins/matchit/doc/matchit.txt delete mode 100644 etc/soft/vim/vim/+plugins/matchit/plugin/matchit.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/.circleci/config.yml delete mode 100644 etc/soft/vim/vim/+plugins/neomake/.coveragerc delete mode 100644 etc/soft/vim/vim/+plugins/neomake/.dockerignore delete mode 100644 etc/soft/vim/vim/+plugins/neomake/.vintrc.yaml delete mode 100644 etc/soft/vim/vim/+plugins/neomake/Dockerfile.tests delete mode 100644 etc/soft/vim/vim/+plugins/neomake/LICENSE delete mode 100644 etc/soft/vim/vim/+plugins/neomake/Makefile delete mode 100644 etc/soft/vim/vim/+plugins/neomake/README.md delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/action_queue.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/cmd.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/compat.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/config.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/configure.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/core.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/debug.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/highlights.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/jobinfo.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/list.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/log.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/cabal.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/clippy.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/ada.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/angular.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/ansible.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/apiblueprint.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/applescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/asciidoc.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/beancount.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/bib.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/c.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/cf3.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/chef.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/coffee.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/cpp.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/crystal.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/cs.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/css.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/cuda.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/d.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/docbk.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/dockerfile.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/elixir.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/elm.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/erlang.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/fish.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/fortran.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/go.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/haml.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/haskell.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/haxe.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/help.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/html.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/idris.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/jade.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/jasmine.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/java.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/java/classpath.gradle delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/java/classpath.py delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/javascript.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/json.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/jsx.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/julia.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/kotlin.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/less.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/lex.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/lua.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/mail.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/markdown.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/matlab.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/moon.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/neomake_tests.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/nim.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/nix.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/node.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/objc.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/pandoc.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/perl.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/php.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/proto.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/pug.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/puppet.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/purescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/python.vim delete mode 100755 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/python/compile.py delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/r.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/racket.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/rst.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/ruby.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/rust.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/scala.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/scss.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/serpent.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/sh.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/slim.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/sml.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/solidity.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/spar.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/spec.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/sql.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/stylus.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/swift.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/tcl.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/tex.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/text.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/toml.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/tsx.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/typescript.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/verilog.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/vhdl.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/vim.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/vue.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/xml.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/xslt.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/yacc.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/yaml.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/ft/zsh.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/gradle.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/mvn.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/makers/sbt.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/postprocess.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/quickfix.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/setup.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/signs.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/statusline.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/utils.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/autoload/neomake/virtualtext.vim delete mode 100755 etc/soft/vim/vim/+plugins/neomake/contrib/highlight-log delete mode 100755 etc/soft/vim/vim/+plugins/neomake/contrib/run-tests-watch delete mode 100755 etc/soft/vim/vim/+plugins/neomake/contrib/vim-checks delete mode 100755 etc/soft/vim/vim/+plugins/neomake/contrib/vimhelplint delete mode 100644 etc/soft/vim/vim/+plugins/neomake/doc/neomake.txt delete mode 100644 etc/soft/vim/vim/+plugins/neomake/plugin/neomake.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/syntax/neomake/python.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/syntax/neomake/qf.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/syntax/qf.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/action_queue.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/all.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/args.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/automake.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/cancellation.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/clean.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/cmd_neomakeinfo.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/compat.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/completion.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/config.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/current_error.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/customqf.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/cwd.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/debug.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/env.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/errors.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/filetypes.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/filter_output.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/a filename with spaces delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/errors.py delete mode 100755 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/errors.sh delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/input/puppet-lint/err_and_warn.pp delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/input/puppet/syntax-error-eoi.pp delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/input/puppet/syntax-error.pp delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/input/xmllint/missingdtd.xml delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/input/xmllint/validity-error.xml delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/puppet-lint/err_and_warn.pp.exitcode delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/puppet-lint/err_and_warn.pp.stderr delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/puppet-lint/err_and_warn.pp.stdout delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/puppet/syntax-error-eoi.pp.exitcode delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/puppet/syntax-error-eoi.pp.stderr delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/puppet/syntax-error-eoi.pp.stdout delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/puppet/syntax-error.pp.exitcode delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/puppet/syntax-error.pp.stderr delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/puppet/syntax-error.pp.stdout delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/xmllint/missingdtd.xml.exitcode delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/xmllint/missingdtd.xml.stderr delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/xmllint/missingdtd.xml.stdout delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/xmllint/validity-error.xml.exitcode delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/xmllint/validity-error.xml.stderr delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/xmllint/validity-error.xml.stdout delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/zsh/parse-error.zsh.exitcode delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/zsh/parse-error.zsh.stderr delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/output/zsh/parse-error.zsh.stdout delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/rust/cargo_error.json delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/rust/cargo_error_children.json delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/rust/cargo_error_primary_span.json delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/rust/cargo_error_without_span.json delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/rust/cargo_info.json delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/rust/cargo_warning.json delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/rust/cargotest_with_failures delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/vim/func-with-errors.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/vim/func-with-errors.vim.output delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/fixtures/~ delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_asciidoc.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_cs.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_css.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_elixir.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_elm.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_erlang.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_go.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_haskell.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_html.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_idris.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_javascript.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_markdown.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_perl.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_php.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_puppet.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_purescript.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_python.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_rst.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_rust.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_sh.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_sql.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_text.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_typescript.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_vim.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/ft_xml.vader delete mode 100755 etc/soft/vim/vim/+plugins/neomake/tests/helpers/trap.sh delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/highlights.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/hooks-queue.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/hooks.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/include/init.vim delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/include/setup.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/integration.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/compat-get_argv-on-emulated-windows.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/completion-handles-throw.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/configure.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/customqf.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/ft_help.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/ft_vim.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/highlights.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/logging.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/modes.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/resets-ignore_automake_events.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/sign-highlights.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/signs.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/statusline-highlights.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/isolated/tempfiles-cleanup.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/jobinfo.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/json.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/list-entries.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/list.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/lists.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/log.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/main.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/makeprg.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/maker_errors.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/makers.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/mapexpr.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/postprocess.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/processing.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/serialize.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/signs.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/statusline.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/stdin.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/tempfiles.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/toggle.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/utils.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/utils_projectroot.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/verbosity.vader delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/vim/vimrc delete mode 100644 etc/soft/vim/vim/+plugins/neomake/tests/vim_and_neovim_behavior.vader delete mode 100644 etc/soft/vim/vim/+plugins/nnn.vim/LICENSE delete mode 100644 etc/soft/vim/vim/+plugins/nnn.vim/README.md delete mode 100644 etc/soft/vim/vim/+plugins/nnn.vim/autoload/nnn.vim delete mode 100644 etc/soft/vim/vim/+plugins/nnn.vim/doc/nnn.txt delete mode 100644 etc/soft/vim/vim/+plugins/nnn.vim/ftplugin/nnn.vim delete mode 100644 etc/soft/vim/vim/+plugins/nnn.vim/plugin/nnn.vim delete mode 100644 etc/soft/vim/vim/+plugins/pummode/autoload/pummode.vim delete mode 100644 etc/soft/vim/vim/+plugins/pummode/doc/pummode.txt delete mode 100644 etc/soft/vim/vim/+plugins/rainbow/plugin/RainbowParenthsis.vim delete mode 100644 etc/soft/vim/vim/+plugins/rainbow/rainbow.patch delete mode 100644 etc/soft/vim/vim/+plugins/tasklist/plugin/tasklist.vim delete mode 100644 etc/soft/vim/vim/+plugins/timestamp/doc/timestamp.txt delete mode 100644 etc/soft/vim/vim/+plugins/timestamp/plugin/timestamp.vim delete mode 100644 etc/soft/vim/vim/+plugins/toggle/plugin/toggle.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/.gitignore delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/.travis.yml delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/Gemfile delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/LICENSE delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/README.md delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/Rakefile delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/builder.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/debug.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/deprecation.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/branch.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/bufferline.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/commandt.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/csv.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/ctrlp.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/default.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/eclim.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/example.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/hunks.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/syntastic.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/tabline.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/tabline/formatters.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/tagbar.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/undotree.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/unite.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/virtualenv.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/extensions/whitespace.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/highlighter.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/init.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/parts.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/section.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/alduin.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/angr.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/atomic.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/aurora.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/ayu_dark.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/ayu_light.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/ayu_mirage.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/badcat.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/badwolf.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/base16.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/base16color.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/behelit.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/biogoo.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/bubblegum.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/cobalt2.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/cool.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/dark.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/dark_minimal.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/desertink.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/deus.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/distinguished.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/dracula.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/durant.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/fairyfloss.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/fruit_punch.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/hybrid.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/hybridline.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/jellybeans.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/jet.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/kalisi.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/kolor.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/laederon.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/light.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/lucius.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/luna.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/minimalist.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/molokai.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/monochrome.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/murmur.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/night_owl.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/onedark.vim delete mode 100755 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/ouo.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/papercolor.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/peaksea.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/powerlineish.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/qwq.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/raven.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/ravenpower.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/seagull.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/serene.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/sierra.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/silver.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/simple.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/soda.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/sol.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/solarized.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/solarized_flood.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/term.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/term_light.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/tomorrow.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/ubaryd.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/understated.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/vice.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/violet.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/wombat.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/xtermlight.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/themes/zenburn.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/autoload/airline/util.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/doc/airline.txt delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/plugin/airline.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/t/airline.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/t/builder.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/t/commands.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/t/extensions_default.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/t/highlighter.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/t/init.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/t/parts.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/t/section.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/t/themes.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-airline/t/util.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/Gemfile delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/README.md delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/Rakefile delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/EasyMotion.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/EasyMotion/cmigemo.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/EasyMotion/command_line.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/EasyMotion/helper.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/EasyMotion/highlight.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/EasyMotion/migemo/cp932.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/EasyMotion/migemo/eucjp.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/EasyMotion/migemo/utf8.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/EasyMotion/overwin.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/EasyMotion/sticky_table.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/EasyMotion/undo.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Data/Dict.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Data/List.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Data/Set.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/HitAHint/Hint.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/HitAHint/Motion.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Base.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/BufferComplete.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/Cancel.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/CursorMove.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/Delete.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/Doautocmd.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/DrawCommandline.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/ExceptionExit.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/ExceptionMessage.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/Exit.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/History.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/InsertRegister.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/KeyMapping.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/NoInsert.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/Paste.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Commandline/Modules/Redraw.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Exception.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Input.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Keymapping.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/Signals.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Over/String.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Palette/Capture.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Palette/Highlight.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Palette/Keymapping.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Prelude.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Vim/Buffer.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Vim/Guard.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/_easymotion/Vim/Message.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/easymotion.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/autoload/vital/easymotion.vital delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/doc/easymotion.txt delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/plugin/EasyMotion.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/t/compare_movements_spec.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/t/easymotion_spec.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/t/operator_pending_spec.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-easymotion/t/smartsign_spec.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/.gitignore delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/Makefile delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/README.mkd delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/TODO delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/TUTORIAL delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet/lang.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet/lang/css.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet/lang/haml.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet/lang/html.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet/lang/jade.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet/lang/less.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet/lang/sass.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet/lang/scss.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet/lang/slim.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet/lorem/en.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet/lorem/ja.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/autoload/emmet/util.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/doc/emmet.txt delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/doc/screenshot.gif delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/emmet.vim.vimup delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/plugin/emmet.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-emmet/unittest.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-enter-indent/README.md delete mode 100644 etc/soft/vim/vim/+plugins/vim-enter-indent/plugin/enter-indent.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-haskellConceal/README delete mode 100644 etc/soft/vim/vim/+plugins/vim-haskellConceal/after/syntax/haskell.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-liquid/ftdetect/liquid.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-liquid/ftplugin/liquid.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-liquid/indent/liquid.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-liquid/syntax/liquid.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-quickhl/README.md delete mode 100644 etc/soft/vim/vim/+plugins/vim-quickhl/Rakefile delete mode 100644 etc/soft/vim/vim/+plugins/vim-quickhl/VERSION delete mode 100644 etc/soft/vim/vim/+plugins/vim-quickhl/autoload/quickhl.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-quickhl/doc/quickhl.txt delete mode 100644 etc/soft/vim/vim/+plugins/vim-quickhl/plugin/quickhl.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-repeat/README.markdown delete mode 100644 etc/soft/vim/vim/+plugins/vim-repeat/autoload/repeat.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-speeddating/README.markdown delete mode 100644 etc/soft/vim/vim/+plugins/vim-speeddating/autoload/speeddating.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-speeddating/doc/speeddating.txt delete mode 100644 etc/soft/vim/vim/+plugins/vim-speeddating/plugin/speeddating.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/CONTRIBUTING.md delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/LICENSE delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/README.md delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/autoload/startify.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/autoload/startify/fortune.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/doc/startify.txt delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/images/startify-logo.png delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/images/startify-menu.png delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/plugin/startify.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/syntax/startify.vim delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/test/feature/buffer.vader delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/test/feature/mapping.vader delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/test/feature/session.vader delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/test/include/testfile.txt delete mode 100755 etc/soft/vim/vim/+plugins/vim-startify/test/run delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/test/session/.gitkeep delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/test/viminfo delete mode 100644 etc/soft/vim/vim/+plugins/vim-startify/test/vimrc delete mode 100644 etc/soft/vim/vim/+plugins/vim-surround/README.markdown delete mode 100644 etc/soft/vim/vim/+plugins/vim-surround/doc/surround.txt delete mode 100644 etc/soft/vim/vim/+plugins/vim-surround/plugin/surround.vim delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/autoload/vimwiki/base.vim delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/autoload/vimwiki/default.tpl delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/autoload/vimwiki/diary.vim delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/autoload/vimwiki/html.vim delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/autoload/vimwiki/lst.vim delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/autoload/vimwiki/style.css delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/autoload/vimwiki/tbl.vim delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/doc/vimwiki.txt delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/ftplugin/vimwiki.vim delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/plugin/vimwiki.vim delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/syntax/vimwiki.vim delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/syntax/vimwiki_default.vim delete mode 100644 etc/soft/vim/vim/+plugins/vimwiki/syntax/vimwiki_media.vim delete mode 100644 etc/soft/vim/vim/+plugins/yankring/doc/yankring.txt delete mode 100644 etc/soft/vim/vim/+plugins/yankring/plugin/yankring.vim delete mode 100644 etc/soft/vim/vim/+plugins/yankring/yankring.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/AnsiESC/README.md delete mode 100644 etc/soft/vim/vim/+plugins_disabled/AnsiESC/autoload/AnsiEsc.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/AnsiESC/doc/AnsiEsc.txt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/AnsiESC/plugin/AnsiEscPlugin.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/AnsiESC/plugin/cecutil.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/Join/README.md delete mode 100644 etc/soft/vim/vim/+plugins_disabled/Join/doc/Join.txt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/Join/plugin/Join.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/fff.vim/LICENSE.md delete mode 100644 etc/soft/vim/vim/+plugins_disabled/fff.vim/README.md delete mode 100644 etc/soft/vim/vim/+plugins_disabled/fff.vim/autoload/fff.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/fff.vim/plugin/fff.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/figlet/plugin/Figlet.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/format_helper/README.txt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/format_helper/format_helper.patch delete mode 100644 etc/soft/vim/vim/+plugins_disabled/format_helper/plugin/format_helper.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/functionator/functionator.patch delete mode 100644 etc/soft/vim/vim/+plugins_disabled/functionator/plugin/functionator.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/lispcomplete/autoload/lispcomplete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/marks_corey/marks_corey.patch delete mode 100644 etc/soft/vim/vim/+plugins_disabled/marks_corey/plugin/marks_corey.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/README.md delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/async_cache.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/cache.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/commands.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/context_filetype.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_abbr.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_case.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_delimiter.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_nothing.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_remove_next_keyword.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_fuzzy.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_head.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_old.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_length.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_nothing.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_rank.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/handler.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/helper.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/init.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/mappings.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/buffer_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/dictionary_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/filename_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/filename_include.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/include_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/member_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/omni_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/syntax_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/tags_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/autocmds.dict delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_args.dict delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_completions.dict delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_prototypes.dict delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_replaces.dict delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/commands.dict delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/features.dict delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/functions.dict delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/helper.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/mappings.dict delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/options.dict delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/variables.dict delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/util.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/variables.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/unite/sources/file_include.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/unite/sources/neocomplcache.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/vital.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/vital/_a20a988.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/vital/_a20a988/Data/List.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/vital/_a20a988/Data/String.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/vital/_a20a988/Prelude.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/vital/_a20a988/System/Cache.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/autoload/vital/neocomplcache.vital delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/doc/neocomplcache.txt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/buffer_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/dictionary_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/include_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/syntax_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/tags_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neocomplcache.vim/vest/test-neocomplcache.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/README.md delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neocomplcache/sources/snippets_complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neocomplete/sources/neosnippet.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/Gemfile.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/_.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/actionscript.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/apache.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/applescript.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/c.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/clojure.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/coffee.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/cpp.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/css.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/d.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/erlang.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/eruby.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/go.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/groovy.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/haskell.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/html.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/java.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/javascript.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/kp19pp.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/liquid.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/lua.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/make.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/markdown.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/mediawiki.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/objc.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/perl.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/php.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/python.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/rails.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/rst.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/ruby.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/scala.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/scheme.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/sh.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/snippet.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/sql.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/sshconfig.snip delete mode 120000 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/tcl.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/tex.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/vim.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/vim/vital.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/vimshell.snip delete mode 120000 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/vimwiki.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/xhtml.snip delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/util.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/unite/sources/neosnippet_file.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/unite/sources/snippet.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/unite/sources/snippet_target.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/vital.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/vital/_de83b96.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/vital/_de83b96/Prelude.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/autoload/vital/neosnippet.vital delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/doc/neosnippet.txt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/ftdetect/snippet.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/ftplugin/snippet.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/indent/snippet.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/plugin/neosnippet.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/neosnippet.vim/syntax/snippet.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/tablify/README.md delete mode 100644 etc/soft/vim/vim/+plugins_disabled/tablify/doc/tablify.txt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/tablify/plugin/tablify.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/taglist/doc/taglist.txt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/taglist/plugin/taglist.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/textmanip/autoload/textmanip.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/textmanip/doc/textmanip.txt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/textmanip/plugin/textmanip.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vCoolor/autoload/vcoolor/convert.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vCoolor/autoload/vcoolor/misc.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vCoolor/doc/vCoolor.txt delete mode 100755 etc/soft/vim/vim/+plugins_disabled/vCoolor/pickers/osx/color-picker delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vCoolor/plugin/vCoolor.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vicle/plugin/vicle.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/EXAMPLES.md delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/README.md delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/autoload/easy_align.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/doc/easy_align.txt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/plugin/easy_align.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/test/basic.expected delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/test/basic.md delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/test/basic.script delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/test/include.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/test/regexp.expected delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/test/regexp.md delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/test/regexp.script delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/test/run.vim delete mode 100755 etc/soft/vim/vim/+plugins_disabled/vim-easy-align/zip delete mode 160000 etc/soft/vim/vim/+plugins_disabled/vim-fugitive delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-racket/README.md delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-racket/ftdetect/racket.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-racket/ftplugin/racket.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-racket/indent/racket.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-racket/syntax/racket.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-racket/test/delimiters.rkt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vim-racket/test/number-syntax-test.rkt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/README delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/args.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/complete.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/completers.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/file.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/list.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/loclist.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/ml/bayes.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/ml/porter.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/overlay.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/parse/ini.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/quickfix.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/regex.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/rng.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/scope.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/scripts.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/string.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/variable.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/vimple.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/vimple/abbreviations.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/vimple/comparators.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/vimple/highlight.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/vimple/history.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/vimple/ls.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/vimple/map.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/vimple/marks.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/vimple/options.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/vimple/scriptnames.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/vimple/undolist.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/autoload/vimple/version.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/demo/bufgrep.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/demo/calendar.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/demo/changelist.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/demo/global_marks.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/demo/helptoc.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/demo/iabbrevs.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/demo/identsearch.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/demo/jumplist.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/demo/oldfiles.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/demo/spellsuggest.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/demo/tagkinds.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/demo/tagsearch.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/doc/vimple.txt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/doc/vimple_ls.txt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/ftplugin/python_scope.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/ftplugin/vim_scope.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/plugin/vimple.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/syntax/vimple_jumplist.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/Makefile delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/README delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/_setup.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/buffer_list.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/ini_001.ini delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/ini_001_out.ini delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/ini_002.ini delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/ini_002_out.ini delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/parse_ini_001.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/parse_ini_002.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/string001.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/vimple001.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimple/test/vimple002.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimwiki/autoload/vimwiki.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimwiki/autoload/vimwiki_diary.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimwiki/autoload/vimwiki_html.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimwiki/autoload/vimwiki_lst.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimwiki/autoload/vimwiki_tbl.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimwiki/doc/vimwiki.txt delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimwiki/ftplugin/vimwiki.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimwiki/plugin/vimwiki.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimwiki/syntax/vimwiki.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimwiki/syntax/vimwiki_default.vim delete mode 100644 etc/soft/vim/vim/+plugins_disabled/vimwiki/syntax/vimwiki_media.vim delete mode 100755 etc/soft/vim/vim/+scripts/declarations/perl delete mode 100755 etc/soft/vim/vim/+scripts/declarations/prolog delete mode 100755 etc/soft/vim/vim/+scripts/declarations/rebol delete mode 100755 etc/soft/vim/vim/+scripts/declarations/scheme delete mode 100755 etc/soft/vim/vim/+scripts/declarations/sh delete mode 100755 etc/soft/vim/vim/+scripts/declarations/tcl delete mode 100755 etc/soft/vim/vim/+scripts/sources/getTclSrc delete mode 100755 etc/soft/vim/vim/+snippets/install.sh delete mode 100644 etc/soft/vim/vim/+snippets/tcl.snip delete mode 100644 etc/soft/vim/vim/+snippets/vimwiki.snip delete mode 100644 etc/soft/vim/vim/after/syntax/c.vim delete mode 100644 etc/soft/vim/vim/after/syntax/css.vim delete mode 100644 etc/soft/vim/vim/autoload/pathogen.vim delete mode 100644 etc/soft/vim/vim/colors/OneHalfDark.vim delete mode 100644 etc/soft/vim/vim/colors/OneHalfLight.vim delete mode 100644 etc/soft/vim/vim/colors/PaperColor.vim delete mode 100644 etc/soft/vim/vim/colors/forgotten-light.vim delete mode 100644 etc/soft/vim/vim/colors/wombat.vim delete mode 100644 etc/soft/vim/vim/colors/wombat256.vim delete mode 100644 etc/soft/vim/vim/colors/wombat256mod.vim delete mode 100644 etc/soft/vim/vim/colors/wombat_converted.vim delete mode 100644 etc/soft/vim/vim/compiler/tex.vim delete mode 100644 etc/soft/vim/vim/dic/sh delete mode 100644 etc/soft/vim/vim/dic/tcl delete mode 100644 etc/soft/vim/vim/doc/git-cheat.txt delete mode 100644 etc/soft/vim/vim/doc/latexhelp.txt delete mode 100644 etc/soft/vim/vim/doc/regexpref.txt delete mode 100644 etc/soft/vim/vim/ftdetect/detect.vim delete mode 120000 etc/soft/vim/vim/ftplugin/c/c.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/cpp/cpp.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/dockerfile/dockerfile.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/erlang/erlang.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/go/go.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/graphviz/graphviz.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/haskell/haskell.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/html/html.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/lisp/lisp.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/markdown/markdown.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/ocaml/ocaml.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/pascal/pascal.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/perl/perl.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/prolog/prolog.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/racket/racket.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/rename/rename.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/scheme/scheme.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/sh/sh.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/tcl/tcl.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/tex/tex.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/vb/vb.custom.vim delete mode 120000 etc/soft/vim/vim/ftplugin/vimwiki/vimwiki.custom.vim delete mode 100644 etc/soft/vim/vim/indent/erlang.vim delete mode 100644 etc/soft/vim/vim/indent/tcl.vim delete mode 100644 etc/soft/vim/vim/spell/el.utf-8.spl delete mode 100644 etc/soft/vim/vim/spell/en.utf-8.spl delete mode 100644 etc/soft/vim/vim/spell/ru.utf-8.spl delete mode 100644 etc/soft/vim/vim/syntax/abnf.vim delete mode 100644 etc/soft/vim/vim/syntax/alex.vim delete mode 100644 etc/soft/vim/vim/syntax/c.vim delete mode 100644 etc/soft/vim/vim/syntax/conf.vim delete mode 100644 etc/soft/vim/vim/syntax/cpp.vim delete mode 100644 etc/soft/vim/vim/syntax/delphi.vim delete mode 100644 etc/soft/vim/vim/syntax/erlang.vim delete mode 100644 etc/soft/vim/vim/syntax/graphviz.vim delete mode 100644 etc/soft/vim/vim/syntax/happy.vim delete mode 100644 etc/soft/vim/vim/syntax/haskell.vim delete mode 100644 etc/soft/vim/vim/syntax/html.vim delete mode 100644 etc/soft/vim/vim/syntax/j.vim delete mode 100644 etc/soft/vim/vim/syntax/nmap.vim delete mode 100644 etc/soft/vim/vim/syntax/note.vim delete mode 100644 etc/soft/vim/vim/syntax/octave.vim delete mode 100644 etc/soft/vim/vim/syntax/perl.vim delete mode 100644 etc/soft/vim/vim/syntax/prolog.vim delete mode 100644 etc/soft/vim/vim/syntax/rfc.vim delete mode 100644 etc/soft/vim/vim/syntax/rsc.vim delete mode 100644 etc/soft/vim/vim/syntax/rtorrent.vim delete mode 100644 etc/soft/vim/vim/syntax/scheme.vim delete mode 100644 etc/soft/vim/vim/syntax/tab.vim delete mode 100644 etc/soft/vim/vim/syntax/tcl.vim delete mode 100644 etc/soft/vim/vim/syntax/tcl_critcl.vim delete mode 100644 etc/soft/vim/vim/syntax/tcl_doctools.vim delete mode 100644 etc/soft/vim/vim/syntax/tcl_itcl.vim delete mode 100644 etc/soft/vim/vim/syntax/tcl_snit.vim delete mode 100644 etc/soft/vim/vim/syntax/tcl_sqlite.vim delete mode 100644 etc/soft/vim/vim/syntax/tcl_togl.vim delete mode 100644 etc/soft/vim/vim/syntax/todo.vim delete mode 100644 etc/soft/vim/vim/syntax/txt.vim delete mode 100644 etc/soft/vim/vim/template/cpp.vim delete mode 100644 etc/soft/vim/vim/template/dosbatch.vim delete mode 100644 etc/soft/vim/vim/template/haskell.vim delete mode 100644 etc/soft/vim/vim/template/perl.vim delete mode 100644 etc/soft/vim/vim/template/prolog.vim delete mode 100644 etc/soft/vim/vim/template/rebol.vim delete mode 100644 etc/soft/vim/vim/template/scheme.vim delete mode 100644 etc/soft/vim/vim/template/sh.vim delete mode 100644 etc/soft/vim/vim/template/tcl.vim delete mode 100644 etc/soft/vim/vim/template/tex.vim delete mode 100644 etc/soft/vim/vimrc diff --git a/etc/soft/nvim/+ftplugin/c.vim b/etc/soft/nvim/+ftplugin/c.vim new file mode 100644 index 0000000..e537aaa --- /dev/null +++ b/etc/soft/nvim/+ftplugin/c.vim @@ -0,0 +1,3 @@ + +set makeprg=LANG=C\ gcc\ %\ -o\ %< " Компилятор +set keywordprg=man\ 3 " Просмотр страниц руководства diff --git a/etc/soft/nvim/+ftplugin/cpp.vim b/etc/soft/nvim/+ftplugin/cpp.vim new file mode 100644 index 0000000..3e582dc --- /dev/null +++ b/etc/soft/nvim/+ftplugin/cpp.vim @@ -0,0 +1,3 @@ + +set makeprg=LANG=C\ g++\ %\ -o\ %< " Компилятор +set keywordprg=man\ 3 " Просмотр страниц руководства diff --git a/etc/soft/nvim/+ftplugin/dockerfile.vim b/etc/soft/nvim/+ftplugin/dockerfile.vim new file mode 100644 index 0000000..00a62ff --- /dev/null +++ b/etc/soft/nvim/+ftplugin/dockerfile.vim @@ -0,0 +1,5 @@ + +command! DockerBuild execute ":split term://DOCKER_BUILDKIT=1 docker build ." +command! DockerDive execute ":split term://dive " . expand("") +command! DockerRun execute ":split term://docker run -it " . expand("") + diff --git a/etc/soft/nvim/+ftplugin/erlang.vim b/etc/soft/nvim/+ftplugin/erlang.vim new file mode 100644 index 0000000..22b2697 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/erlang.vim @@ -0,0 +1,7 @@ +"------------------------- +" Настройки Erlang +"------------------------- + +set makeprg=escript\ -s\ % " Проверка на ошибки и синтаксис +set errorformat=%f:%l:\ %m " Формат строки с информацией + diff --git a/etc/soft/nvim/+ftplugin/go.vim b/etc/soft/nvim/+ftplugin/go.vim new file mode 100644 index 0000000..81ea080 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/go.vim @@ -0,0 +1,2 @@ +set makeprg=golint\ % " Проверка на ошибки и синтаксис + diff --git a/etc/soft/nvim/+ftplugin/graphviz.vim b/etc/soft/nvim/+ftplugin/graphviz.vim new file mode 100644 index 0000000..10bc332 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/graphviz.vim @@ -0,0 +1,9 @@ +set makeprg=dot\ -Gsize=10,15\ -Tpng\ %\ >\ %<.png +set errorformat=%f:\ Line\ %l\ %t:\ %m " Формат строки с информацией + +" Выполнение файла с параметрами +nmap :!geeqie %<.png & +vmap :!geeqie %<.png & +imap :!geeqie %<.png & + +set foldmethod=marker diff --git a/etc/soft/nvim/+ftplugin/haskell.vim b/etc/soft/nvim/+ftplugin/haskell.vim new file mode 100644 index 0000000..6af0832 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/haskell.vim @@ -0,0 +1,63 @@ +set makeprg=ghc\ %\ -o\ %< " Компилятор + +set foldexpr=HaskellFold(v:lnum) +set foldmethod=expr + +" ============================================================================= +" Descriptions: Provide a function providing folding information for haskell +" files. +" Maintainer: Vincent B (twinside@gmail.com) +" Warning: Assume the presence of type signatures on top of your functions to +" work well. +" Usage: drop in ~/vimfiles/plugin or ~/.vim/plugin +" Version: 1.0 +" Changelog: - 1.0 : initial version +" ============================================================================= +if exists("g:__HASKELLFOLD_VIM__") + finish +endif +let g:__HASKELLFOLD_VIM__ = 1 + +" Top level bigdefs +fun! s:HaskellFoldMaster( line ) "{{{ + return a:line =~ '^data\s' + \ || a:line =~ '^type\s' + \ || a:line =~ '^newdata\s' + \ || a:line =~ '^class\s' + \ || a:line =~ '^instance\s' + \ || a:line =~ '^[^:]\+\s*::' +endfunction "}}} + +" Top Level one line shooters. +fun! s:HaskellSnipGlobal(line) "{{{ + return a:line =~ '^module' + \ || a:line =~ '^import' + \ || a:line =~ '^infix[lr]\s' +endfunction "}}} + +" The real folding function +fun! HaskellFold( lineNum ) "{{{ + let line = getline( a:lineNum ) + + " Beginning of comment + if line =~ '^\s*--' + return 2 + endif + + if s:HaskellSnipGlobal( line ) + return 0 + endif + + if line =~ '^\s*$' + let nextline = getline(a:lineNum + 1) + if s:HaskellFoldMaster( nextline ) > 0 || s:HaskellSnipGlobal( nextline ) > 0 + \ || nextline =~ "^--" + return 0 + else + return -1 + endif + endif + + return 1 +endfunction "}}} + diff --git a/etc/soft/nvim/+ftplugin/html.vim b/etc/soft/nvim/+ftplugin/html.vim new file mode 100644 index 0000000..33b1c02 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/html.vim @@ -0,0 +1,8 @@ +"------------------------- +" Настройки HTML +"------------------------- + +iabbrev .l « +iabbrev .r » +iabbrev .- – + diff --git a/etc/soft/nvim/+ftplugin/install.sh b/etc/soft/nvim/+ftplugin/install.sh new file mode 100755 index 0000000..da77416 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/install.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +#Создан: Вт 19 Янв 2010 08:40:13 +#Изменён: Вс 25 авг 2013 02:41:19 + +DIR=../ftplugin + +for f in *.vim; { + mkdir -p $DIR/${f/.vim} + + ln -s ../../$(basename $(pwd))/$f $DIR/${f/.vim}/${f/.vim/.custom.vim} 2>/dev/null \ + && printf " %-20sOK\n" $f \ + || printf " %-20sУстановка не требуется\n" $f +} + diff --git a/etc/soft/nvim/+ftplugin/lisp.vim b/etc/soft/nvim/+ftplugin/lisp.vim new file mode 100644 index 0000000..6b2ce24 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/lisp.vim @@ -0,0 +1,6 @@ +" Проверка на ошибки и синтаксис +set makeprg=sbcl\ --load\ %\ --eval\ '(progn\ (compile-file\ \"%\")(quit))';\ mv\ -f\ %<.fasl\ %<;\chmod\ +x\ %< +set errorformat=nil + +setlocal omnifunc=lispcomplete#Complete + diff --git a/etc/soft/nvim/+ftplugin/markdown.vim b/etc/soft/nvim/+ftplugin/markdown.vim new file mode 100644 index 0000000..10461d3 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/markdown.vim @@ -0,0 +1,2 @@ +" setlocal syntax=off +" set re=1 diff --git a/etc/soft/nvim/+ftplugin/ocaml.vim b/etc/soft/nvim/+ftplugin/ocaml.vim new file mode 100644 index 0000000..d71d81a --- /dev/null +++ b/etc/soft/nvim/+ftplugin/ocaml.vim @@ -0,0 +1,2 @@ + +set makeprg=ocamlc\ %\ -o\ %< " Компилятор diff --git a/etc/soft/nvim/+ftplugin/pascal.vim b/etc/soft/nvim/+ftplugin/pascal.vim new file mode 100644 index 0000000..7f5f212 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/pascal.vim @@ -0,0 +1,5 @@ +set keywordprg=man " Просмотр страниц руководства + +set makeprg=fpc\ % " Проверка на ошибки и синтаксис +""set errorformat=%f:\ line\ %l:\ %m " Формат строки с информацией +set errorformat=%f(%l\\,%c)%*[\ ]%t%*[^:]:\ %m diff --git a/etc/soft/nvim/+ftplugin/perl.vim b/etc/soft/nvim/+ftplugin/perl.vim new file mode 100644 index 0000000..4da5eec --- /dev/null +++ b/etc/soft/nvim/+ftplugin/perl.vim @@ -0,0 +1,5 @@ +set makeprg=perl\ -Wc\ % +set errorformat=%m\ at\ %f\ line\ %l%.%#, + \%-G%.%# + +set keywordprg=perldoc\ -i\ -f diff --git a/etc/soft/nvim/+ftplugin/prolog.vim b/etc/soft/nvim/+ftplugin/prolog.vim new file mode 100644 index 0000000..b21bde5 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/prolog.vim @@ -0,0 +1,10 @@ +"------------------------- +" Настройки Prolog +"------------------------- +" Просмотр страниц руководства +set keywordprg=hs()\ {\ echo\ \"help($1).\"\|swipl\ --nopce;\ };\ hs + +set makeprg=swipl\ -s\ % " Проверка на ошибки и синтаксис +set errorformat=%W%tarning:\ %f:%l:,%Z%m " Формат ошибок +set errorformat+=%tRROR:\ %f:%l:%c:%m " Формат предупреждений +set errorformat+=%E%tRROR:\ %f:%l:,%Z%m " Формат предупреждений diff --git a/etc/soft/nvim/+ftplugin/racket.vim b/etc/soft/nvim/+ftplugin/racket.vim new file mode 100644 index 0000000..4cacd2b --- /dev/null +++ b/etc/soft/nvim/+ftplugin/racket.vim @@ -0,0 +1 @@ +set makeprg=racket\ % " Проверка на ошибки и синтаксис diff --git a/etc/soft/nvim/+ftplugin/rename.vim b/etc/soft/nvim/+ftplugin/rename.vim new file mode 100644 index 0000000..0986367 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/rename.vim @@ -0,0 +1,32 @@ +"-------------------------- +" Переименование PDF-файлов +"-------------------------- + +function! PdfTags(findstart, base) + if a:findstart + return col('.') + 1 + else + silent let res = map(systemlist("exiftool -Author -Title " . + \b:rename_dir . "/" . + \trim(getline('.')) . + \" 2>&- | cut -d : -f 2- | tr '\n' ' ' | sed 's/ / - /' "), + \"'\"' . trim(v:val) . '.pdf\"'") + return res + endif +endfun + +setlocal omnifunc=PdfTags + +syntax region newName start=/\v"/ skip=/\v\\[^"]/ end=/\v"\s*$/ +syntax match oldName '^"[^"]*"\s' +syntax match errorLine '^"[^"]*"$' + +highlight errorLine ctermfg=red +highlight oldName ctermfg=darkblue +highlight newName ctermfg=darkgreen cterm=bold + +" ----------------------------------------------------- + +cabbrev q cq +nmap D :g/^"[^"]*"\s*$/d + diff --git a/etc/soft/nvim/+ftplugin/scheme.vim b/etc/soft/nvim/+ftplugin/scheme.vim new file mode 100644 index 0000000..7233a26 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/scheme.vim @@ -0,0 +1,5 @@ +" Просмотр страниц руководства +set keywordprg=hs()\ {\ echo\ \"(help\ $1)\"\|guile\|less;\ };\ hs + +set makeprg=guile\ % " Проверка на ошибки и синтаксис +set errorformat=%tRROR:\ %f:%l:%c:\ %m " Формат строки с информацией" diff --git a/etc/soft/nvim/+ftplugin/sh.vim b/etc/soft/nvim/+ftplugin/sh.vim new file mode 100644 index 0000000..62ad5e7 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/sh.vim @@ -0,0 +1,4 @@ +set keywordprg=man " Просмотр страниц руководства + +set makeprg=shellcheck\ -s\ bash\ -f\ gcc\ % " Проверка на ошибки и синтаксис +set errorformat=\|\|\ %f:line\ %l:%c:\ %m " Формат строки с информацией diff --git a/etc/soft/nvim/+ftplugin/tcl.vim b/etc/soft/nvim/+ftplugin/tcl.vim new file mode 100644 index 0000000..28a2f0c --- /dev/null +++ b/etc/soft/nvim/+ftplugin/tcl.vim @@ -0,0 +1,25 @@ +"------------------------- +" Настройки Tcl +"------------------------- + +set dictionary=~/.vim/dic/tcl " Словарь автодополнения + +set keywordprg=man\ n " Просмотр страниц руководства + +set makeprg=nagelfar\ % " Проверка на ошибки и синтаксис +set errorformat=%f:\ Line\ %l:\ %t\ %m " Формат строки с информацией + +if !has("win32unix") + source $HOME/.vim/+omnicompletion/tcl/TclCompletion.vim +endif + +setlocal omnifunc=TclComplete + +" Настройка matchit +let b:match_words = '\:\:\,\:\:\,\:\:\,\:\:\,\:\' + +" vicle +let t:vicle_edition_mode = 1 +let t:vicle_history_active = 0 +let t:vicle_screen_sn = "tcl" +let t:vicle_screen_wn = 0 diff --git a/etc/soft/nvim/+ftplugin/tex.vim b/etc/soft/nvim/+ftplugin/tex.vim new file mode 100644 index 0000000..2b7a3b1 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/tex.vim @@ -0,0 +1,20 @@ +"------------------------- +" Настройки LaTeX +"------------------------- + +set makeprg=pdflatex\ % " Проверка на ошибки и синтаксис +set errorformat=%f:\ Line\ %l\ %t:\ %m " Формат строки с информацией + +" Выполнение файла с параметрами +nmap :!zathura %<.pdf & +vmap :!zathura %<.pdf & +imap :!zathura %<.pdf & + +" iabbrev ... \ldots +" imap ^ ^{} +" imap _ _{} + +set foldmethod=marker + +nmap fm :exe 'help '.expand("") + diff --git a/etc/soft/nvim/+ftplugin/vb.vim b/etc/soft/nvim/+ftplugin/vb.vim new file mode 100644 index 0000000..1764784 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/vb.vim @@ -0,0 +1,6 @@ +"------------------------- +" Настройки VBS +"------------------------- + +set makeprg=wscript\ % " Выполнение *.vbs в Windows + diff --git a/etc/soft/nvim/+ftplugin/vimwiki.vim b/etc/soft/nvim/+ftplugin/vimwiki.vim new file mode 100644 index 0000000..c26c3b7 --- /dev/null +++ b/etc/soft/nvim/+ftplugin/vimwiki.vim @@ -0,0 +1,9 @@ +"------------------------- +" Настройки Vimwiki +"------------------------- + +vmap = :normal = +vmap - :normal - + +set textwidth=80 + diff --git a/etc/soft/nvim/+layouts/greek.vim b/etc/soft/nvim/+layouts/greek.vim new file mode 100644 index 0000000..6a75383 --- /dev/null +++ b/etc/soft/nvim/+layouts/greek.vim @@ -0,0 +1,55 @@ +" Ввод команд в древнегреческой раскладке + +map ς w +map ε e +map ρ r +map τ t +map υ y +map θ u +map ι i +map ο o +map π p +map α a +map σ s +map δ d +map φ f +map γ g +map γγ gg +map η h +map ξ j +map κ k +map λ l +map ζ z +map χ x +map ψ c +map ω v +map β b +map ν n +map μ m +map ~ ~ +map Σ W +map Ε E +map Ρ R +map Τ T +map Υ Y +map Θ U +map Ι I +map Ο O +map Π P +map Α A +map Σ S +map Δ D +map Φ F +map Γ G +map Η H +map Ξ J +map Κ K +map Λ L +map Ζ Z +map Χ X +map Ψ C +map Ω V +map Β B +map Ν N +map Μ M + diff --git a/etc/soft/nvim/+layouts/russian.vim b/etc/soft/nvim/+layouts/russian.vim new file mode 100644 index 0000000..bb63092 --- /dev/null +++ b/etc/soft/nvim/+layouts/russian.vim @@ -0,0 +1,70 @@ +" Ввод команд в русской раскладке + +map ё ` +map й q +map ц w +map у e +map к r +map е t +map н y +map г u +map ш i +map щ o +map з p +map х [ +map ъ ] +map ф a +map ы s +map в d +map а f +map п g +map р h +map о j +map л k +map д l +map ж ; +map э ' +map я z +map ч x +map с c +map м v +map и b +map т n +map ь m +map б , +map ю . +map Ё ~ +map Й Q +map Ц W +map У E +map К R +map Е T +map Н Y +map Г U +map Ш I +map Щ O +map З P +map Х { +map Ъ } +map Ф A +map Ы S +map В D +map А F +map П G +map Р H +map О J +map Л K +map Д L +map Ж : +map Э " +map Я Z +map Ч X +map С C +map М V +map И B +map Т N +map Ь M +map Б < +map Ю > +map , / + diff --git a/etc/soft/nvim/+omnicompletion/tcl/TclCompletion.vim b/etc/soft/nvim/+omnicompletion/tcl/TclCompletion.vim new file mode 100644 index 0000000..340e30d --- /dev/null +++ b/etc/soft/nvim/+omnicompletion/tcl/TclCompletion.vim @@ -0,0 +1,5183 @@ +" Created: 2019-12-13 +" +" File: OmniTickle.vim +" +" Author: Likhachev Maxim +" Version: 0.1 +" Copyright: Copyright (C) 2010-2010 Likhachev Maxim +" +" License: +" +" This program is free software: you can redistribute it and/or modify it +" under the terms of the GNU General Public License as published +" by the Free Software Foundation, version 3. +" +" This program is distributed in the hope that it will be useful, +" but WITHOUT ANY WARRANTY; without even the implied warranty of +" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +" GNU General Public License for more details. +" +" You should have received a copy of the GNU General Public License +" along with this program. If not, see . +" +" Overview +" -------- +" +" OmniCompletion function for Tcl code +" +" The git repository for this plugin is available at: +" +" https://code.envrm.info/src/TclTags.vim +" +" Installation +" ------------ +" +" $ make +" $ mkdir -p ~/.vim/omnicompletion/tcl +" $ cp plugin/TclCompletion.vim ~/.vim/omnicompletion/tcl/ +" +" Add to ~/.vim/ftplugin/tcl/tcl.vim a following source command: +" +" source $HOME/.vim/omnicompletion/tcl/TclCompletion.vim +" + +if exists('g:tcl_tk_completion') + finish +endif + +let g:tcl_tk_completion = 1 + +setlocal omnifunc=TclComplete + +let s:completion_type = '' + +function TclComplete(findstart, base) + echomsg 'findstart=' . a:findstart . ', base=' . a:base + + if a:findstart + " return the starting point of the word + let line = getline('.') + let pos = col('.') - 1 + + while pos > 0 && line[pos - 1] !~ ' \|,^\|,\|\[\|\s\|\t\|:' + let pos -= 1 + endwhile + + " Additional namespace + if line[pos - 1] == ':' + " Two positions backward + let start = pos - 2 + " TODO: Options completion + elseif line[pos - 1] == '-' + let start = pos - 1 + " Subcommand completion + elseif line[pos - 1] =~ ' \|\t' + let start = pos - 1 + else + let labelstr = 'default' + endif + + " Getting the word to complete + if exists("start") + let labelpos = start + + while labelpos > 0 && line[labelpos - 1] =~ '[]a-zA-Z_:0-9\.\"\{\} -<>\\]' + let labelpos -= 1 + endwhile + + let labelstr=strpart(line, labelpos, start - labelpos) + + " The last word in the line + let len = strlen(labelstr) + + let newlabelstr = substitute(labelstr,"::","_ns_","") + + while len > 1 && !exists("b:".newlabelstr) + "let newlabelstr = substitute(strpart(labelstr,0,len),"::","_ns_","") + "let newlabelstr = substitute(newlabelstr," ","_sp_","") + let newlabelstr = TclEscape(strpart(labelstr,0,len)) + + "DEBUG: echo system ("echo -: ".substitute(strpart(labelstr,0,len),"::","_","")) + let len -= 1 + endwhile + + if exists("b:".newlabelstr) + let labelstr = newlabelstr + endif + endif + + if exists("labelstr") && labelstr != "" + let s:completion_type = labelstr + else + let s:completion_type = 'default' + endif + + " DEBUG: echo system("echo labelstring == ".labelstr." completion == ".s:completion_type) + return pos + else + let suggestions = [] + ""let l:r = substitute(s:completion_type, "::", "_ns_", "") + ""let l:r = substitute(l:r, " ", "_sp_", "") + let l:r = TclEscape(s:completion_type) + + if exists('b:'.l:r) + exe 'let listing = b:'.l:r + + for entry in listing + if entry.word =~ '^' . escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + endif + + return suggestions + + if !has('gui_running') + redraw! + endif + endif +endfu + +function TclEscape(str) + let result = substitute(a:str,"::","_ns_","g") + let result = substitute(result," ","_sp_","g") + return result +endfunction + +let b:default = [ +\ {'word': 'thread', 'menu': '[Thread] Extension for script access to Tcl threading'}, +\ {'word': 'tpool', 'menu': '[Thread] Part of the Tcl threading extension implementing pools of worker threads .'}, +\ {'word': 'tsv', 'menu': '[Thread] Part of the Tcl threading extension allowing script level manipulation of data shared between threads .'}, +\ {'word': 'ttrace', 'menu': '[Thread] Trace-based interpreter initialization'}, +\ {'word': 'itcl', 'menu': '[Itcl] object-oriented extensions to Tcl'}, +\ {'word': 'itclvars', 'menu': '[Itcl] variables used by [incr Tcl]'}, +\ {'word': 'bell', 'menu': '[Tk] Ring a displays bell'}, +\ {'word': 'bind', 'menu': '[Tk] Arrange for X events to invoke Tcl scripts'}, +\ {'word': 'bindtags', 'menu': '[Tk] Determine which bindings apply to a window, and order of evaluation'}, +\ {'word': 'bitmap', 'menu': '[Tk] Images that display two colors'}, +\ {'word': 'busy', 'menu': '[Tk] confine pointer events to a window sub-tree'}, +\ {'word': 'button', 'menu': '[Tk] Create and manipulate button action widgets'}, +\ {'word': 'canvas', 'menu': '[Tk] Create and manipulate canvas hypergraphics drawing surface widgets'}, +\ {'word': 'checkbutton', 'menu': '[Tk] Create and manipulate checkbutton boolean selection widgets'}, +\ {'word': 'clipboard', 'menu': '[Tk] Manipulate Tk clipboard'}, +\ {'word': 'colors', 'menu': '[Tk] symbolic color names recognized by Tk'}, +\ {'word': 'console', 'menu': '[Tk] Control the console on systems without a real console'}, +\ {'word': 'cursors', 'menu': '[Tk] mouse cursors available in Tk'}, +\ {'word': 'destroy', 'menu': '[Tk] Destroy one or more windows'}, +\ {'word': 'entry', 'menu': '[Tk] Create and manipulate entry one-line text entry widgets'}, +\ {'word': 'event', 'menu': '[Tk] Miscellaneous event facilities: define virtual events and generate events'}, +\ {'word': 'focus', 'menu': '[Tk] Manage the input focus'}, +\ {'word': 'font', 'menu': '[Tk] Create and inspect fonts.'}, +\ {'word': 'fontchooser', 'menu': '[Tk] control font selection dialog'}, +\ {'word': 'frame', 'menu': '[Tk] Create and manipulate frame simple container widgets'}, +\ {'word': 'grab', 'menu': '[Tk] Confine pointer and keyboard events to a window sub-tree'}, +\ {'word': 'grid', 'menu': '[Tk] Geometry manager that arranges widgets in a grid'}, +\ {'word': 'image', 'menu': '[Tk] Create and manipulate images'}, +\ {'word': 'keysyms', 'menu': '[Tk] keysyms recognized by Tk'}, +\ {'word': 'label', 'menu': '[Tk] Create and manipulate label non-interactive text or image widgets'}, +\ {'word': 'labelframe', 'menu': '[Tk] Create and manipulate labelframe labelled container widgets'}, +\ {'word': 'listbox', 'menu': '[Tk] Create and manipulate listbox item list widgets'}, +\ {'word': 'lower', 'menu': '[Tk] Change a windows position in the stacking order'}, +\ {'word': 'menubutton', 'menu': '[Tk] Create and manipulate menubutton pop-up menu indicator widgets'}, +\ {'word': 'message', 'menu': '[Tk] Create and manipulate message non-interactive text widgets'}, +\ {'word': 'option', 'menu': '[Tk] Add/retrieve window options to/from the option database'}, +\ {'word': 'options', 'menu': '[Tk] Standard options supported by widgets'}, +\ {'word': 'pack', 'menu': '[Tk] Geometry manager that packs around edges of cavity'}, +\ {'word': 'panedwindow', 'menu': '[Tk] Create and manipulate panedwindow split container widgets'}, +\ {'word': 'photo', 'menu': '[Tk] Full-color images'}, +\ {'word': 'place', 'menu': '[Tk] Geometry manager for fixed or rubber-sheet placement'}, +\ {'word': 'radiobutton', 'menu': '[Tk] Create and manipulate radiobutton pick-one widgets'}, +\ {'word': 'raise', 'menu': '[Tk] Change a windows position in the stacking order'}, +\ {'word': 'scale', 'menu': '[Tk] Create and manipulate scale value-controlled slider widgets'}, +\ {'word': 'scrollbar', 'menu': '[Tk] Create and manipulate scrollbar scrolling control and indicator widgets'}, +\ {'word': 'selection', 'menu': '[Tk] Manipulate the X selection'}, +\ {'word': 'send', 'menu': '[Tk] Execute a command in a different application'}, +\ {'word': 'spinbox', 'menu': '[Tk] Create and manipulate spinbox value spinner widgets'}, +\ {'word': 'tk', 'menu': '[Tk] Manipulate Tk internal state'}, +\ {'word': 'tkerror', 'menu': '[Tk] Command invoked to process background errors'}, +\ {'word': 'tkwait', 'menu': '[Tk] Wait for variable to change or window to be destroyed'}, +\ {'word': 'toplevel', 'menu': '[Tk] Create and manipulate toplevel main and popup window widgets'}, +\ {'word': 'ttk_image', 'menu': '[Tk] Define an element based on an image'}, +\ {'word': 'ttk_vsapi', 'menu': '[Tk] Define a Microsoft Visual Styles element'}, +\ {'word': 'winfo', 'menu': '[Tk] Return window-related information'}, +\ {'word': 'wm', 'menu': '[Tk] Communicate with window manager'}, +\ {'word': 'after', 'menu': '[Tcl] Execute a command after a time delay'}, +\ {'word': 'append', 'menu': '[Tcl] Append to variable'}, +\ {'word': 'apply', 'menu': '[Tcl] Apply an anonymous function'}, +\ {'word': 'array', 'menu': '[Tcl] Manipulate array variables'}, +\ {'word': 'bgerror', 'menu': '[Tcl] Command invoked to process background errors'}, +\ {'word': 'binary', 'menu': '[Tcl] Insert and extract fields from binary strings'}, +\ {'word': 'break', 'menu': '[Tcl] Abort looping command'}, +\ {'word': 'catch', 'menu': '[Tcl] Evaluate script and trap exceptional returns'}, +\ {'word': 'cd', 'menu': '[Tcl] Change working directory'}, +\ {'word': 'chan', 'menu': '[Tcl] Read, write and manipulate channels'}, +\ {'word': 'clock', 'menu': '[Tcl] Obtain and manipulate dates and times'}, +\ {'word': 'close', 'menu': '[Tcl] Close an open channel'}, +\ {'word': 'concat', 'menu': '[Tcl] Join lists together'}, +\ {'word': 'continue', 'menu': '[Tcl] Skip to the next iteration of a loop'}, +\ {'word': 'dde', 'menu': '[Tcl] Execute a Dynamic Data Exchange command'}, +\ {'word': 'dict', 'menu': '[Tcl] Manipulate dictionaries'}, +\ {'word': 'encoding', 'menu': '[Tcl] Manipulate encodings'}, +\ {'word': 'eof', 'menu': '[Tcl] Check for end of file condition on channel'}, +\ {'word': 'error', 'menu': '[Tcl] Generate an error'}, +\ {'word': 'eval', 'menu': '[Tcl] Evaluate a Tcl script'}, +\ {'word': 'exec', 'menu': '[Tcl] Invoke subprocesses'}, +\ {'word': 'exit', 'menu': '[Tcl] End the application'}, +\ {'word': 'expr', 'menu': '[Tcl] Evaluate an expression'}, +\ {'word': 'fblocked', 'menu': '[Tcl] Test whether the last input operation exhausted all available input'}, +\ {'word': 'fconfigure', 'menu': '[Tcl] Set and get options on a channel'}, +\ {'word': 'fcopy', 'menu': '[Tcl] Copy data from one channel to another'}, +\ {'word': 'file', 'menu': '[Tcl] Manipulate file names and attributes'}, +\ {'word': 'fileevent', 'menu': '[Tcl] Execute a script when a channel becomes readable or writable'}, +\ {'word': 'filename', 'menu': '[Tcl] File name conventions supported by Tcl commands'}, +\ {'word': 'flush', 'menu': '[Tcl] Flush buffered output for a channel'}, +\ {'word': 'for', 'menu': '[Tcl] For loop'}, +\ {'word': 'foreach', 'menu': '[Tcl] Iterate over all elements in one or more lists'}, +\ {'word': 'format', 'menu': '[Tcl] Format a string in the style of sprintf'}, +\ {'word': 'gets', 'menu': '[Tcl] Read a line from a channel'}, +\ {'word': 'glob', 'menu': '[Tcl] Return names of files that match patterns'}, +\ {'word': 'global', 'menu': '[Tcl] Access global variables'}, +\ {'word': 'history', 'menu': '[Tcl] Manipulate the history list'}, +\ {'word': 'http', 'menu': '[Tcl] Client-side implementation of the HTTP/1.1 protocol'}, +\ {'word': 'if', 'menu': '[Tcl] Execute scripts conditionally'}, +\ {'word': 'incr', 'menu': '[Tcl] Increment the value of a variable'}, +\ {'word': 'info', 'menu': '[Tcl] Return information about the state of the Tcl interpreter'}, +\ {'word': 'interp', 'menu': '[Tcl] Create and manipulate Tcl interpreters'}, +\ {'word': 'join', 'menu': '[Tcl] Create a string by joining together list elements'}, +\ {'word': 'lappend', 'menu': '[Tcl] Append list elements onto a variable'}, +\ {'word': 'lassign', 'menu': '[Tcl] Assign list elements to variables'}, +\ {'word': 'lindex', 'menu': '[Tcl] Retrieve an element from a list'}, +\ {'word': 'linsert', 'menu': '[Tcl] Insert elements into a list'}, +\ {'word': 'list', 'menu': '[Tcl] Create a list'}, +\ {'word': 'llength', 'menu': '[Tcl] Count the number of elements in a list'}, +\ {'word': 'lmap', 'menu': '[Tcl] Iterate over all elements in one or more lists and collect results'}, +\ {'word': 'load', 'menu': '[Tcl] Load machine code and initialize new commands'}, +\ {'word': 'lrange', 'menu': '[Tcl] Return one or more adjacent elements from a list'}, +\ {'word': 'lrepeat', 'menu': '[Tcl] Build a list by repeating elements'}, +\ {'word': 'lreplace', 'menu': '[Tcl] Replace elements in a list with new elements'}, +\ {'word': 'lreverse', 'menu': '[Tcl] Reverse the order of a list'}, +\ {'word': 'lsearch', 'menu': '[Tcl] See if a list contains a particular element'}, +\ {'word': 'lset', 'menu': '[Tcl] Change an element in a list'}, +\ {'word': 'lsort', 'menu': '[Tcl] Sort the elements of a list'}, +\ {'word': 'mathfunc', 'menu': '[Tcl] Mathematical functions for Tcl expressions'}, +\ {'word': 'mathop', 'menu': '[Tcl] Mathematical operators as Tcl commands'}, +\ {'word': 'memory', 'menu': '[Tcl] Control Tcl memory debugging capabilities'}, +\ {'word': 'msgcat', 'menu': '[Tcl] Tcl message catalog'}, +\ {'word': 'my', 'menu': '[Tcl] invoke any method of current object'}, +\ {'word': 'namespace', 'menu': '[Tcl] create and manipulate contexts for commands and variables'}, +\ {'word': 'open', 'menu': '[Tcl] Open a file-based or command pipeline channel'}, +\ {'word': 'package', 'menu': '[Tcl] Facilities for package loading and version control'}, +\ {'word': 'pid', 'menu': '[Tcl] Retrieve process identifiers'}, +\ {'word': 'platform', 'menu': '[Tcl] System identification support code and utilities'}, +\ {'word': 'proc', 'menu': '[Tcl] Create a Tcl procedure'}, +\ {'word': 'puts', 'menu': '[Tcl] Write to a channel'}, +\ {'word': 'pwd', 'menu': '[Tcl] Return the absolute path of the current working directory'}, +\ {'word': 're_syntax', 'menu': '[Tcl] Syntax of Tcl regular expressions'}, +\ {'word': 'read', 'menu': '[Tcl] Read from a channel'}, +\ {'word': 'refchan', 'menu': '[Tcl] command handler API of reflected channels'}, +\ {'word': 'regexp', 'menu': '[Tcl] Match a regular expression against a string'}, +\ {'word': 'registry', 'menu': '[Tcl] Manipulate the Windows registry'}, +\ {'word': 'regsub', 'menu': '[Tcl] Perform substitutions based on regular expression pattern matching'}, +\ {'word': 'rename', 'menu': '[Tcl] Rename or delete a command'}, +\ {'word': 'return', 'menu': '[Tcl] Return from a procedure, or set return code of a script'}, +\ {'word': 'safe', 'menu': '[Tcl] Creating and manipulating safe interpreters'}, +\ {'word': 'scan', 'menu': '[Tcl] Parse string using conversion specifiers in the style of sscanf'}, +\ {'word': 'seek', 'menu': '[Tcl] Change the access position for an open channel'}, +\ {'word': 'self', 'menu': '[Tcl] method call internal introspection'}, +\ {'word': 'set', 'menu': '[Tcl] Read and write variables'}, +\ {'word': 'socket', 'menu': '[Tcl] Open a TCP network connection'}, +\ {'word': 'source', 'menu': '[Tcl] Evaluate a file or resource as a Tcl script'}, +\ {'word': 'split', 'menu': '[Tcl] Split a string into a proper Tcl list'}, +\ {'word': 'string', 'menu': '[Tcl] Manipulate strings'}, +\ {'word': 'subst', 'menu': '[Tcl] Perform backslash, command, and variable substitutions'}, +\ {'word': 'switch', 'menu': '[Tcl] Evaluate one of several scripts, depending on a given value'}, +\ {'word': 'tailcall', 'menu': '[Tcl] Replace the current procedure with another command'}, +\ {'word': 'Tcl', 'menu': '[Tcl] Tool Command Language'}, +\ {'word': 'tcltest', 'menu': '[Tcl] Test harness support code and utilities'}, +\ {'word': 'tell', 'menu': '[Tcl] Return current access position for an open channel'}, +\ {'word': 'throw', 'menu': '[Tcl] Generate a machine-readable error'}, +\ {'word': 'time', 'menu': '[Tcl] Time the execution of a script'}, +\ {'word': 'timerate', 'menu': '[Tcl] Calibrated performance measurements of script execution time'}, +\ {'word': 'tm', 'menu': '[Tcl] Facilities for locating and loading of Tcl Modules'}, +\ {'word': 'trace', 'menu': '[Tcl] Monitor variable accesses, command usages and command executions'}, +\ {'word': 'transchan', 'menu': '[Tcl] command handler API of channel transforms'}, +\ {'word': 'try', 'menu': '[Tcl] Trap and process errors and exceptions'}, +\ {'word': 'unknown', 'menu': '[Tcl] Handle attempts to use non-existent commands'}, +\ {'word': 'unload', 'menu': '[Tcl] Unload machine code'}, +\ {'word': 'unset', 'menu': '[Tcl] Delete variables'}, +\ {'word': 'update', 'menu': '[Tcl] Process pending events and idle callbacks'}, +\ {'word': 'uplevel', 'menu': '[Tcl] Execute a script in a different stack frame'}, +\ {'word': 'upvar', 'menu': '[Tcl] Create link to variable in a different stack frame'}, +\ {'word': 'variable', 'menu': '[Tcl] create and initialize a namespace variable'}, +\ {'word': 'vwait', 'menu': '[Tcl] Process events until a variable is written'}, +\ {'word': 'while', 'menu': '[Tcl] Execute script repeatedly as long as a condition is met'}, +\ {'word': 'zlib', 'menu': '[Tcl] compression and decompression operations'}, +\ ] + +let b:class = [ +\ {'word': '-body', 'menu': ''}, +\ {'word': '-scope', 'menu': ''}, +\ ] + +let b:itclextendedclass = [ +\ {'word': '-body', 'menu': ''}, +\ {'word': '-config', 'menu': ''}, +\ ] + +let b:itcloption = [ +\ {'word': '-default', 'menu': 'defvalue'}, +\ {'word': '-readonly', 'menu': ''}, +\ {'word': '-cgetmethod', 'menu': 'methodName'}, +\ {'word': '-cgetmethodvar', 'menu': 'varName'}, +\ {'word': '-configuremethod', 'menu': 'methodName'}, +\ {'word': '-configuremethodvar', 'menu': 'varName'}, +\ {'word': '-validatemethod', 'menu': 'methodName'}, +\ {'word': '-validatemethodvar', 'menu': 'varName'}, +\ ] + +let b:itclwidget = [ +\ {'word': '-body', 'menu': ''}, +\ {'word': '-config', 'menu': ''}, +\ ] + +let b:package_sp_require = [ +\ {'word': 'BWidget', 'menu': '1.9.11'}, +\ {'word': 'Expect', 'menu': '5.45.3'}, +\ {'word': 'Ffidl', 'menu': '0.6.1'}, +\ {'word': 'Ffidlrt', 'menu': '0.1'}, +\ {'word': 'HTTP', 'menu': '2.0'}, +\ {'word': 'Img', 'menu': '1.4.6'}, +\ {'word': 'Itcl', 'menu': '4.1.2'}, +\ {'word': 'Itk', 'menu': '4.1.0'}, +\ {'word': 'Iwidgets', 'menu': '4.1.1'}, +\ {'word': 'JSONRPC', 'menu': '0.1'}, +\ {'word': 'Markdown', 'menu': '1.0'}, +\ {'word': 'Memchan', 'menu': '2.2.1'}, +\ {'word': 'Mentry', 'menu': '3.7'}, +\ {'word': 'Mentry_tile', 'menu': '3.7'}, +\ {'word': 'Mk4tcl', 'menu': '2.4.9.7.1'}, +\ {'word': 'Plotchart', 'menu': '2.3.4'}, +\ {'word': 'S3', 'menu': '1.0.3'}, +\ {'word': 'SASL', 'menu': '1.3.3'}, +\ {'word': 'SASL::NTLM', 'menu': '1.1.2'}, +\ {'word': 'SASL::SCRAM', 'menu': '0.1'}, +\ {'word': 'SASL::XGoogleToken', 'menu': '1.0.1'}, +\ {'word': 'SOAP', 'menu': '1.6.8.1'}, +\ {'word': 'SOAP::CGI', 'menu': '1.0.1'}, +\ {'word': 'SOAP::Domain', 'menu': '1.4.1'}, +\ {'word': 'SOAP::Service', 'menu': '0.5'}, +\ {'word': 'SOAP::Utils', 'menu': '1.1'}, +\ {'word': 'SOAP::ftp', 'menu': '1.0'}, +\ {'word': 'SOAP::http', 'menu': '1.0'}, +\ {'word': 'SOAP::https', 'menu': '1.0'}, +\ {'word': 'SOAP::smtp', 'menu': '1.0'}, +\ {'word': 'SOAP::xpath', 'menu': '0.2'}, +\ {'word': 'Site', 'menu': '1.0'}, +\ {'word': 'Tablelist', 'menu': '5.13'}, +\ {'word': 'Tablelist_tile', 'menu': '5.13'}, +\ {'word': 'TclOO', 'menu': '1.1.0'}, +\ {'word': 'Tclx', 'menu': '8.4'}, +\ {'word': 'Thread', 'menu': '2.8.4'}, +\ {'word': 'Tk', 'menu': '8.6.9'}, +\ {'word': 'Tktable', 'menu': '2.11'}, +\ {'word': 'Trf', 'menu': '2.1.4'}, +\ {'word': 'Ttrace', 'menu': '2.8.4'}, +\ {'word': 'Wcb', 'menu': '3.5'}, +\ {'word': 'Wub', 'menu': '5.0'}, +\ {'word': 'XMLRPC', 'menu': '1.0.1'}, +\ {'word': 'XOTcl', 'menu': '2.2.0'}, +\ {'word': 'aes', 'menu': '1.2.1'}, +\ {'word': 'ascii85', 'menu': '1.0'}, +\ {'word': 'asn', 'menu': '0.8.4'}, +\ {'word': 'autoproxy', 'menu': '1.5.3'}, +\ {'word': 'autoscroll', 'menu': '1.1'}, +\ {'word': 'base32', 'menu': '0.1'}, +\ {'word': 'base32::core', 'menu': '0.1'}, +\ {'word': 'base32::hex', 'menu': '0.1'}, +\ {'word': 'base64', 'menu': '2.4.2'}, +\ {'word': 'bee', 'menu': '0.1'}, +\ {'word': 'bench', 'menu': '0.4'}, +\ {'word': 'bench::in', 'menu': '0.1'}, +\ {'word': 'bench::out::csv', 'menu': '0.1.2'}, +\ {'word': 'bench::out::text', 'menu': '0.1.2'}, +\ {'word': 'bibtex', 'menu': '0.6'}, +\ {'word': 'bindDown', 'menu': '1.0'}, +\ {'word': 'blowfish', 'menu': '1.0.4'}, +\ {'word': 'cache::async', 'menu': '0.3'}, +\ {'word': 'canvas::drag', 'menu': '0.1'}, +\ {'word': 'canvas::edit::points', 'menu': '0.1'}, +\ {'word': 'canvas::edit::polyline', 'menu': '0.1'}, +\ {'word': 'canvas::edit::quadrilateral', 'menu': '0.1'}, +\ {'word': 'canvas::gradient', 'menu': '0.2'}, +\ {'word': 'canvas::highlight', 'menu': '0.1'}, +\ {'word': 'canvas::mvg', 'menu': '1'}, +\ {'word': 'canvas::snap', 'menu': '1.0.1'}, +\ {'word': 'canvas::sqmap', 'menu': '0.3.1'}, +\ {'word': 'canvas::tag', 'menu': '0.1'}, +\ {'word': 'canvas::track::lines', 'menu': '0.1'}, +\ {'word': 'canvas::zoom', 'menu': '0.2.1'}, +\ {'word': 'cgi2dom', 'menu': '1.1'}, +\ {'word': 'char', 'menu': '1.0.1'}, +\ {'word': 'chatwidget', 'menu': '1.1.0'}, +\ {'word': 'cksum', 'menu': '1.1.4'}, +\ {'word': 'clock::iso8601', 'menu': '0.1'}, +\ {'word': 'clock::rfc2822', 'menu': '0.1'}, +\ {'word': 'cmdline', 'menu': '1.5'}, +\ {'word': 'comm', 'menu': '4.6.3.1'}, +\ {'word': 'configuration', 'menu': '1'}, +\ {'word': 'control', 'menu': '0.1.3'}, +\ {'word': 'controlwidget', 'menu': '0.1'}, +\ {'word': 'coroutine', 'menu': '1.1.3'}, +\ {'word': 'coroutine::auto', 'menu': '1.1.3'}, +\ {'word': 'counter', 'menu': '2.0.4'}, +\ {'word': 'crc16', 'menu': '1.1.2'}, +\ {'word': 'crc32', 'menu': '1.3.2'}, +\ {'word': 'critcl', 'menu': '3.1.17'}, +\ {'word': 'critcl::app', 'menu': '3.1.17'}, +\ {'word': 'critcl::bitmap', 'menu': '1.0.1'}, +\ {'word': 'critcl::class', 'menu': '1.0.7'}, +\ {'word': 'critcl::cutil', 'menu': '0.1'}, +\ {'word': 'critcl::emap', 'menu': '1.1'}, +\ {'word': 'critcl::enum', 'menu': '1.0.1'}, +\ {'word': 'critcl::iassoc', 'menu': '1.0.2'}, +\ {'word': 'critcl::literals', 'menu': '1.2'}, +\ {'word': 'critcl::platform', 'menu': '1.0.15'}, +\ {'word': 'critcl::util', 'menu': '1.1'}, +\ {'word': 'cron', 'menu': '1.2.1'}, +\ {'word': 'crosshair', 'menu': '1.2'}, +\ {'word': 'csv', 'menu': '0.8.1'}, +\ {'word': 'ctext', 'menu': '3.3'}, +\ {'word': 'cursor', 'menu': '0.3.1'}, +\ {'word': 'datefield', 'menu': '0.2'}, +\ {'word': 'debug', 'menu': '1.0.6'}, +\ {'word': 'debug::caller', 'menu': '1.1'}, +\ {'word': 'debug::heartbeat', 'menu': '1'}, +\ {'word': 'debug::timestamp', 'menu': '1'}, +\ {'word': 'des', 'menu': '1.1.0'}, +\ {'word': 'diagram', 'menu': '1'}, +\ {'word': 'diagram::application', 'menu': '1.2'}, +\ {'word': 'diagram::attribute', 'menu': '1'}, +\ {'word': 'diagram::basic', 'menu': '1.0.1'}, +\ {'word': 'diagram::core', 'menu': '1'}, +\ {'word': 'diagram::direction', 'menu': '1'}, +\ {'word': 'diagram::element', 'menu': '1'}, +\ {'word': 'diagram::navigation', 'menu': '1'}, +\ {'word': 'diagram::point', 'menu': '1'}, +\ {'word': 'dict84', 'menu': '1'}, +\ {'word': 'dicttool', 'menu': '1.0'}, +\ {'word': 'dns', 'menu': '1.3.5'}, +\ {'word': 'docstrip', 'menu': '1.2'}, +\ {'word': 'docstrip::util', 'menu': '1.3.1'}, +\ {'word': 'doctools', 'menu': '1.4.19'}, +\ {'word': 'doctools::changelog', 'menu': '1.1'}, +\ {'word': 'doctools::config', 'menu': '0.1'}, +\ {'word': 'doctools::cvs', 'menu': '1'}, +\ {'word': 'doctools::html', 'menu': '0.1'}, +\ {'word': 'doctools::html::cssdefaults', 'menu': '0.1'}, +\ {'word': 'doctools::idx', 'menu': '1.0.5'}, +\ {'word': 'doctools::idx::export', 'menu': '0.1'}, +\ {'word': 'doctools::idx::export::docidx', 'menu': '0.1'}, +\ {'word': 'doctools::idx::export::html', 'menu': '0.2'}, +\ {'word': 'doctools::idx::export::json', 'menu': '0.1'}, +\ {'word': 'doctools::idx::export::nroff', 'menu': '0.3'}, +\ {'word': 'doctools::idx::export::text', 'menu': '0.2'}, +\ {'word': 'doctools::idx::export::wiki', 'menu': '0.2'}, +\ {'word': 'doctools::idx::import', 'menu': '0.1'}, +\ {'word': 'doctools::idx::import::docidx', 'menu': '0.1'}, +\ {'word': 'doctools::idx::import::json', 'menu': '0.1'}, +\ {'word': 'doctools::idx::parse', 'menu': '0.1'}, +\ {'word': 'doctools::idx::structure', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::c', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::de', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::en', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::fr', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::c', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::de', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::en', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::fr', 'menu': '0.1'}, +\ {'word': 'doctools::nroff::man_macros', 'menu': '0.1'}, +\ {'word': 'doctools::paths', 'menu': '0.1'}, +\ {'word': 'doctools::tcl::parse', 'menu': '0.1'}, +\ {'word': 'doctools::text', 'menu': '0.1'}, +\ {'word': 'doctools::toc', 'menu': '1.1.4'}, +\ {'word': 'doctools::toc::export', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::doctoc', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::html', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::json', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::nroff', 'menu': '0.2'}, +\ {'word': 'doctools::toc::export::text', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::wiki', 'menu': '0.1'}, +\ {'word': 'doctools::toc::import', 'menu': '0.1'}, +\ {'word': 'doctools::toc::import::doctoc', 'menu': '0.1'}, +\ {'word': 'doctools::toc::import::json', 'menu': '0.1'}, +\ {'word': 'doctools::toc::parse', 'menu': '0.1'}, +\ {'word': 'doctools::toc::structure', 'menu': '0.1'}, +\ {'word': 'dom', 'menu': '3.2'}, +\ {'word': 'dom::c', 'menu': '2.6'}, +\ {'word': 'dom::generic', 'menu': '2.6'}, +\ {'word': 'dom::libxml2', 'menu': '3.2'}, +\ {'word': 'dom::tcl', 'menu': '2.6'}, +\ {'word': 'dom::tclgeneric', 'menu': '2.6'}, +\ {'word': 'dommap', 'menu': '1.0'}, +\ {'word': 'domtext', 'menu': '2.5'}, +\ {'word': 'domtree', 'menu': '2.5'}, +\ {'word': 'dtplite', 'menu': '1.3'}, +\ {'word': 'expat', 'menu': '2.6'}, +\ {'word': 'fileutil', 'menu': '1.15'}, +\ {'word': 'fileutil::decode', 'menu': '0.2'}, +\ {'word': 'fileutil::globfind', 'menu': '1.5'}, +\ {'word': 'fileutil::magic::cfront', 'menu': '1.0'}, +\ {'word': 'fileutil::magic::cgen', 'menu': '1.0'}, +\ {'word': 'fileutil::magic::filetype', 'menu': '1.0.2'}, +\ {'word': 'fileutil::magic::mimetype', 'menu': '1.0.2'}, +\ {'word': 'fileutil::magic::rt', 'menu': '1.0'}, +\ {'word': 'fileutil::multi', 'menu': '0.1'}, +\ {'word': 'fileutil::multi::op', 'menu': '0.5.3'}, +\ {'word': 'fileutil::traverse', 'menu': '0.6'}, +\ {'word': 'ftp', 'menu': '2.4.13'}, +\ {'word': 'ftp::geturl', 'menu': '0.2.2'}, +\ {'word': 'ftpd', 'menu': '1.3'}, +\ {'word': 'generator', 'menu': '0.1'}, +\ {'word': 'getstring', 'menu': '0.1'}, +\ {'word': 'gpx', 'menu': '1'}, +\ {'word': 'grammar::aycock', 'menu': '1.0'}, +\ {'word': 'grammar::aycock::debug', 'menu': '1.0'}, +\ {'word': 'grammar::aycock::runtime', 'menu': '1.0'}, +\ {'word': 'grammar::fa', 'menu': '0.5'}, +\ {'word': 'grammar::fa::dacceptor', 'menu': '0.1.1'}, +\ {'word': 'grammar::fa::dexec', 'menu': '0.2'}, +\ {'word': 'grammar::fa::op', 'menu': '0.4.1'}, +\ {'word': 'grammar::me::cpu', 'menu': '0.2'}, +\ {'word': 'grammar::me::cpu::core', 'menu': '0.2'}, +\ {'word': 'grammar::me::cpu::gasm', 'menu': '0.1'}, +\ {'word': 'grammar::me::tcl', 'menu': '0.1'}, +\ {'word': 'grammar::me::util', 'menu': '0.1'}, +\ {'word': 'grammar::peg', 'menu': '0.2'}, +\ {'word': 'grammar::peg::interp', 'menu': '0.1.1'}, +\ {'word': 'history', 'menu': '0.1'}, +\ {'word': 'hook', 'menu': '0.1'}, +\ {'word': 'html', 'menu': '1.4.4'}, +\ {'word': 'htmlparse', 'menu': '1.2.2'}, +\ {'word': 'http', 'menu': '1.0'}, +\ {'word': 'http::wget', 'menu': '0.1'}, +\ {'word': 'httpd', 'menu': '4.0'}, +\ {'word': 'httpd::content', 'menu': '4.0'}, +\ {'word': 'httpd::dispatch', 'menu': '4.0'}, +\ {'word': 'huddle', 'menu': '0.2'}, +\ {'word': 'huddle::json', 'menu': '0.1'}, +\ {'word': 'ico', 'menu': '1.1'}, +\ {'word': 'ident', 'menu': '0.42'}, +\ {'word': 'imap4', 'menu': '0.5.3'}, +\ {'word': 'img::base', 'menu': '1.4.6'}, +\ {'word': 'img::bmp', 'menu': '1.4.6'}, +\ {'word': 'img::dted', 'menu': '1.4.6'}, +\ {'word': 'img::gif', 'menu': '1.4.6'}, +\ {'word': 'img::ico', 'menu': '1.4.6'}, +\ {'word': 'img::jpeg', 'menu': '1.4.6'}, +\ {'word': 'img::pcx', 'menu': '1.4.6'}, +\ {'word': 'img::pixmap', 'menu': '1.4.6'}, +\ {'word': 'img::png', 'menu': '1.4.6'}, +\ {'word': 'img::ppm', 'menu': '1.4.6'}, +\ {'word': 'img::ps', 'menu': '1.4.6'}, +\ {'word': 'img::raw', 'menu': '1.4.6'}, +\ {'word': 'img::sgi', 'menu': '1.4.6'}, +\ {'word': 'img::sun', 'menu': '1.4.6'}, +\ {'word': 'img::tga', 'menu': '1.4.6'}, +\ {'word': 'img::tiff', 'menu': '1.4.6'}, +\ {'word': 'img::window', 'menu': '1.4.6'}, +\ {'word': 'img::xbm', 'menu': '1.4.6'}, +\ {'word': 'img::xpm', 'menu': '1.4.6'}, +\ {'word': 'inifile', 'menu': '0.3'}, +\ {'word': 'interp', 'menu': '0.1.2'}, +\ {'word': 'interp::delegate::method', 'menu': '0.2'}, +\ {'word': 'interp::delegate::proc', 'menu': '0.2'}, +\ {'word': 'ip', 'menu': '1.3'}, +\ {'word': 'ipentry', 'menu': '0.3'}, +\ {'word': 'irc', 'menu': '0.6.1'}, +\ {'word': 'itcl', 'menu': '4.1.2'}, +\ {'word': 'itk', 'menu': '4.1.0'}, +\ {'word': 'javascript', 'menu': '1.0.2'}, +\ {'word': 'jpeg', 'menu': '0.5'}, +\ {'word': 'jpegtcl', 'menu': '9.2'}, +\ {'word': 'json', 'menu': '1.3.3'}, +\ {'word': 'json::write', 'menu': '1.0.3'}, +\ {'word': 'khim', 'menu': '1.0.1'}, +\ {'word': 'lambda', 'menu': '1'}, +\ {'word': 'lassign84', 'menu': '1.0.1'}, +\ {'word': 'ldap', 'menu': '1.8'}, +\ {'word': 'ldapx', 'menu': '1.0'}, +\ {'word': 'led', 'menu': '1.0'}, +\ {'word': 'lmap84', 'menu': '1'}, +\ {'word': 'log', 'menu': '1.3'}, +\ {'word': 'logger', 'menu': '0.9.4'}, +\ {'word': 'logger::appender', 'menu': '1.3'}, +\ {'word': 'logger::utils', 'menu': '1.3'}, +\ {'word': 'map::geocode::nominatim', 'menu': '0.1'}, +\ {'word': 'map::slippy', 'menu': '0.5'}, +\ {'word': 'map::slippy::cache', 'menu': '0.2'}, +\ {'word': 'map::slippy::fetcher', 'menu': '0.4'}, +\ {'word': 'mapproj', 'menu': '1.0'}, +\ {'word': 'math', 'menu': '1.2.5'}, +\ {'word': 'math::bigfloat', 'menu': '2.0.2'}, +\ {'word': 'math::bignum', 'menu': '3.1.1'}, +\ {'word': 'math::calculus', 'menu': '0.8.1'}, +\ {'word': 'math::calculus::symdiff', 'menu': '1.0.1'}, +\ {'word': 'math::complexnumbers', 'menu': '1.0.2'}, +\ {'word': 'math::constants', 'menu': '1.0.2'}, +\ {'word': 'math::decimal', 'menu': '1.0.3'}, +\ {'word': 'math::exact', 'menu': '1.0'}, +\ {'word': 'math::fourier', 'menu': '1.0.2'}, +\ {'word': 'math::fuzzy', 'menu': '0.2.1'}, +\ {'word': 'math::geometry', 'menu': '1.1.3'}, +\ {'word': 'math::interpolate', 'menu': '1.1'}, +\ {'word': 'math::linearalgebra', 'menu': '1.1.5'}, +\ {'word': 'math::machineparameters', 'menu': '0.1'}, +\ {'word': 'math::numtheory', 'menu': '1.0'}, +\ {'word': 'math::optimize', 'menu': '1.0.1'}, +\ {'word': 'math::polynomials', 'menu': '1.0.1'}, +\ {'word': 'math::rationalfunctions', 'menu': '1.0.1'}, +\ {'word': 'math::roman', 'menu': '1.0'}, +\ {'word': 'math::special', 'menu': '0.3.0'}, +\ {'word': 'math::statistics', 'menu': '1.0'}, +\ {'word': 'md4', 'menu': '1.0.6'}, +\ {'word': 'md5', 'menu': '1.4.4'}, +\ {'word': 'md5crypt', 'menu': '1.1.0'}, +\ {'word': 'mentry', 'menu': '3.7'}, +\ {'word': 'mentry::common', 'menu': '3.7'}, +\ {'word': 'mentry_tile', 'menu': '3.7'}, +\ {'word': 'menubar', 'menu': '0.5'}, +\ {'word': 'menubar::debug', 'menu': '0.5'}, +\ {'word': 'menubar::node', 'menu': '0.5'}, +\ {'word': 'menubar::tree', 'menu': '0.5'}, +\ {'word': 'meter', 'menu': '1.0'}, +\ {'word': 'mime', 'menu': '1.6'}, +\ {'word': 'msgcat', 'menu': '1.6.1'}, +\ {'word': 'multiplexer', 'menu': '0.2'}, +\ {'word': 'nameserv', 'menu': '0.4.2'}, +\ {'word': 'nameserv::auto', 'menu': '0.3'}, +\ {'word': 'nameserv::cluster', 'menu': '0.2.3'}, +\ {'word': 'nameserv::common', 'menu': '0.1'}, +\ {'word': 'nameserv::server', 'menu': '0.3.2'}, +\ {'word': 'namespacex', 'menu': '0.1'}, +\ {'word': 'ncgi', 'menu': '1.4.3'}, +\ {'word': 'nettool', 'menu': '0.5.1'}, +\ {'word': 'nmea', 'menu': '1.0.0'}, +\ {'word': 'nntp', 'menu': '0.2.1'}, +\ {'word': 'nsf', 'menu': '2.2.0'}, +\ {'word': 'ntext', 'menu': '0.81'}, +\ {'word': 'nx', 'menu': '2.2.0'}, +\ {'word': 'nx::class-method', 'menu': '1.0'}, +\ {'word': 'nx::help', 'menu': '1.0'}, +\ {'word': 'nx::plain-object-method', 'menu': '1.0'}, +\ {'word': 'nx::pp', 'menu': '1.0'}, +\ {'word': 'nx::serializer', 'menu': '2.2'}, +\ {'word': 'nx::shell', 'menu': '1.1'}, +\ {'word': 'nx::test', 'menu': '1.0'}, +\ {'word': 'nx::trait', 'menu': '0.4'}, +\ {'word': 'nx::trait::callback', 'menu': '1.0'}, +\ {'word': 'nx::volatile', 'menu': '1.0'}, +\ {'word': 'nx::zip', 'menu': '1.1'}, +\ {'word': 'oauth', 'menu': '1'}, +\ {'word': 'odie::processman', 'menu': '0.3'}, +\ {'word': 'oo::dialect', 'menu': '0.3'}, +\ {'word': 'oo::meta', 'menu': '0.4.1'}, +\ {'word': 'oo::option', 'menu': '0.3'}, +\ {'word': 'oo::util', 'menu': '1.2.2'}, +\ {'word': 'opt', 'menu': '0.4.6'}, +\ {'word': 'otp', 'menu': '1.0.0'}, +\ {'word': 'page::analysis::peg::emodes', 'menu': '0.1'}, +\ {'word': 'page::analysis::peg::minimize', 'menu': '0.1'}, +\ {'word': 'page::analysis::peg::reachable', 'menu': '0.1'}, +\ {'word': 'page::analysis::peg::realizable', 'menu': '0.1'}, +\ {'word': 'page::compiler::peg::mecpu', 'menu': '0.1.1'}, +\ {'word': 'page::config::peg', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::canon', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::cpkg', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::hb', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::me', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::mecpu', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::ser', 'menu': '0.1'}, +\ {'word': 'page::gen::tree::text', 'menu': '0.1'}, +\ {'word': 'page::parse::lemon', 'menu': '0.1'}, +\ {'word': 'page::parse::peg', 'menu': '0.1'}, +\ {'word': 'page::parse::peghb', 'menu': '0.1'}, +\ {'word': 'page::parse::pegser', 'menu': '0.1'}, +\ {'word': 'page::pluginmgr', 'menu': '0.2'}, +\ {'word': 'page::reader::hb', 'menu': '0.1'}, +\ {'word': 'page::reader::lemon', 'menu': '0.1'}, +\ {'word': 'page::reader::peg', 'menu': '0.1'}, +\ {'word': 'page::reader::ser', 'menu': '0.1'}, +\ {'word': 'page::reader::treeser', 'menu': '0.1'}, +\ {'word': 'page::transform::mecpu', 'menu': '0.1'}, +\ {'word': 'page::transform::reachable', 'menu': '0.1'}, +\ {'word': 'page::transform::realizable', 'menu': '0.1'}, +\ {'word': 'page::util::flow', 'menu': '0.1'}, +\ {'word': 'page::util::norm::lemon', 'menu': '0.1'}, +\ {'word': 'page::util::norm::peg', 'menu': '0.1'}, +\ {'word': 'page::util::peg', 'menu': '0.1'}, +\ {'word': 'page::util::quote', 'menu': '0.1'}, +\ {'word': 'page::writer::hb', 'menu': '0.1'}, +\ {'word': 'page::writer::identity', 'menu': '0.1'}, +\ {'word': 'page::writer::me', 'menu': '0.1'}, +\ {'word': 'page::writer::mecpu', 'menu': '0.1.1'}, +\ {'word': 'page::writer::null', 'menu': '0.1'}, +\ {'word': 'page::writer::peg', 'menu': '0.1'}, +\ {'word': 'page::writer::ser', 'menu': '0.1'}, +\ {'word': 'page::writer::tpc', 'menu': '0.1'}, +\ {'word': 'page::writer::tree', 'menu': '0.1'}, +\ {'word': 'paths', 'menu': '1'}, +\ {'word': 'picoirc', 'menu': '0.5.2'}, +\ {'word': 'pki', 'menu': '0.6'}, +\ {'word': 'platform', 'menu': '1.0.14'}, +\ {'word': 'plotanim', 'menu': '0.2'}, +\ {'word': 'pluginmgr', 'menu': '0.3'}, +\ {'word': 'png', 'menu': '0.2'}, +\ {'word': 'pngtcl', 'menu': '1.6.21'}, +\ {'word': 'pop3', 'menu': '1.9'}, +\ {'word': 'pop3d', 'menu': '1.1.0'}, +\ {'word': 'pop3d::dbox', 'menu': '1.0.2'}, +\ {'word': 'pop3d::udb', 'menu': '1.1'}, +\ {'word': 'processman', 'menu': '0.3'}, +\ {'word': 'profiler', 'menu': '0.3'}, +\ {'word': 'pt::ast', 'menu': '1.1'}, +\ {'word': 'pt::cparam::configuration::critcl', 'menu': '1.0.2'}, +\ {'word': 'pt::cparam::configuration::tea', 'menu': '0.1'}, +\ {'word': 'pt::parse::peg', 'menu': '1.0.1'}, +\ {'word': 'pt::pe', 'menu': '1.0.2'}, +\ {'word': 'pt::pe::op', 'menu': '1.0.1'}, +\ {'word': 'pt::peg', 'menu': '1'}, +\ {'word': 'pt::peg::container', 'menu': '1'}, +\ {'word': 'pt::peg::container::peg', 'menu': '1'}, +\ {'word': 'pt::peg::export', 'menu': '1'}, +\ {'word': 'pt::peg::export::container', 'menu': '1'}, +\ {'word': 'pt::peg::export::json', 'menu': '1'}, +\ {'word': 'pt::peg::export::peg', 'menu': '1'}, +\ {'word': 'pt::peg::from::json', 'menu': '1'}, +\ {'word': 'pt::peg::from::peg', 'menu': '1.0.3'}, +\ {'word': 'pt::peg::import', 'menu': '1'}, +\ {'word': 'pt::peg::import::json', 'menu': '1'}, +\ {'word': 'pt::peg::import::peg', 'menu': '1'}, +\ {'word': 'pt::peg::interp', 'menu': '1.0.1'}, +\ {'word': 'pt::peg::op', 'menu': '1.0.1'}, +\ {'word': 'pt::peg::to::container', 'menu': '1'}, +\ {'word': 'pt::peg::to::cparam', 'menu': '1.1.3'}, +\ {'word': 'pt::peg::to::json', 'menu': '1'}, +\ {'word': 'pt::peg::to::param', 'menu': '1.0.1'}, +\ {'word': 'pt::peg::to::peg', 'menu': '1.0.2'}, +\ {'word': 'pt::peg::to::tclparam', 'menu': '1.0.3'}, +\ {'word': 'pt::pgen', 'menu': '1.0.3'}, +\ {'word': 'pt::rde', 'menu': '1.1'}, +\ {'word': 'pt::rde::oo', 'menu': '1.1'}, +\ {'word': 'pt::tclparam::configuration::snit', 'menu': '1.0.2'}, +\ {'word': 'pt::tclparam::configuration::tcloo', 'menu': '1.0.4'}, +\ {'word': 'pt::util', 'menu': '1.1'}, +\ {'word': 'puretclparser', 'menu': '3.2'}, +\ {'word': 'radioMatrix', 'menu': '1.0'}, +\ {'word': 'rc4', 'menu': '1.1.0'}, +\ {'word': 'rcs', 'menu': '0.1'}, +\ {'word': 'rdial', 'menu': '0.3'}, +\ {'word': 'report', 'menu': '0.3.2'}, +\ {'word': 'resolv', 'menu': '1.0.3'}, +\ {'word': 'rest', 'menu': '1.0.2'}, +\ {'word': 'ripemd128', 'menu': '1.0.5'}, +\ {'word': 'ripemd160', 'menu': '1.0.5'}, +\ {'word': 'rpcvar', 'menu': '1.2'}, +\ {'word': 'scgi::app', 'menu': '0.1'}, +\ {'word': 'scgi::server', 'menu': '0.1'}, +\ {'word': 'sgml', 'menu': '1.9'}, +\ {'word': 'sgmlparser', 'menu': '1.1'}, +\ {'word': 'sha1', 'menu': '1.1.1'}, +\ {'word': 'sha256', 'menu': '1.0.3'}, +\ {'word': 'simulation::annealing', 'menu': '0.2'}, +\ {'word': 'simulation::montecarlo', 'menu': '0.1'}, +\ {'word': 'simulation::random', 'menu': '0.3.1'}, +\ {'word': 'smtp', 'menu': '1.4.5'}, +\ {'word': 'smtpd', 'menu': '1.5'}, +\ {'word': 'snit', 'menu': '1.4.2'}, +\ {'word': 'soapinterop::B', 'menu': '1.0'}, +\ {'word': 'soapinterop::C', 'menu': '1.0'}, +\ {'word': 'soapinterop::base', 'menu': '1.0'}, +\ {'word': 'soundex', 'menu': '1.0'}, +\ {'word': 'spf', 'menu': '1.1.1'}, +\ {'word': 'sqlite3', 'menu': '3.20.1'}, +\ {'word': 'starkit', 'menu': '1.3.3'}, +\ {'word': 'stooop', 'menu': '4.4.1'}, +\ {'word': 'string::token', 'menu': '1'}, +\ {'word': 'string::token::shell', 'menu': '1.2'}, +\ {'word': 'stringprep', 'menu': '1.0.1'}, +\ {'word': 'stringprep::data', 'menu': '1.0.1'}, +\ {'word': 'struct', 'menu': '1.4'}, +\ {'word': 'struct::disjointset', 'menu': '1.0'}, +\ {'word': 'struct::graph', 'menu': '2.4'}, +\ {'word': 'struct::graph::op', 'menu': '0.11.3'}, +\ {'word': 'struct::list', 'menu': '1.8.3'}, +\ {'word': 'struct::matrix', 'menu': '2.0.3'}, +\ {'word': 'struct::pool', 'menu': '1.2.3'}, +\ {'word': 'struct::prioqueue', 'menu': '1.4'}, +\ {'word': 'struct::queue', 'menu': '1.4.5'}, +\ {'word': 'struct::record', 'menu': '1.2.1'}, +\ {'word': 'struct::set', 'menu': '2.2.3'}, +\ {'word': 'struct::skiplist', 'menu': '1.3'}, +\ {'word': 'struct::stack', 'menu': '1.5.3'}, +\ {'word': 'struct::tree', 'menu': '1.2.2'}, +\ {'word': 'stubs::container', 'menu': '1'}, +\ {'word': 'stubs::gen', 'menu': '1'}, +\ {'word': 'stubs::gen::decl', 'menu': '1'}, +\ {'word': 'stubs::gen::header', 'menu': '1'}, +\ {'word': 'stubs::gen::init', 'menu': '1'}, +\ {'word': 'stubs::gen::lib', 'menu': '1'}, +\ {'word': 'stubs::gen::macro', 'menu': '1'}, +\ {'word': 'stubs::gen::slot', 'menu': '1'}, +\ {'word': 'stubs::reader', 'menu': '1'}, +\ {'word': 'stubs::writer', 'menu': '1'}, +\ {'word': 'style', 'menu': '0.3'}, +\ {'word': 'style::as', 'menu': '1.4.1'}, +\ {'word': 'style::lobster', 'menu': '0.2'}, +\ {'word': 'sum', 'menu': '1.1.2'}, +\ {'word': 'swaplist', 'menu': '0.2'}, +\ {'word': 'switched', 'menu': '2.2.1'}, +\ {'word': 'tablelist', 'menu': '5.13'}, +\ {'word': 'tablelist::common', 'menu': '5.13'}, +\ {'word': 'tablelist_tile', 'menu': '5.13'}, +\ {'word': 'tachometer', 'menu': '0.1'}, +\ {'word': 'tar', 'menu': '0.10'}, +\ {'word': 'tbcload', 'menu': '1.7'}, +\ {'word': 'tcl::chan::cat', 'menu': '1.0.2'}, +\ {'word': 'tcl::chan::core', 'menu': '1'}, +\ {'word': 'tcl::chan::events', 'menu': '1'}, +\ {'word': 'tcl::chan::facade', 'menu': '1.0.1'}, +\ {'word': 'tcl::chan::fifo', 'menu': '1'}, +\ {'word': 'tcl::chan::fifo2', 'menu': '1'}, +\ {'word': 'tcl::chan::halfpipe', 'menu': '1'}, +\ {'word': 'tcl::chan::memchan', 'menu': '1.0.3'}, +\ {'word': 'tcl::chan::null', 'menu': '1'}, +\ {'word': 'tcl::chan::nullzero', 'menu': '1'}, +\ {'word': 'tcl::chan::random', 'menu': '1'}, +\ {'word': 'tcl::chan::std', 'menu': '1.0.1'}, +\ {'word': 'tcl::chan::string', 'menu': '1.0.2'}, +\ {'word': 'tcl::chan::textwindow', 'menu': '1'}, +\ {'word': 'tcl::chan::variable', 'menu': '1.0.3'}, +\ {'word': 'tcl::chan::zero', 'menu': '1'}, +\ {'word': 'tcl::randomseed', 'menu': '1'}, +\ {'word': 'tcl::transform::adler32', 'menu': '1'}, +\ {'word': 'tcl::transform::base64', 'menu': '1'}, +\ {'word': 'tcl::transform::core', 'menu': '1'}, +\ {'word': 'tcl::transform::counter', 'menu': '1'}, +\ {'word': 'tcl::transform::crc32', 'menu': '1'}, +\ {'word': 'tcl::transform::hex', 'menu': '1'}, +\ {'word': 'tcl::transform::identity', 'menu': '1'}, +\ {'word': 'tcl::transform::limitsize', 'menu': '1'}, +\ {'word': 'tcl::transform::observe', 'menu': '1'}, +\ {'word': 'tcl::transform::otp', 'menu': '1'}, +\ {'word': 'tcl::transform::rot', 'menu': '1'}, +\ {'word': 'tcl::transform::spacer', 'menu': '1'}, +\ {'word': 'tcl::transform::zlib', 'menu': '1.0.1'}, +\ {'word': 'tclAE', 'menu': '2.0.5'}, +\ {'word': 'tclDES', 'menu': '1.0.0'}, +\ {'word': 'tclDESjr', 'menu': '1.0.0'}, +\ {'word': 'tcllibc', 'menu': '0.3.15'}, +\ {'word': 'tclparser', 'menu': '3.2'}, +\ {'word': 'tcltest', 'menu': '2.5.0'}, +\ {'word': 'tdbc', 'menu': '1.1.0'}, +\ {'word': 'tdbc::mysql', 'menu': '1.1.0'}, +\ {'word': 'tdbc::odbc', 'menu': '1.1.0'}, +\ {'word': 'tdbc::postgres', 'menu': '1.1.0'}, +\ {'word': 'tdom', 'menu': '0.8.3'}, +\ {'word': 'tepam', 'menu': '0.5'}, +\ {'word': 'tepam::doc_gen', 'menu': '0.1.1'}, +\ {'word': 'term', 'menu': '0.1'}, +\ {'word': 'term::ansi::code', 'menu': '0.2'}, +\ {'word': 'term::ansi::code::attr', 'menu': '0.1'}, +\ {'word': 'term::ansi::code::ctrl', 'menu': '0.2'}, +\ {'word': 'term::ansi::code::macros', 'menu': '0.1'}, +\ {'word': 'term::ansi::ctrl::unix', 'menu': '0.1.1'}, +\ {'word': 'term::ansi::send', 'menu': '0.2'}, +\ {'word': 'term::interact::menu', 'menu': '0.1'}, +\ {'word': 'term::interact::pager', 'menu': '0.1'}, +\ {'word': 'term::receive', 'menu': '0.1'}, +\ {'word': 'term::receive::bind', 'menu': '0.1'}, +\ {'word': 'term::send', 'menu': '0.1'}, +\ {'word': 'text::write', 'menu': '1'}, +\ {'word': 'textutil', 'menu': '0.8'}, +\ {'word': 'textutil::adjust', 'menu': '0.7.3'}, +\ {'word': 'textutil::expander', 'menu': '1.3.1'}, +\ {'word': 'textutil::repeat', 'menu': '0.7'}, +\ {'word': 'textutil::split', 'menu': '0.7'}, +\ {'word': 'textutil::string', 'menu': '0.8'}, +\ {'word': 'textutil::tabify', 'menu': '0.7'}, +\ {'word': 'textutil::trim', 'menu': '0.7'}, +\ {'word': 'throw', 'menu': '1'}, +\ {'word': 'tie', 'menu': '1.1'}, +\ {'word': 'tie::std::array', 'menu': '1.0'}, +\ {'word': 'tie::std::dsource', 'menu': '1.0'}, +\ {'word': 'tie::std::file', 'menu': '1.0.4'}, +\ {'word': 'tie::std::growfile', 'menu': '1.0'}, +\ {'word': 'tie::std::log', 'menu': '1.0'}, +\ {'word': 'tie::std::rarray', 'menu': '1.0.1'}, +\ {'word': 'tiff', 'menu': '0.2.1'}, +\ {'word': 'tifftcl', 'menu': '3.9.7'}, +\ {'word': 'time', 'menu': '1.2.1'}, +\ {'word': 'tipstack', 'menu': '1.0.1'}, +\ {'word': 'tkblt', 'menu': '3.2'}, +\ {'word': 'tkcon', 'menu': '2.7'}, +\ {'word': 'tkpiechart', 'menu': '6.6'}, +\ {'word': 'tls', 'menu': '1.7.16'}, +\ {'word': 'tnc', 'menu': '0.3.0'}, +\ {'word': 'tool', 'menu': '0.5'}, +\ {'word': 'tool::datatype', 'menu': '0.1'}, +\ {'word': 'tooltip', 'menu': '1.4.5'}, +\ {'word': 'transfer::connect', 'menu': '0.2'}, +\ {'word': 'transfer::copy', 'menu': '0.3'}, +\ {'word': 'transfer::copy::queue', 'menu': '0.1'}, +\ {'word': 'transfer::data::destination', 'menu': '0.2'}, +\ {'word': 'transfer::data::source', 'menu': '0.2'}, +\ {'word': 'transfer::receiver', 'menu': '0.2'}, +\ {'word': 'transfer::transmitter', 'menu': '0.2'}, +\ {'word': 'treectrl', 'menu': '2.4.1'}, +\ {'word': 'treeql', 'menu': '1.3.1'}, +\ {'word': 'trsync', 'menu': '1.0'}, +\ {'word': 'try', 'menu': '1'}, +\ {'word': 'uevent', 'menu': '0.3.1'}, +\ {'word': 'uevent::onidle', 'menu': '0.1'}, +\ {'word': 'unicode', 'menu': '1.0.0'}, +\ {'word': 'unicode::data', 'menu': '1.0.0'}, +\ {'word': 'units', 'menu': '2.1.1'}, +\ {'word': 'uri', 'menu': '1.2.6'}, +\ {'word': 'uri::urn', 'menu': '1.0.3'}, +\ {'word': 'uuencode', 'menu': '1.1.5'}, +\ {'word': 'uuid', 'menu': '1.0.5'}, +\ {'word': 'valtype::common', 'menu': '1'}, +\ {'word': 'valtype::creditcard::amex', 'menu': '1'}, +\ {'word': 'valtype::creditcard::discover', 'menu': '1'}, +\ {'word': 'valtype::creditcard::mastercard', 'menu': '1'}, +\ {'word': 'valtype::creditcard::visa', 'menu': '1'}, +\ {'word': 'valtype::gs1::ean13', 'menu': '1'}, +\ {'word': 'valtype::iban', 'menu': '1.5'}, +\ {'word': 'valtype::imei', 'menu': '1'}, +\ {'word': 'valtype::isbn', 'menu': '1'}, +\ {'word': 'valtype::luhn', 'menu': '1'}, +\ {'word': 'valtype::luhn5', 'menu': '1'}, +\ {'word': 'valtype::usnpi', 'menu': '1'}, +\ {'word': 'valtype::verhoeff', 'menu': '1'}, +\ {'word': 'vfs', 'menu': '1.4.2'}, +\ {'word': 'vfs::ftp', 'menu': '1.0'}, +\ {'word': 'vfs::http', 'menu': '0.6'}, +\ {'word': 'vfs::mk4', 'menu': '1.10.1'}, +\ {'word': 'vfs::ns', 'menu': '0.5.1'}, +\ {'word': 'vfs::tar', 'menu': '0.91'}, +\ {'word': 'vfs::template', 'menu': '1.5.5'}, +\ {'word': 'vfs::template::chroot', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::collate', 'menu': '1.5.3'}, +\ {'word': 'vfs::template::fish', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::quota', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::version', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::version::delta', 'menu': '1.5.2'}, +\ {'word': 'vfs::test', 'menu': '1.0'}, +\ {'word': 'vfs::tk', 'menu': '0.5'}, +\ {'word': 'vfs::urltype', 'menu': '1.0'}, +\ {'word': 'vfs::webdav', 'menu': '0.1'}, +\ {'word': 'vfs::zip', 'menu': '1.0.4.1'}, +\ {'word': 'voltmeter', 'menu': '0.1'}, +\ {'word': 'wcb', 'menu': '3.5'}, +\ {'word': 'websocket', 'menu': '1.4'}, +\ {'word': 'widget', 'menu': '3.1'}, +\ {'word': 'widget::all', 'menu': '1.2.4'}, +\ {'word': 'widget::arrowbutton', 'menu': '1.0'}, +\ {'word': 'widget::calendar', 'menu': '1.0.1'}, +\ {'word': 'widget::dateentry', 'menu': '0.96'}, +\ {'word': 'widget::dialog', 'menu': '1.3.1'}, +\ {'word': 'widget::listentry', 'menu': '0.1.1'}, +\ {'word': 'widget::listsimple', 'menu': '0.1.1'}, +\ {'word': 'widget::menuentry', 'menu': '1.0.1'}, +\ {'word': 'widget::panelframe', 'menu': '1.1'}, +\ {'word': 'widget::ruler', 'menu': '1.1'}, +\ {'word': 'widget::screenruler', 'menu': '1.2'}, +\ {'word': 'widget::scrolledtext', 'menu': '1.0'}, +\ {'word': 'widget::scrolledwindow', 'menu': '1.2.1'}, +\ {'word': 'widget::statusbar', 'menu': '1.2.1'}, +\ {'word': 'widget::superframe', 'menu': '1.0.1'}, +\ {'word': 'widget::toolbar', 'menu': '1.2.1'}, +\ {'word': 'widget::validator', 'menu': '0.1'}, +\ {'word': 'wip', 'menu': '2.2'}, +\ {'word': 'xml', 'menu': '3.2'}, +\ {'word': 'xml::c', 'menu': '2.6'}, +\ {'word': 'xml::dep', 'menu': '1.0'}, +\ {'word': 'xml::expat', 'menu': '2.6'}, +\ {'word': 'xml::libxml2', 'menu': '3.2'}, +\ {'word': 'xml::tcl', 'menu': '3.2'}, +\ {'word': 'xml::tclparser', 'menu': '3.2'}, +\ {'word': 'xmldefs', 'menu': '3.2'}, +\ {'word': 'xmldep', 'menu': '1.0'}, +\ {'word': 'xmlswitch', 'menu': '3.2'}, +\ {'word': 'xotcl::comm::connection', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::dav', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::ftp', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::httpAccess', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::httpd', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::imap', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::ldap', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::mime', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::pcache', 'menu': '2.0'}, +\ {'word': 'xotcl::htmllib', 'menu': '2.0'}, +\ {'word': 'xotcl::metadataAnalyzer', 'menu': '2.0'}, +\ {'word': 'xotcl::mixinStrategy', 'menu': '2.0'}, +\ {'word': 'xotcl::package', 'menu': '2.0'}, +\ {'word': 'xotcl::script', 'menu': '2.0'}, +\ {'word': 'xotcl::scriptCreation::recoveryPoint', 'menu': '2.0'}, +\ {'word': 'xotcl::scriptCreation::scriptCreator', 'menu': '2.0'}, +\ {'word': 'xotcl::serializer', 'menu': '2.1'}, +\ {'word': 'xotcl::staticMetadataAnalyzer', 'menu': '2.0'}, +\ {'word': 'xotcl::store', 'menu': '0.84'}, +\ {'word': 'xotcl::store::jufgdbm', 'menu': '0.81'}, +\ {'word': 'xotcl::store::mem', 'menu': '0.84'}, +\ {'word': 'xotcl::store::multi', 'menu': '0.9'}, +\ {'word': 'xotcl::store::persistence', 'menu': '0.8'}, +\ {'word': 'xotcl::store::tclgdbm', 'menu': '0.84'}, +\ {'word': 'xotcl::store::textfile', 'menu': '0.84'}, +\ {'word': 'xotcl::test', 'menu': '1.38'}, +\ {'word': 'xotcl::trace', 'menu': '2.0'}, +\ {'word': 'xotcl::upvar-compat', 'menu': '2.0'}, +\ {'word': 'xotcl::wafecompat', 'menu': '2.0'}, +\ {'word': 'xotcl::xodoc', 'menu': '2.0'}, +\ {'word': 'xpath', 'menu': '1.0'}, +\ {'word': 'xslt', 'menu': '3.2'}, +\ {'word': 'xslt::cache', 'menu': '3.2'}, +\ {'word': 'xslt::libxslt', 'menu': '3.2'}, +\ {'word': 'xslt::process', 'menu': '1.1'}, +\ {'word': 'xslt::resources', 'menu': '1.3'}, +\ {'word': 'xslt::utilities', 'menu': '3.2'}, +\ {'word': 'xsxp', 'menu': '1.0'}, +\ {'word': 'xyplot', 'menu': '1.0.1'}, +\ {'word': 'yaml', 'menu': '0.3.9'}, +\ {'word': 'yencode', 'menu': '1.1.3'}, +\ {'word': 'zipfile::decode', 'menu': '0.7'}, +\ {'word': 'zipfile::encode', 'menu': '0.4'}, +\ {'word': 'zipfile::mkzip', 'menu': '1.2'}, +\ {'word': 'zlibtcl', 'menu': '1.2.8.1'}, +\ ] + +let b:package_sp_forget = [ +\ {'word': 'BWidget', 'menu': '1.9.11'}, +\ {'word': 'Expect', 'menu': '5.45.3'}, +\ {'word': 'Ffidl', 'menu': '0.6.1'}, +\ {'word': 'Ffidlrt', 'menu': '0.1'}, +\ {'word': 'HTTP', 'menu': '2.0'}, +\ {'word': 'Img', 'menu': '1.4.6'}, +\ {'word': 'Itcl', 'menu': '4.1.2'}, +\ {'word': 'Itk', 'menu': '4.1.0'}, +\ {'word': 'Iwidgets', 'menu': '4.1.1'}, +\ {'word': 'JSONRPC', 'menu': '0.1'}, +\ {'word': 'Markdown', 'menu': '1.0'}, +\ {'word': 'Memchan', 'menu': '2.2.1'}, +\ {'word': 'Mentry', 'menu': '3.7'}, +\ {'word': 'Mentry_tile', 'menu': '3.7'}, +\ {'word': 'Mk4tcl', 'menu': '2.4.9.7.1'}, +\ {'word': 'Plotchart', 'menu': '2.3.4'}, +\ {'word': 'S3', 'menu': '1.0.3'}, +\ {'word': 'SASL', 'menu': '1.3.3'}, +\ {'word': 'SASL::NTLM', 'menu': '1.1.2'}, +\ {'word': 'SASL::SCRAM', 'menu': '0.1'}, +\ {'word': 'SASL::XGoogleToken', 'menu': '1.0.1'}, +\ {'word': 'SOAP', 'menu': '1.6.8.1'}, +\ {'word': 'SOAP::CGI', 'menu': '1.0.1'}, +\ {'word': 'SOAP::Domain', 'menu': '1.4.1'}, +\ {'word': 'SOAP::Service', 'menu': '0.5'}, +\ {'word': 'SOAP::Utils', 'menu': '1.1'}, +\ {'word': 'SOAP::ftp', 'menu': '1.0'}, +\ {'word': 'SOAP::http', 'menu': '1.0'}, +\ {'word': 'SOAP::https', 'menu': '1.0'}, +\ {'word': 'SOAP::smtp', 'menu': '1.0'}, +\ {'word': 'SOAP::xpath', 'menu': '0.2'}, +\ {'word': 'Site', 'menu': '1.0'}, +\ {'word': 'Tablelist', 'menu': '5.13'}, +\ {'word': 'Tablelist_tile', 'menu': '5.13'}, +\ {'word': 'TclOO', 'menu': '1.1.0'}, +\ {'word': 'Tclx', 'menu': '8.4'}, +\ {'word': 'Thread', 'menu': '2.8.4'}, +\ {'word': 'Tk', 'menu': '8.6.9'}, +\ {'word': 'Tktable', 'menu': '2.11'}, +\ {'word': 'Trf', 'menu': '2.1.4'}, +\ {'word': 'Ttrace', 'menu': '2.8.4'}, +\ {'word': 'Wcb', 'menu': '3.5'}, +\ {'word': 'Wub', 'menu': '5.0'}, +\ {'word': 'XMLRPC', 'menu': '1.0.1'}, +\ {'word': 'XOTcl', 'menu': '2.2.0'}, +\ {'word': 'aes', 'menu': '1.2.1'}, +\ {'word': 'ascii85', 'menu': '1.0'}, +\ {'word': 'asn', 'menu': '0.8.4'}, +\ {'word': 'autoproxy', 'menu': '1.5.3'}, +\ {'word': 'autoscroll', 'menu': '1.1'}, +\ {'word': 'base32', 'menu': '0.1'}, +\ {'word': 'base32::core', 'menu': '0.1'}, +\ {'word': 'base32::hex', 'menu': '0.1'}, +\ {'word': 'base64', 'menu': '2.4.2'}, +\ {'word': 'bee', 'menu': '0.1'}, +\ {'word': 'bench', 'menu': '0.4'}, +\ {'word': 'bench::in', 'menu': '0.1'}, +\ {'word': 'bench::out::csv', 'menu': '0.1.2'}, +\ {'word': 'bench::out::text', 'menu': '0.1.2'}, +\ {'word': 'bibtex', 'menu': '0.6'}, +\ {'word': 'bindDown', 'menu': '1.0'}, +\ {'word': 'blowfish', 'menu': '1.0.4'}, +\ {'word': 'cache::async', 'menu': '0.3'}, +\ {'word': 'canvas::drag', 'menu': '0.1'}, +\ {'word': 'canvas::edit::points', 'menu': '0.1'}, +\ {'word': 'canvas::edit::polyline', 'menu': '0.1'}, +\ {'word': 'canvas::edit::quadrilateral', 'menu': '0.1'}, +\ {'word': 'canvas::gradient', 'menu': '0.2'}, +\ {'word': 'canvas::highlight', 'menu': '0.1'}, +\ {'word': 'canvas::mvg', 'menu': '1'}, +\ {'word': 'canvas::snap', 'menu': '1.0.1'}, +\ {'word': 'canvas::sqmap', 'menu': '0.3.1'}, +\ {'word': 'canvas::tag', 'menu': '0.1'}, +\ {'word': 'canvas::track::lines', 'menu': '0.1'}, +\ {'word': 'canvas::zoom', 'menu': '0.2.1'}, +\ {'word': 'cgi2dom', 'menu': '1.1'}, +\ {'word': 'char', 'menu': '1.0.1'}, +\ {'word': 'chatwidget', 'menu': '1.1.0'}, +\ {'word': 'cksum', 'menu': '1.1.4'}, +\ {'word': 'clock::iso8601', 'menu': '0.1'}, +\ {'word': 'clock::rfc2822', 'menu': '0.1'}, +\ {'word': 'cmdline', 'menu': '1.5'}, +\ {'word': 'comm', 'menu': '4.6.3.1'}, +\ {'word': 'configuration', 'menu': '1'}, +\ {'word': 'control', 'menu': '0.1.3'}, +\ {'word': 'controlwidget', 'menu': '0.1'}, +\ {'word': 'coroutine', 'menu': '1.1.3'}, +\ {'word': 'coroutine::auto', 'menu': '1.1.3'}, +\ {'word': 'counter', 'menu': '2.0.4'}, +\ {'word': 'crc16', 'menu': '1.1.2'}, +\ {'word': 'crc32', 'menu': '1.3.2'}, +\ {'word': 'critcl', 'menu': '3.1.17'}, +\ {'word': 'critcl::app', 'menu': '3.1.17'}, +\ {'word': 'critcl::bitmap', 'menu': '1.0.1'}, +\ {'word': 'critcl::class', 'menu': '1.0.7'}, +\ {'word': 'critcl::cutil', 'menu': '0.1'}, +\ {'word': 'critcl::emap', 'menu': '1.1'}, +\ {'word': 'critcl::enum', 'menu': '1.0.1'}, +\ {'word': 'critcl::iassoc', 'menu': '1.0.2'}, +\ {'word': 'critcl::literals', 'menu': '1.2'}, +\ {'word': 'critcl::platform', 'menu': '1.0.15'}, +\ {'word': 'critcl::util', 'menu': '1.1'}, +\ {'word': 'cron', 'menu': '1.2.1'}, +\ {'word': 'crosshair', 'menu': '1.2'}, +\ {'word': 'csv', 'menu': '0.8.1'}, +\ {'word': 'ctext', 'menu': '3.3'}, +\ {'word': 'cursor', 'menu': '0.3.1'}, +\ {'word': 'datefield', 'menu': '0.2'}, +\ {'word': 'debug', 'menu': '1.0.6'}, +\ {'word': 'debug::caller', 'menu': '1.1'}, +\ {'word': 'debug::heartbeat', 'menu': '1'}, +\ {'word': 'debug::timestamp', 'menu': '1'}, +\ {'word': 'des', 'menu': '1.1.0'}, +\ {'word': 'diagram', 'menu': '1'}, +\ {'word': 'diagram::application', 'menu': '1.2'}, +\ {'word': 'diagram::attribute', 'menu': '1'}, +\ {'word': 'diagram::basic', 'menu': '1.0.1'}, +\ {'word': 'diagram::core', 'menu': '1'}, +\ {'word': 'diagram::direction', 'menu': '1'}, +\ {'word': 'diagram::element', 'menu': '1'}, +\ {'word': 'diagram::navigation', 'menu': '1'}, +\ {'word': 'diagram::point', 'menu': '1'}, +\ {'word': 'dict84', 'menu': '1'}, +\ {'word': 'dicttool', 'menu': '1.0'}, +\ {'word': 'dns', 'menu': '1.3.5'}, +\ {'word': 'docstrip', 'menu': '1.2'}, +\ {'word': 'docstrip::util', 'menu': '1.3.1'}, +\ {'word': 'doctools', 'menu': '1.4.19'}, +\ {'word': 'doctools::changelog', 'menu': '1.1'}, +\ {'word': 'doctools::config', 'menu': '0.1'}, +\ {'word': 'doctools::cvs', 'menu': '1'}, +\ {'word': 'doctools::html', 'menu': '0.1'}, +\ {'word': 'doctools::html::cssdefaults', 'menu': '0.1'}, +\ {'word': 'doctools::idx', 'menu': '1.0.5'}, +\ {'word': 'doctools::idx::export', 'menu': '0.1'}, +\ {'word': 'doctools::idx::export::docidx', 'menu': '0.1'}, +\ {'word': 'doctools::idx::export::html', 'menu': '0.2'}, +\ {'word': 'doctools::idx::export::json', 'menu': '0.1'}, +\ {'word': 'doctools::idx::export::nroff', 'menu': '0.3'}, +\ {'word': 'doctools::idx::export::text', 'menu': '0.2'}, +\ {'word': 'doctools::idx::export::wiki', 'menu': '0.2'}, +\ {'word': 'doctools::idx::import', 'menu': '0.1'}, +\ {'word': 'doctools::idx::import::docidx', 'menu': '0.1'}, +\ {'word': 'doctools::idx::import::json', 'menu': '0.1'}, +\ {'word': 'doctools::idx::parse', 'menu': '0.1'}, +\ {'word': 'doctools::idx::structure', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::c', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::de', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::en', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::fr', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::c', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::de', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::en', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::fr', 'menu': '0.1'}, +\ {'word': 'doctools::nroff::man_macros', 'menu': '0.1'}, +\ {'word': 'doctools::paths', 'menu': '0.1'}, +\ {'word': 'doctools::tcl::parse', 'menu': '0.1'}, +\ {'word': 'doctools::text', 'menu': '0.1'}, +\ {'word': 'doctools::toc', 'menu': '1.1.4'}, +\ {'word': 'doctools::toc::export', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::doctoc', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::html', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::json', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::nroff', 'menu': '0.2'}, +\ {'word': 'doctools::toc::export::text', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::wiki', 'menu': '0.1'}, +\ {'word': 'doctools::toc::import', 'menu': '0.1'}, +\ {'word': 'doctools::toc::import::doctoc', 'menu': '0.1'}, +\ {'word': 'doctools::toc::import::json', 'menu': '0.1'}, +\ {'word': 'doctools::toc::parse', 'menu': '0.1'}, +\ {'word': 'doctools::toc::structure', 'menu': '0.1'}, +\ {'word': 'dom', 'menu': '3.2'}, +\ {'word': 'dom::c', 'menu': '2.6'}, +\ {'word': 'dom::generic', 'menu': '2.6'}, +\ {'word': 'dom::libxml2', 'menu': '3.2'}, +\ {'word': 'dom::tcl', 'menu': '2.6'}, +\ {'word': 'dom::tclgeneric', 'menu': '2.6'}, +\ {'word': 'dommap', 'menu': '1.0'}, +\ {'word': 'domtext', 'menu': '2.5'}, +\ {'word': 'domtree', 'menu': '2.5'}, +\ {'word': 'dtplite', 'menu': '1.3'}, +\ {'word': 'expat', 'menu': '2.6'}, +\ {'word': 'fileutil', 'menu': '1.15'}, +\ {'word': 'fileutil::decode', 'menu': '0.2'}, +\ {'word': 'fileutil::globfind', 'menu': '1.5'}, +\ {'word': 'fileutil::magic::cfront', 'menu': '1.0'}, +\ {'word': 'fileutil::magic::cgen', 'menu': '1.0'}, +\ {'word': 'fileutil::magic::filetype', 'menu': '1.0.2'}, +\ {'word': 'fileutil::magic::mimetype', 'menu': '1.0.2'}, +\ {'word': 'fileutil::magic::rt', 'menu': '1.0'}, +\ {'word': 'fileutil::multi', 'menu': '0.1'}, +\ {'word': 'fileutil::multi::op', 'menu': '0.5.3'}, +\ {'word': 'fileutil::traverse', 'menu': '0.6'}, +\ {'word': 'ftp', 'menu': '2.4.13'}, +\ {'word': 'ftp::geturl', 'menu': '0.2.2'}, +\ {'word': 'ftpd', 'menu': '1.3'}, +\ {'word': 'generator', 'menu': '0.1'}, +\ {'word': 'getstring', 'menu': '0.1'}, +\ {'word': 'gpx', 'menu': '1'}, +\ {'word': 'grammar::aycock', 'menu': '1.0'}, +\ {'word': 'grammar::aycock::debug', 'menu': '1.0'}, +\ {'word': 'grammar::aycock::runtime', 'menu': '1.0'}, +\ {'word': 'grammar::fa', 'menu': '0.5'}, +\ {'word': 'grammar::fa::dacceptor', 'menu': '0.1.1'}, +\ {'word': 'grammar::fa::dexec', 'menu': '0.2'}, +\ {'word': 'grammar::fa::op', 'menu': '0.4.1'}, +\ {'word': 'grammar::me::cpu', 'menu': '0.2'}, +\ {'word': 'grammar::me::cpu::core', 'menu': '0.2'}, +\ {'word': 'grammar::me::cpu::gasm', 'menu': '0.1'}, +\ {'word': 'grammar::me::tcl', 'menu': '0.1'}, +\ {'word': 'grammar::me::util', 'menu': '0.1'}, +\ {'word': 'grammar::peg', 'menu': '0.2'}, +\ {'word': 'grammar::peg::interp', 'menu': '0.1.1'}, +\ {'word': 'history', 'menu': '0.1'}, +\ {'word': 'hook', 'menu': '0.1'}, +\ {'word': 'html', 'menu': '1.4.4'}, +\ {'word': 'htmlparse', 'menu': '1.2.2'}, +\ {'word': 'http', 'menu': '1.0'}, +\ {'word': 'http::wget', 'menu': '0.1'}, +\ {'word': 'httpd', 'menu': '4.0'}, +\ {'word': 'httpd::content', 'menu': '4.0'}, +\ {'word': 'httpd::dispatch', 'menu': '4.0'}, +\ {'word': 'huddle', 'menu': '0.2'}, +\ {'word': 'huddle::json', 'menu': '0.1'}, +\ {'word': 'ico', 'menu': '1.1'}, +\ {'word': 'ident', 'menu': '0.42'}, +\ {'word': 'imap4', 'menu': '0.5.3'}, +\ {'word': 'img::base', 'menu': '1.4.6'}, +\ {'word': 'img::bmp', 'menu': '1.4.6'}, +\ {'word': 'img::dted', 'menu': '1.4.6'}, +\ {'word': 'img::gif', 'menu': '1.4.6'}, +\ {'word': 'img::ico', 'menu': '1.4.6'}, +\ {'word': 'img::jpeg', 'menu': '1.4.6'}, +\ {'word': 'img::pcx', 'menu': '1.4.6'}, +\ {'word': 'img::pixmap', 'menu': '1.4.6'}, +\ {'word': 'img::png', 'menu': '1.4.6'}, +\ {'word': 'img::ppm', 'menu': '1.4.6'}, +\ {'word': 'img::ps', 'menu': '1.4.6'}, +\ {'word': 'img::raw', 'menu': '1.4.6'}, +\ {'word': 'img::sgi', 'menu': '1.4.6'}, +\ {'word': 'img::sun', 'menu': '1.4.6'}, +\ {'word': 'img::tga', 'menu': '1.4.6'}, +\ {'word': 'img::tiff', 'menu': '1.4.6'}, +\ {'word': 'img::window', 'menu': '1.4.6'}, +\ {'word': 'img::xbm', 'menu': '1.4.6'}, +\ {'word': 'img::xpm', 'menu': '1.4.6'}, +\ {'word': 'inifile', 'menu': '0.3'}, +\ {'word': 'interp', 'menu': '0.1.2'}, +\ {'word': 'interp::delegate::method', 'menu': '0.2'}, +\ {'word': 'interp::delegate::proc', 'menu': '0.2'}, +\ {'word': 'ip', 'menu': '1.3'}, +\ {'word': 'ipentry', 'menu': '0.3'}, +\ {'word': 'irc', 'menu': '0.6.1'}, +\ {'word': 'itcl', 'menu': '4.1.2'}, +\ {'word': 'itk', 'menu': '4.1.0'}, +\ {'word': 'javascript', 'menu': '1.0.2'}, +\ {'word': 'jpeg', 'menu': '0.5'}, +\ {'word': 'jpegtcl', 'menu': '9.2'}, +\ {'word': 'json', 'menu': '1.3.3'}, +\ {'word': 'json::write', 'menu': '1.0.3'}, +\ {'word': 'khim', 'menu': '1.0.1'}, +\ {'word': 'lambda', 'menu': '1'}, +\ {'word': 'lassign84', 'menu': '1.0.1'}, +\ {'word': 'ldap', 'menu': '1.8'}, +\ {'word': 'ldapx', 'menu': '1.0'}, +\ {'word': 'led', 'menu': '1.0'}, +\ {'word': 'lmap84', 'menu': '1'}, +\ {'word': 'log', 'menu': '1.3'}, +\ {'word': 'logger', 'menu': '0.9.4'}, +\ {'word': 'logger::appender', 'menu': '1.3'}, +\ {'word': 'logger::utils', 'menu': '1.3'}, +\ {'word': 'map::geocode::nominatim', 'menu': '0.1'}, +\ {'word': 'map::slippy', 'menu': '0.5'}, +\ {'word': 'map::slippy::cache', 'menu': '0.2'}, +\ {'word': 'map::slippy::fetcher', 'menu': '0.4'}, +\ {'word': 'mapproj', 'menu': '1.0'}, +\ {'word': 'math', 'menu': '1.2.5'}, +\ {'word': 'math::bigfloat', 'menu': '2.0.2'}, +\ {'word': 'math::bignum', 'menu': '3.1.1'}, +\ {'word': 'math::calculus', 'menu': '0.8.1'}, +\ {'word': 'math::calculus::symdiff', 'menu': '1.0.1'}, +\ {'word': 'math::complexnumbers', 'menu': '1.0.2'}, +\ {'word': 'math::constants', 'menu': '1.0.2'}, +\ {'word': 'math::decimal', 'menu': '1.0.3'}, +\ {'word': 'math::exact', 'menu': '1.0'}, +\ {'word': 'math::fourier', 'menu': '1.0.2'}, +\ {'word': 'math::fuzzy', 'menu': '0.2.1'}, +\ {'word': 'math::geometry', 'menu': '1.1.3'}, +\ {'word': 'math::interpolate', 'menu': '1.1'}, +\ {'word': 'math::linearalgebra', 'menu': '1.1.5'}, +\ {'word': 'math::machineparameters', 'menu': '0.1'}, +\ {'word': 'math::numtheory', 'menu': '1.0'}, +\ {'word': 'math::optimize', 'menu': '1.0.1'}, +\ {'word': 'math::polynomials', 'menu': '1.0.1'}, +\ {'word': 'math::rationalfunctions', 'menu': '1.0.1'}, +\ {'word': 'math::roman', 'menu': '1.0'}, +\ {'word': 'math::special', 'menu': '0.3.0'}, +\ {'word': 'math::statistics', 'menu': '1.0'}, +\ {'word': 'md4', 'menu': '1.0.6'}, +\ {'word': 'md5', 'menu': '1.4.4'}, +\ {'word': 'md5crypt', 'menu': '1.1.0'}, +\ {'word': 'mentry', 'menu': '3.7'}, +\ {'word': 'mentry::common', 'menu': '3.7'}, +\ {'word': 'mentry_tile', 'menu': '3.7'}, +\ {'word': 'menubar', 'menu': '0.5'}, +\ {'word': 'menubar::debug', 'menu': '0.5'}, +\ {'word': 'menubar::node', 'menu': '0.5'}, +\ {'word': 'menubar::tree', 'menu': '0.5'}, +\ {'word': 'meter', 'menu': '1.0'}, +\ {'word': 'mime', 'menu': '1.6'}, +\ {'word': 'msgcat', 'menu': '1.6.1'}, +\ {'word': 'multiplexer', 'menu': '0.2'}, +\ {'word': 'nameserv', 'menu': '0.4.2'}, +\ {'word': 'nameserv::auto', 'menu': '0.3'}, +\ {'word': 'nameserv::cluster', 'menu': '0.2.3'}, +\ {'word': 'nameserv::common', 'menu': '0.1'}, +\ {'word': 'nameserv::server', 'menu': '0.3.2'}, +\ {'word': 'namespacex', 'menu': '0.1'}, +\ {'word': 'ncgi', 'menu': '1.4.3'}, +\ {'word': 'nettool', 'menu': '0.5.1'}, +\ {'word': 'nmea', 'menu': '1.0.0'}, +\ {'word': 'nntp', 'menu': '0.2.1'}, +\ {'word': 'nsf', 'menu': '2.2.0'}, +\ {'word': 'ntext', 'menu': '0.81'}, +\ {'word': 'nx', 'menu': '2.2.0'}, +\ {'word': 'nx::class-method', 'menu': '1.0'}, +\ {'word': 'nx::help', 'menu': '1.0'}, +\ {'word': 'nx::plain-object-method', 'menu': '1.0'}, +\ {'word': 'nx::pp', 'menu': '1.0'}, +\ {'word': 'nx::serializer', 'menu': '2.2'}, +\ {'word': 'nx::shell', 'menu': '1.1'}, +\ {'word': 'nx::test', 'menu': '1.0'}, +\ {'word': 'nx::trait', 'menu': '0.4'}, +\ {'word': 'nx::trait::callback', 'menu': '1.0'}, +\ {'word': 'nx::volatile', 'menu': '1.0'}, +\ {'word': 'nx::zip', 'menu': '1.1'}, +\ {'word': 'oauth', 'menu': '1'}, +\ {'word': 'odie::processman', 'menu': '0.3'}, +\ {'word': 'oo::dialect', 'menu': '0.3'}, +\ {'word': 'oo::meta', 'menu': '0.4.1'}, +\ {'word': 'oo::option', 'menu': '0.3'}, +\ {'word': 'oo::util', 'menu': '1.2.2'}, +\ {'word': 'opt', 'menu': '0.4.6'}, +\ {'word': 'otp', 'menu': '1.0.0'}, +\ {'word': 'page::analysis::peg::emodes', 'menu': '0.1'}, +\ {'word': 'page::analysis::peg::minimize', 'menu': '0.1'}, +\ {'word': 'page::analysis::peg::reachable', 'menu': '0.1'}, +\ {'word': 'page::analysis::peg::realizable', 'menu': '0.1'}, +\ {'word': 'page::compiler::peg::mecpu', 'menu': '0.1.1'}, +\ {'word': 'page::config::peg', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::canon', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::cpkg', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::hb', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::me', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::mecpu', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::ser', 'menu': '0.1'}, +\ {'word': 'page::gen::tree::text', 'menu': '0.1'}, +\ {'word': 'page::parse::lemon', 'menu': '0.1'}, +\ {'word': 'page::parse::peg', 'menu': '0.1'}, +\ {'word': 'page::parse::peghb', 'menu': '0.1'}, +\ {'word': 'page::parse::pegser', 'menu': '0.1'}, +\ {'word': 'page::pluginmgr', 'menu': '0.2'}, +\ {'word': 'page::reader::hb', 'menu': '0.1'}, +\ {'word': 'page::reader::lemon', 'menu': '0.1'}, +\ {'word': 'page::reader::peg', 'menu': '0.1'}, +\ {'word': 'page::reader::ser', 'menu': '0.1'}, +\ {'word': 'page::reader::treeser', 'menu': '0.1'}, +\ {'word': 'page::transform::mecpu', 'menu': '0.1'}, +\ {'word': 'page::transform::reachable', 'menu': '0.1'}, +\ {'word': 'page::transform::realizable', 'menu': '0.1'}, +\ {'word': 'page::util::flow', 'menu': '0.1'}, +\ {'word': 'page::util::norm::lemon', 'menu': '0.1'}, +\ {'word': 'page::util::norm::peg', 'menu': '0.1'}, +\ {'word': 'page::util::peg', 'menu': '0.1'}, +\ {'word': 'page::util::quote', 'menu': '0.1'}, +\ {'word': 'page::writer::hb', 'menu': '0.1'}, +\ {'word': 'page::writer::identity', 'menu': '0.1'}, +\ {'word': 'page::writer::me', 'menu': '0.1'}, +\ {'word': 'page::writer::mecpu', 'menu': '0.1.1'}, +\ {'word': 'page::writer::null', 'menu': '0.1'}, +\ {'word': 'page::writer::peg', 'menu': '0.1'}, +\ {'word': 'page::writer::ser', 'menu': '0.1'}, +\ {'word': 'page::writer::tpc', 'menu': '0.1'}, +\ {'word': 'page::writer::tree', 'menu': '0.1'}, +\ {'word': 'paths', 'menu': '1'}, +\ {'word': 'picoirc', 'menu': '0.5.2'}, +\ {'word': 'pki', 'menu': '0.6'}, +\ {'word': 'platform', 'menu': '1.0.14'}, +\ {'word': 'plotanim', 'menu': '0.2'}, +\ {'word': 'pluginmgr', 'menu': '0.3'}, +\ {'word': 'png', 'menu': '0.2'}, +\ {'word': 'pngtcl', 'menu': '1.6.21'}, +\ {'word': 'pop3', 'menu': '1.9'}, +\ {'word': 'pop3d', 'menu': '1.1.0'}, +\ {'word': 'pop3d::dbox', 'menu': '1.0.2'}, +\ {'word': 'pop3d::udb', 'menu': '1.1'}, +\ {'word': 'processman', 'menu': '0.3'}, +\ {'word': 'profiler', 'menu': '0.3'}, +\ {'word': 'pt::ast', 'menu': '1.1'}, +\ {'word': 'pt::cparam::configuration::critcl', 'menu': '1.0.2'}, +\ {'word': 'pt::cparam::configuration::tea', 'menu': '0.1'}, +\ {'word': 'pt::parse::peg', 'menu': '1.0.1'}, +\ {'word': 'pt::pe', 'menu': '1.0.2'}, +\ {'word': 'pt::pe::op', 'menu': '1.0.1'}, +\ {'word': 'pt::peg', 'menu': '1'}, +\ {'word': 'pt::peg::container', 'menu': '1'}, +\ {'word': 'pt::peg::container::peg', 'menu': '1'}, +\ {'word': 'pt::peg::export', 'menu': '1'}, +\ {'word': 'pt::peg::export::container', 'menu': '1'}, +\ {'word': 'pt::peg::export::json', 'menu': '1'}, +\ {'word': 'pt::peg::export::peg', 'menu': '1'}, +\ {'word': 'pt::peg::from::json', 'menu': '1'}, +\ {'word': 'pt::peg::from::peg', 'menu': '1.0.3'}, +\ {'word': 'pt::peg::import', 'menu': '1'}, +\ {'word': 'pt::peg::import::json', 'menu': '1'}, +\ {'word': 'pt::peg::import::peg', 'menu': '1'}, +\ {'word': 'pt::peg::interp', 'menu': '1.0.1'}, +\ {'word': 'pt::peg::op', 'menu': '1.0.1'}, +\ {'word': 'pt::peg::to::container', 'menu': '1'}, +\ {'word': 'pt::peg::to::cparam', 'menu': '1.1.3'}, +\ {'word': 'pt::peg::to::json', 'menu': '1'}, +\ {'word': 'pt::peg::to::param', 'menu': '1.0.1'}, +\ {'word': 'pt::peg::to::peg', 'menu': '1.0.2'}, +\ {'word': 'pt::peg::to::tclparam', 'menu': '1.0.3'}, +\ {'word': 'pt::pgen', 'menu': '1.0.3'}, +\ {'word': 'pt::rde', 'menu': '1.1'}, +\ {'word': 'pt::rde::oo', 'menu': '1.1'}, +\ {'word': 'pt::tclparam::configuration::snit', 'menu': '1.0.2'}, +\ {'word': 'pt::tclparam::configuration::tcloo', 'menu': '1.0.4'}, +\ {'word': 'pt::util', 'menu': '1.1'}, +\ {'word': 'puretclparser', 'menu': '3.2'}, +\ {'word': 'radioMatrix', 'menu': '1.0'}, +\ {'word': 'rc4', 'menu': '1.1.0'}, +\ {'word': 'rcs', 'menu': '0.1'}, +\ {'word': 'rdial', 'menu': '0.3'}, +\ {'word': 'report', 'menu': '0.3.2'}, +\ {'word': 'resolv', 'menu': '1.0.3'}, +\ {'word': 'rest', 'menu': '1.0.2'}, +\ {'word': 'ripemd128', 'menu': '1.0.5'}, +\ {'word': 'ripemd160', 'menu': '1.0.5'}, +\ {'word': 'rpcvar', 'menu': '1.2'}, +\ {'word': 'scgi::app', 'menu': '0.1'}, +\ {'word': 'scgi::server', 'menu': '0.1'}, +\ {'word': 'sgml', 'menu': '1.9'}, +\ {'word': 'sgmlparser', 'menu': '1.1'}, +\ {'word': 'sha1', 'menu': '1.1.1'}, +\ {'word': 'sha256', 'menu': '1.0.3'}, +\ {'word': 'simulation::annealing', 'menu': '0.2'}, +\ {'word': 'simulation::montecarlo', 'menu': '0.1'}, +\ {'word': 'simulation::random', 'menu': '0.3.1'}, +\ {'word': 'smtp', 'menu': '1.4.5'}, +\ {'word': 'smtpd', 'menu': '1.5'}, +\ {'word': 'snit', 'menu': '1.4.2'}, +\ {'word': 'soapinterop::B', 'menu': '1.0'}, +\ {'word': 'soapinterop::C', 'menu': '1.0'}, +\ {'word': 'soapinterop::base', 'menu': '1.0'}, +\ {'word': 'soundex', 'menu': '1.0'}, +\ {'word': 'spf', 'menu': '1.1.1'}, +\ {'word': 'sqlite3', 'menu': '3.20.1'}, +\ {'word': 'starkit', 'menu': '1.3.3'}, +\ {'word': 'stooop', 'menu': '4.4.1'}, +\ {'word': 'string::token', 'menu': '1'}, +\ {'word': 'string::token::shell', 'menu': '1.2'}, +\ {'word': 'stringprep', 'menu': '1.0.1'}, +\ {'word': 'stringprep::data', 'menu': '1.0.1'}, +\ {'word': 'struct', 'menu': '1.4'}, +\ {'word': 'struct::disjointset', 'menu': '1.0'}, +\ {'word': 'struct::graph', 'menu': '2.4'}, +\ {'word': 'struct::graph::op', 'menu': '0.11.3'}, +\ {'word': 'struct::list', 'menu': '1.8.3'}, +\ {'word': 'struct::matrix', 'menu': '2.0.3'}, +\ {'word': 'struct::pool', 'menu': '1.2.3'}, +\ {'word': 'struct::prioqueue', 'menu': '1.4'}, +\ {'word': 'struct::queue', 'menu': '1.4.5'}, +\ {'word': 'struct::record', 'menu': '1.2.1'}, +\ {'word': 'struct::set', 'menu': '2.2.3'}, +\ {'word': 'struct::skiplist', 'menu': '1.3'}, +\ {'word': 'struct::stack', 'menu': '1.5.3'}, +\ {'word': 'struct::tree', 'menu': '1.2.2'}, +\ {'word': 'stubs::container', 'menu': '1'}, +\ {'word': 'stubs::gen', 'menu': '1'}, +\ {'word': 'stubs::gen::decl', 'menu': '1'}, +\ {'word': 'stubs::gen::header', 'menu': '1'}, +\ {'word': 'stubs::gen::init', 'menu': '1'}, +\ {'word': 'stubs::gen::lib', 'menu': '1'}, +\ {'word': 'stubs::gen::macro', 'menu': '1'}, +\ {'word': 'stubs::gen::slot', 'menu': '1'}, +\ {'word': 'stubs::reader', 'menu': '1'}, +\ {'word': 'stubs::writer', 'menu': '1'}, +\ {'word': 'style', 'menu': '0.3'}, +\ {'word': 'style::as', 'menu': '1.4.1'}, +\ {'word': 'style::lobster', 'menu': '0.2'}, +\ {'word': 'sum', 'menu': '1.1.2'}, +\ {'word': 'swaplist', 'menu': '0.2'}, +\ {'word': 'switched', 'menu': '2.2.1'}, +\ {'word': 'tablelist', 'menu': '5.13'}, +\ {'word': 'tablelist::common', 'menu': '5.13'}, +\ {'word': 'tablelist_tile', 'menu': '5.13'}, +\ {'word': 'tachometer', 'menu': '0.1'}, +\ {'word': 'tar', 'menu': '0.10'}, +\ {'word': 'tbcload', 'menu': '1.7'}, +\ {'word': 'tcl::chan::cat', 'menu': '1.0.2'}, +\ {'word': 'tcl::chan::core', 'menu': '1'}, +\ {'word': 'tcl::chan::events', 'menu': '1'}, +\ {'word': 'tcl::chan::facade', 'menu': '1.0.1'}, +\ {'word': 'tcl::chan::fifo', 'menu': '1'}, +\ {'word': 'tcl::chan::fifo2', 'menu': '1'}, +\ {'word': 'tcl::chan::halfpipe', 'menu': '1'}, +\ {'word': 'tcl::chan::memchan', 'menu': '1.0.3'}, +\ {'word': 'tcl::chan::null', 'menu': '1'}, +\ {'word': 'tcl::chan::nullzero', 'menu': '1'}, +\ {'word': 'tcl::chan::random', 'menu': '1'}, +\ {'word': 'tcl::chan::std', 'menu': '1.0.1'}, +\ {'word': 'tcl::chan::string', 'menu': '1.0.2'}, +\ {'word': 'tcl::chan::textwindow', 'menu': '1'}, +\ {'word': 'tcl::chan::variable', 'menu': '1.0.3'}, +\ {'word': 'tcl::chan::zero', 'menu': '1'}, +\ {'word': 'tcl::randomseed', 'menu': '1'}, +\ {'word': 'tcl::transform::adler32', 'menu': '1'}, +\ {'word': 'tcl::transform::base64', 'menu': '1'}, +\ {'word': 'tcl::transform::core', 'menu': '1'}, +\ {'word': 'tcl::transform::counter', 'menu': '1'}, +\ {'word': 'tcl::transform::crc32', 'menu': '1'}, +\ {'word': 'tcl::transform::hex', 'menu': '1'}, +\ {'word': 'tcl::transform::identity', 'menu': '1'}, +\ {'word': 'tcl::transform::limitsize', 'menu': '1'}, +\ {'word': 'tcl::transform::observe', 'menu': '1'}, +\ {'word': 'tcl::transform::otp', 'menu': '1'}, +\ {'word': 'tcl::transform::rot', 'menu': '1'}, +\ {'word': 'tcl::transform::spacer', 'menu': '1'}, +\ {'word': 'tcl::transform::zlib', 'menu': '1.0.1'}, +\ {'word': 'tclAE', 'menu': '2.0.5'}, +\ {'word': 'tclDES', 'menu': '1.0.0'}, +\ {'word': 'tclDESjr', 'menu': '1.0.0'}, +\ {'word': 'tcllibc', 'menu': '0.3.15'}, +\ {'word': 'tclparser', 'menu': '3.2'}, +\ {'word': 'tcltest', 'menu': '2.5.0'}, +\ {'word': 'tdbc', 'menu': '1.1.0'}, +\ {'word': 'tdbc::mysql', 'menu': '1.1.0'}, +\ {'word': 'tdbc::odbc', 'menu': '1.1.0'}, +\ {'word': 'tdbc::postgres', 'menu': '1.1.0'}, +\ {'word': 'tdom', 'menu': '0.8.3'}, +\ {'word': 'tepam', 'menu': '0.5'}, +\ {'word': 'tepam::doc_gen', 'menu': '0.1.1'}, +\ {'word': 'term', 'menu': '0.1'}, +\ {'word': 'term::ansi::code', 'menu': '0.2'}, +\ {'word': 'term::ansi::code::attr', 'menu': '0.1'}, +\ {'word': 'term::ansi::code::ctrl', 'menu': '0.2'}, +\ {'word': 'term::ansi::code::macros', 'menu': '0.1'}, +\ {'word': 'term::ansi::ctrl::unix', 'menu': '0.1.1'}, +\ {'word': 'term::ansi::send', 'menu': '0.2'}, +\ {'word': 'term::interact::menu', 'menu': '0.1'}, +\ {'word': 'term::interact::pager', 'menu': '0.1'}, +\ {'word': 'term::receive', 'menu': '0.1'}, +\ {'word': 'term::receive::bind', 'menu': '0.1'}, +\ {'word': 'term::send', 'menu': '0.1'}, +\ {'word': 'text::write', 'menu': '1'}, +\ {'word': 'textutil', 'menu': '0.8'}, +\ {'word': 'textutil::adjust', 'menu': '0.7.3'}, +\ {'word': 'textutil::expander', 'menu': '1.3.1'}, +\ {'word': 'textutil::repeat', 'menu': '0.7'}, +\ {'word': 'textutil::split', 'menu': '0.7'}, +\ {'word': 'textutil::string', 'menu': '0.8'}, +\ {'word': 'textutil::tabify', 'menu': '0.7'}, +\ {'word': 'textutil::trim', 'menu': '0.7'}, +\ {'word': 'throw', 'menu': '1'}, +\ {'word': 'tie', 'menu': '1.1'}, +\ {'word': 'tie::std::array', 'menu': '1.0'}, +\ {'word': 'tie::std::dsource', 'menu': '1.0'}, +\ {'word': 'tie::std::file', 'menu': '1.0.4'}, +\ {'word': 'tie::std::growfile', 'menu': '1.0'}, +\ {'word': 'tie::std::log', 'menu': '1.0'}, +\ {'word': 'tie::std::rarray', 'menu': '1.0.1'}, +\ {'word': 'tiff', 'menu': '0.2.1'}, +\ {'word': 'tifftcl', 'menu': '3.9.7'}, +\ {'word': 'time', 'menu': '1.2.1'}, +\ {'word': 'tipstack', 'menu': '1.0.1'}, +\ {'word': 'tkblt', 'menu': '3.2'}, +\ {'word': 'tkcon', 'menu': '2.7'}, +\ {'word': 'tkpiechart', 'menu': '6.6'}, +\ {'word': 'tls', 'menu': '1.7.16'}, +\ {'word': 'tnc', 'menu': '0.3.0'}, +\ {'word': 'tool', 'menu': '0.5'}, +\ {'word': 'tool::datatype', 'menu': '0.1'}, +\ {'word': 'tooltip', 'menu': '1.4.5'}, +\ {'word': 'transfer::connect', 'menu': '0.2'}, +\ {'word': 'transfer::copy', 'menu': '0.3'}, +\ {'word': 'transfer::copy::queue', 'menu': '0.1'}, +\ {'word': 'transfer::data::destination', 'menu': '0.2'}, +\ {'word': 'transfer::data::source', 'menu': '0.2'}, +\ {'word': 'transfer::receiver', 'menu': '0.2'}, +\ {'word': 'transfer::transmitter', 'menu': '0.2'}, +\ {'word': 'treectrl', 'menu': '2.4.1'}, +\ {'word': 'treeql', 'menu': '1.3.1'}, +\ {'word': 'trsync', 'menu': '1.0'}, +\ {'word': 'try', 'menu': '1'}, +\ {'word': 'uevent', 'menu': '0.3.1'}, +\ {'word': 'uevent::onidle', 'menu': '0.1'}, +\ {'word': 'unicode', 'menu': '1.0.0'}, +\ {'word': 'unicode::data', 'menu': '1.0.0'}, +\ {'word': 'units', 'menu': '2.1.1'}, +\ {'word': 'uri', 'menu': '1.2.6'}, +\ {'word': 'uri::urn', 'menu': '1.0.3'}, +\ {'word': 'uuencode', 'menu': '1.1.5'}, +\ {'word': 'uuid', 'menu': '1.0.5'}, +\ {'word': 'valtype::common', 'menu': '1'}, +\ {'word': 'valtype::creditcard::amex', 'menu': '1'}, +\ {'word': 'valtype::creditcard::discover', 'menu': '1'}, +\ {'word': 'valtype::creditcard::mastercard', 'menu': '1'}, +\ {'word': 'valtype::creditcard::visa', 'menu': '1'}, +\ {'word': 'valtype::gs1::ean13', 'menu': '1'}, +\ {'word': 'valtype::iban', 'menu': '1.5'}, +\ {'word': 'valtype::imei', 'menu': '1'}, +\ {'word': 'valtype::isbn', 'menu': '1'}, +\ {'word': 'valtype::luhn', 'menu': '1'}, +\ {'word': 'valtype::luhn5', 'menu': '1'}, +\ {'word': 'valtype::usnpi', 'menu': '1'}, +\ {'word': 'valtype::verhoeff', 'menu': '1'}, +\ {'word': 'vfs', 'menu': '1.4.2'}, +\ {'word': 'vfs::ftp', 'menu': '1.0'}, +\ {'word': 'vfs::http', 'menu': '0.6'}, +\ {'word': 'vfs::mk4', 'menu': '1.10.1'}, +\ {'word': 'vfs::ns', 'menu': '0.5.1'}, +\ {'word': 'vfs::tar', 'menu': '0.91'}, +\ {'word': 'vfs::template', 'menu': '1.5.5'}, +\ {'word': 'vfs::template::chroot', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::collate', 'menu': '1.5.3'}, +\ {'word': 'vfs::template::fish', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::quota', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::version', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::version::delta', 'menu': '1.5.2'}, +\ {'word': 'vfs::test', 'menu': '1.0'}, +\ {'word': 'vfs::tk', 'menu': '0.5'}, +\ {'word': 'vfs::urltype', 'menu': '1.0'}, +\ {'word': 'vfs::webdav', 'menu': '0.1'}, +\ {'word': 'vfs::zip', 'menu': '1.0.4.1'}, +\ {'word': 'voltmeter', 'menu': '0.1'}, +\ {'word': 'wcb', 'menu': '3.5'}, +\ {'word': 'websocket', 'menu': '1.4'}, +\ {'word': 'widget', 'menu': '3.1'}, +\ {'word': 'widget::all', 'menu': '1.2.4'}, +\ {'word': 'widget::arrowbutton', 'menu': '1.0'}, +\ {'word': 'widget::calendar', 'menu': '1.0.1'}, +\ {'word': 'widget::dateentry', 'menu': '0.96'}, +\ {'word': 'widget::dialog', 'menu': '1.3.1'}, +\ {'word': 'widget::listentry', 'menu': '0.1.1'}, +\ {'word': 'widget::listsimple', 'menu': '0.1.1'}, +\ {'word': 'widget::menuentry', 'menu': '1.0.1'}, +\ {'word': 'widget::panelframe', 'menu': '1.1'}, +\ {'word': 'widget::ruler', 'menu': '1.1'}, +\ {'word': 'widget::screenruler', 'menu': '1.2'}, +\ {'word': 'widget::scrolledtext', 'menu': '1.0'}, +\ {'word': 'widget::scrolledwindow', 'menu': '1.2.1'}, +\ {'word': 'widget::statusbar', 'menu': '1.2.1'}, +\ {'word': 'widget::superframe', 'menu': '1.0.1'}, +\ {'word': 'widget::toolbar', 'menu': '1.2.1'}, +\ {'word': 'widget::validator', 'menu': '0.1'}, +\ {'word': 'wip', 'menu': '2.2'}, +\ {'word': 'xml', 'menu': '3.2'}, +\ {'word': 'xml::c', 'menu': '2.6'}, +\ {'word': 'xml::dep', 'menu': '1.0'}, +\ {'word': 'xml::expat', 'menu': '2.6'}, +\ {'word': 'xml::libxml2', 'menu': '3.2'}, +\ {'word': 'xml::tcl', 'menu': '3.2'}, +\ {'word': 'xml::tclparser', 'menu': '3.2'}, +\ {'word': 'xmldefs', 'menu': '3.2'}, +\ {'word': 'xmldep', 'menu': '1.0'}, +\ {'word': 'xmlswitch', 'menu': '3.2'}, +\ {'word': 'xotcl::comm::connection', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::dav', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::ftp', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::httpAccess', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::httpd', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::imap', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::ldap', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::mime', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::pcache', 'menu': '2.0'}, +\ {'word': 'xotcl::htmllib', 'menu': '2.0'}, +\ {'word': 'xotcl::metadataAnalyzer', 'menu': '2.0'}, +\ {'word': 'xotcl::mixinStrategy', 'menu': '2.0'}, +\ {'word': 'xotcl::package', 'menu': '2.0'}, +\ {'word': 'xotcl::script', 'menu': '2.0'}, +\ {'word': 'xotcl::scriptCreation::recoveryPoint', 'menu': '2.0'}, +\ {'word': 'xotcl::scriptCreation::scriptCreator', 'menu': '2.0'}, +\ {'word': 'xotcl::serializer', 'menu': '2.1'}, +\ {'word': 'xotcl::staticMetadataAnalyzer', 'menu': '2.0'}, +\ {'word': 'xotcl::store', 'menu': '0.84'}, +\ {'word': 'xotcl::store::jufgdbm', 'menu': '0.81'}, +\ {'word': 'xotcl::store::mem', 'menu': '0.84'}, +\ {'word': 'xotcl::store::multi', 'menu': '0.9'}, +\ {'word': 'xotcl::store::persistence', 'menu': '0.8'}, +\ {'word': 'xotcl::store::tclgdbm', 'menu': '0.84'}, +\ {'word': 'xotcl::store::textfile', 'menu': '0.84'}, +\ {'word': 'xotcl::test', 'menu': '1.38'}, +\ {'word': 'xotcl::trace', 'menu': '2.0'}, +\ {'word': 'xotcl::upvar-compat', 'menu': '2.0'}, +\ {'word': 'xotcl::wafecompat', 'menu': '2.0'}, +\ {'word': 'xotcl::xodoc', 'menu': '2.0'}, +\ {'word': 'xpath', 'menu': '1.0'}, +\ {'word': 'xslt', 'menu': '3.2'}, +\ {'word': 'xslt::cache', 'menu': '3.2'}, +\ {'word': 'xslt::libxslt', 'menu': '3.2'}, +\ {'word': 'xslt::process', 'menu': '1.1'}, +\ {'word': 'xslt::resources', 'menu': '1.3'}, +\ {'word': 'xslt::utilities', 'menu': '3.2'}, +\ {'word': 'xsxp', 'menu': '1.0'}, +\ {'word': 'xyplot', 'menu': '1.0.1'}, +\ {'word': 'yaml', 'menu': '0.3.9'}, +\ {'word': 'yencode', 'menu': '1.1.3'}, +\ {'word': 'zipfile::decode', 'menu': '0.7'}, +\ {'word': 'zipfile::encode', 'menu': '0.4'}, +\ {'word': 'zipfile::mkzip', 'menu': '1.2'}, +\ {'word': 'zlibtcl', 'menu': '1.2.8.1'}, +\ ] + +let b:package_sp_ifneeded = [ +\ {'word': 'BWidget', 'menu': '1.9.11'}, +\ {'word': 'Expect', 'menu': '5.45.3'}, +\ {'word': 'Ffidl', 'menu': '0.6.1'}, +\ {'word': 'Ffidlrt', 'menu': '0.1'}, +\ {'word': 'HTTP', 'menu': '2.0'}, +\ {'word': 'Img', 'menu': '1.4.6'}, +\ {'word': 'Itcl', 'menu': '4.1.2'}, +\ {'word': 'Itk', 'menu': '4.1.0'}, +\ {'word': 'Iwidgets', 'menu': '4.1.1'}, +\ {'word': 'JSONRPC', 'menu': '0.1'}, +\ {'word': 'Markdown', 'menu': '1.0'}, +\ {'word': 'Memchan', 'menu': '2.2.1'}, +\ {'word': 'Mentry', 'menu': '3.7'}, +\ {'word': 'Mentry_tile', 'menu': '3.7'}, +\ {'word': 'Mk4tcl', 'menu': '2.4.9.7.1'}, +\ {'word': 'Plotchart', 'menu': '2.3.4'}, +\ {'word': 'S3', 'menu': '1.0.3'}, +\ {'word': 'SASL', 'menu': '1.3.3'}, +\ {'word': 'SASL::NTLM', 'menu': '1.1.2'}, +\ {'word': 'SASL::SCRAM', 'menu': '0.1'}, +\ {'word': 'SASL::XGoogleToken', 'menu': '1.0.1'}, +\ {'word': 'SOAP', 'menu': '1.6.8.1'}, +\ {'word': 'SOAP::CGI', 'menu': '1.0.1'}, +\ {'word': 'SOAP::Domain', 'menu': '1.4.1'}, +\ {'word': 'SOAP::Service', 'menu': '0.5'}, +\ {'word': 'SOAP::Utils', 'menu': '1.1'}, +\ {'word': 'SOAP::ftp', 'menu': '1.0'}, +\ {'word': 'SOAP::http', 'menu': '1.0'}, +\ {'word': 'SOAP::https', 'menu': '1.0'}, +\ {'word': 'SOAP::smtp', 'menu': '1.0'}, +\ {'word': 'SOAP::xpath', 'menu': '0.2'}, +\ {'word': 'Site', 'menu': '1.0'}, +\ {'word': 'Tablelist', 'menu': '5.13'}, +\ {'word': 'Tablelist_tile', 'menu': '5.13'}, +\ {'word': 'TclOO', 'menu': '1.1.0'}, +\ {'word': 'Tclx', 'menu': '8.4'}, +\ {'word': 'Thread', 'menu': '2.8.4'}, +\ {'word': 'Tk', 'menu': '8.6.9'}, +\ {'word': 'Tktable', 'menu': '2.11'}, +\ {'word': 'Trf', 'menu': '2.1.4'}, +\ {'word': 'Ttrace', 'menu': '2.8.4'}, +\ {'word': 'Wcb', 'menu': '3.5'}, +\ {'word': 'Wub', 'menu': '5.0'}, +\ {'word': 'XMLRPC', 'menu': '1.0.1'}, +\ {'word': 'XOTcl', 'menu': '2.2.0'}, +\ {'word': 'aes', 'menu': '1.2.1'}, +\ {'word': 'ascii85', 'menu': '1.0'}, +\ {'word': 'asn', 'menu': '0.8.4'}, +\ {'word': 'autoproxy', 'menu': '1.5.3'}, +\ {'word': 'autoscroll', 'menu': '1.1'}, +\ {'word': 'base32', 'menu': '0.1'}, +\ {'word': 'base32::core', 'menu': '0.1'}, +\ {'word': 'base32::hex', 'menu': '0.1'}, +\ {'word': 'base64', 'menu': '2.4.2'}, +\ {'word': 'bee', 'menu': '0.1'}, +\ {'word': 'bench', 'menu': '0.4'}, +\ {'word': 'bench::in', 'menu': '0.1'}, +\ {'word': 'bench::out::csv', 'menu': '0.1.2'}, +\ {'word': 'bench::out::text', 'menu': '0.1.2'}, +\ {'word': 'bibtex', 'menu': '0.6'}, +\ {'word': 'bindDown', 'menu': '1.0'}, +\ {'word': 'blowfish', 'menu': '1.0.4'}, +\ {'word': 'cache::async', 'menu': '0.3'}, +\ {'word': 'canvas::drag', 'menu': '0.1'}, +\ {'word': 'canvas::edit::points', 'menu': '0.1'}, +\ {'word': 'canvas::edit::polyline', 'menu': '0.1'}, +\ {'word': 'canvas::edit::quadrilateral', 'menu': '0.1'}, +\ {'word': 'canvas::gradient', 'menu': '0.2'}, +\ {'word': 'canvas::highlight', 'menu': '0.1'}, +\ {'word': 'canvas::mvg', 'menu': '1'}, +\ {'word': 'canvas::snap', 'menu': '1.0.1'}, +\ {'word': 'canvas::sqmap', 'menu': '0.3.1'}, +\ {'word': 'canvas::tag', 'menu': '0.1'}, +\ {'word': 'canvas::track::lines', 'menu': '0.1'}, +\ {'word': 'canvas::zoom', 'menu': '0.2.1'}, +\ {'word': 'cgi2dom', 'menu': '1.1'}, +\ {'word': 'char', 'menu': '1.0.1'}, +\ {'word': 'chatwidget', 'menu': '1.1.0'}, +\ {'word': 'cksum', 'menu': '1.1.4'}, +\ {'word': 'clock::iso8601', 'menu': '0.1'}, +\ {'word': 'clock::rfc2822', 'menu': '0.1'}, +\ {'word': 'cmdline', 'menu': '1.5'}, +\ {'word': 'comm', 'menu': '4.6.3.1'}, +\ {'word': 'configuration', 'menu': '1'}, +\ {'word': 'control', 'menu': '0.1.3'}, +\ {'word': 'controlwidget', 'menu': '0.1'}, +\ {'word': 'coroutine', 'menu': '1.1.3'}, +\ {'word': 'coroutine::auto', 'menu': '1.1.3'}, +\ {'word': 'counter', 'menu': '2.0.4'}, +\ {'word': 'crc16', 'menu': '1.1.2'}, +\ {'word': 'crc32', 'menu': '1.3.2'}, +\ {'word': 'critcl', 'menu': '3.1.17'}, +\ {'word': 'critcl::app', 'menu': '3.1.17'}, +\ {'word': 'critcl::bitmap', 'menu': '1.0.1'}, +\ {'word': 'critcl::class', 'menu': '1.0.7'}, +\ {'word': 'critcl::cutil', 'menu': '0.1'}, +\ {'word': 'critcl::emap', 'menu': '1.1'}, +\ {'word': 'critcl::enum', 'menu': '1.0.1'}, +\ {'word': 'critcl::iassoc', 'menu': '1.0.2'}, +\ {'word': 'critcl::literals', 'menu': '1.2'}, +\ {'word': 'critcl::platform', 'menu': '1.0.15'}, +\ {'word': 'critcl::util', 'menu': '1.1'}, +\ {'word': 'cron', 'menu': '1.2.1'}, +\ {'word': 'crosshair', 'menu': '1.2'}, +\ {'word': 'csv', 'menu': '0.8.1'}, +\ {'word': 'ctext', 'menu': '3.3'}, +\ {'word': 'cursor', 'menu': '0.3.1'}, +\ {'word': 'datefield', 'menu': '0.2'}, +\ {'word': 'debug', 'menu': '1.0.6'}, +\ {'word': 'debug::caller', 'menu': '1.1'}, +\ {'word': 'debug::heartbeat', 'menu': '1'}, +\ {'word': 'debug::timestamp', 'menu': '1'}, +\ {'word': 'des', 'menu': '1.1.0'}, +\ {'word': 'diagram', 'menu': '1'}, +\ {'word': 'diagram::application', 'menu': '1.2'}, +\ {'word': 'diagram::attribute', 'menu': '1'}, +\ {'word': 'diagram::basic', 'menu': '1.0.1'}, +\ {'word': 'diagram::core', 'menu': '1'}, +\ {'word': 'diagram::direction', 'menu': '1'}, +\ {'word': 'diagram::element', 'menu': '1'}, +\ {'word': 'diagram::navigation', 'menu': '1'}, +\ {'word': 'diagram::point', 'menu': '1'}, +\ {'word': 'dict84', 'menu': '1'}, +\ {'word': 'dicttool', 'menu': '1.0'}, +\ {'word': 'dns', 'menu': '1.3.5'}, +\ {'word': 'docstrip', 'menu': '1.2'}, +\ {'word': 'docstrip::util', 'menu': '1.3.1'}, +\ {'word': 'doctools', 'menu': '1.4.19'}, +\ {'word': 'doctools::changelog', 'menu': '1.1'}, +\ {'word': 'doctools::config', 'menu': '0.1'}, +\ {'word': 'doctools::cvs', 'menu': '1'}, +\ {'word': 'doctools::html', 'menu': '0.1'}, +\ {'word': 'doctools::html::cssdefaults', 'menu': '0.1'}, +\ {'word': 'doctools::idx', 'menu': '1.0.5'}, +\ {'word': 'doctools::idx::export', 'menu': '0.1'}, +\ {'word': 'doctools::idx::export::docidx', 'menu': '0.1'}, +\ {'word': 'doctools::idx::export::html', 'menu': '0.2'}, +\ {'word': 'doctools::idx::export::json', 'menu': '0.1'}, +\ {'word': 'doctools::idx::export::nroff', 'menu': '0.3'}, +\ {'word': 'doctools::idx::export::text', 'menu': '0.2'}, +\ {'word': 'doctools::idx::export::wiki', 'menu': '0.2'}, +\ {'word': 'doctools::idx::import', 'menu': '0.1'}, +\ {'word': 'doctools::idx::import::docidx', 'menu': '0.1'}, +\ {'word': 'doctools::idx::import::json', 'menu': '0.1'}, +\ {'word': 'doctools::idx::parse', 'menu': '0.1'}, +\ {'word': 'doctools::idx::structure', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::c', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::de', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::en', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::fr', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::c', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::de', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::en', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::fr', 'menu': '0.1'}, +\ {'word': 'doctools::nroff::man_macros', 'menu': '0.1'}, +\ {'word': 'doctools::paths', 'menu': '0.1'}, +\ {'word': 'doctools::tcl::parse', 'menu': '0.1'}, +\ {'word': 'doctools::text', 'menu': '0.1'}, +\ {'word': 'doctools::toc', 'menu': '1.1.4'}, +\ {'word': 'doctools::toc::export', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::doctoc', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::html', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::json', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::nroff', 'menu': '0.2'}, +\ {'word': 'doctools::toc::export::text', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::wiki', 'menu': '0.1'}, +\ {'word': 'doctools::toc::import', 'menu': '0.1'}, +\ {'word': 'doctools::toc::import::doctoc', 'menu': '0.1'}, +\ {'word': 'doctools::toc::import::json', 'menu': '0.1'}, +\ {'word': 'doctools::toc::parse', 'menu': '0.1'}, +\ {'word': 'doctools::toc::structure', 'menu': '0.1'}, +\ {'word': 'dom', 'menu': '3.2'}, +\ {'word': 'dom::c', 'menu': '2.6'}, +\ {'word': 'dom::generic', 'menu': '2.6'}, +\ {'word': 'dom::libxml2', 'menu': '3.2'}, +\ {'word': 'dom::tcl', 'menu': '2.6'}, +\ {'word': 'dom::tclgeneric', 'menu': '2.6'}, +\ {'word': 'dommap', 'menu': '1.0'}, +\ {'word': 'domtext', 'menu': '2.5'}, +\ {'word': 'domtree', 'menu': '2.5'}, +\ {'word': 'dtplite', 'menu': '1.3'}, +\ {'word': 'expat', 'menu': '2.6'}, +\ {'word': 'fileutil', 'menu': '1.15'}, +\ {'word': 'fileutil::decode', 'menu': '0.2'}, +\ {'word': 'fileutil::globfind', 'menu': '1.5'}, +\ {'word': 'fileutil::magic::cfront', 'menu': '1.0'}, +\ {'word': 'fileutil::magic::cgen', 'menu': '1.0'}, +\ {'word': 'fileutil::magic::filetype', 'menu': '1.0.2'}, +\ {'word': 'fileutil::magic::mimetype', 'menu': '1.0.2'}, +\ {'word': 'fileutil::magic::rt', 'menu': '1.0'}, +\ {'word': 'fileutil::multi', 'menu': '0.1'}, +\ {'word': 'fileutil::multi::op', 'menu': '0.5.3'}, +\ {'word': 'fileutil::traverse', 'menu': '0.6'}, +\ {'word': 'ftp', 'menu': '2.4.13'}, +\ {'word': 'ftp::geturl', 'menu': '0.2.2'}, +\ {'word': 'ftpd', 'menu': '1.3'}, +\ {'word': 'generator', 'menu': '0.1'}, +\ {'word': 'getstring', 'menu': '0.1'}, +\ {'word': 'gpx', 'menu': '1'}, +\ {'word': 'grammar::aycock', 'menu': '1.0'}, +\ {'word': 'grammar::aycock::debug', 'menu': '1.0'}, +\ {'word': 'grammar::aycock::runtime', 'menu': '1.0'}, +\ {'word': 'grammar::fa', 'menu': '0.5'}, +\ {'word': 'grammar::fa::dacceptor', 'menu': '0.1.1'}, +\ {'word': 'grammar::fa::dexec', 'menu': '0.2'}, +\ {'word': 'grammar::fa::op', 'menu': '0.4.1'}, +\ {'word': 'grammar::me::cpu', 'menu': '0.2'}, +\ {'word': 'grammar::me::cpu::core', 'menu': '0.2'}, +\ {'word': 'grammar::me::cpu::gasm', 'menu': '0.1'}, +\ {'word': 'grammar::me::tcl', 'menu': '0.1'}, +\ {'word': 'grammar::me::util', 'menu': '0.1'}, +\ {'word': 'grammar::peg', 'menu': '0.2'}, +\ {'word': 'grammar::peg::interp', 'menu': '0.1.1'}, +\ {'word': 'history', 'menu': '0.1'}, +\ {'word': 'hook', 'menu': '0.1'}, +\ {'word': 'html', 'menu': '1.4.4'}, +\ {'word': 'htmlparse', 'menu': '1.2.2'}, +\ {'word': 'http', 'menu': '1.0'}, +\ {'word': 'http::wget', 'menu': '0.1'}, +\ {'word': 'httpd', 'menu': '4.0'}, +\ {'word': 'httpd::content', 'menu': '4.0'}, +\ {'word': 'httpd::dispatch', 'menu': '4.0'}, +\ {'word': 'huddle', 'menu': '0.2'}, +\ {'word': 'huddle::json', 'menu': '0.1'}, +\ {'word': 'ico', 'menu': '1.1'}, +\ {'word': 'ident', 'menu': '0.42'}, +\ {'word': 'imap4', 'menu': '0.5.3'}, +\ {'word': 'img::base', 'menu': '1.4.6'}, +\ {'word': 'img::bmp', 'menu': '1.4.6'}, +\ {'word': 'img::dted', 'menu': '1.4.6'}, +\ {'word': 'img::gif', 'menu': '1.4.6'}, +\ {'word': 'img::ico', 'menu': '1.4.6'}, +\ {'word': 'img::jpeg', 'menu': '1.4.6'}, +\ {'word': 'img::pcx', 'menu': '1.4.6'}, +\ {'word': 'img::pixmap', 'menu': '1.4.6'}, +\ {'word': 'img::png', 'menu': '1.4.6'}, +\ {'word': 'img::ppm', 'menu': '1.4.6'}, +\ {'word': 'img::ps', 'menu': '1.4.6'}, +\ {'word': 'img::raw', 'menu': '1.4.6'}, +\ {'word': 'img::sgi', 'menu': '1.4.6'}, +\ {'word': 'img::sun', 'menu': '1.4.6'}, +\ {'word': 'img::tga', 'menu': '1.4.6'}, +\ {'word': 'img::tiff', 'menu': '1.4.6'}, +\ {'word': 'img::window', 'menu': '1.4.6'}, +\ {'word': 'img::xbm', 'menu': '1.4.6'}, +\ {'word': 'img::xpm', 'menu': '1.4.6'}, +\ {'word': 'inifile', 'menu': '0.3'}, +\ {'word': 'interp', 'menu': '0.1.2'}, +\ {'word': 'interp::delegate::method', 'menu': '0.2'}, +\ {'word': 'interp::delegate::proc', 'menu': '0.2'}, +\ {'word': 'ip', 'menu': '1.3'}, +\ {'word': 'ipentry', 'menu': '0.3'}, +\ {'word': 'irc', 'menu': '0.6.1'}, +\ {'word': 'itcl', 'menu': '4.1.2'}, +\ {'word': 'itk', 'menu': '4.1.0'}, +\ {'word': 'javascript', 'menu': '1.0.2'}, +\ {'word': 'jpeg', 'menu': '0.5'}, +\ {'word': 'jpegtcl', 'menu': '9.2'}, +\ {'word': 'json', 'menu': '1.3.3'}, +\ {'word': 'json::write', 'menu': '1.0.3'}, +\ {'word': 'khim', 'menu': '1.0.1'}, +\ {'word': 'lambda', 'menu': '1'}, +\ {'word': 'lassign84', 'menu': '1.0.1'}, +\ {'word': 'ldap', 'menu': '1.8'}, +\ {'word': 'ldapx', 'menu': '1.0'}, +\ {'word': 'led', 'menu': '1.0'}, +\ {'word': 'lmap84', 'menu': '1'}, +\ {'word': 'log', 'menu': '1.3'}, +\ {'word': 'logger', 'menu': '0.9.4'}, +\ {'word': 'logger::appender', 'menu': '1.3'}, +\ {'word': 'logger::utils', 'menu': '1.3'}, +\ {'word': 'map::geocode::nominatim', 'menu': '0.1'}, +\ {'word': 'map::slippy', 'menu': '0.5'}, +\ {'word': 'map::slippy::cache', 'menu': '0.2'}, +\ {'word': 'map::slippy::fetcher', 'menu': '0.4'}, +\ {'word': 'mapproj', 'menu': '1.0'}, +\ {'word': 'math', 'menu': '1.2.5'}, +\ {'word': 'math::bigfloat', 'menu': '2.0.2'}, +\ {'word': 'math::bignum', 'menu': '3.1.1'}, +\ {'word': 'math::calculus', 'menu': '0.8.1'}, +\ {'word': 'math::calculus::symdiff', 'menu': '1.0.1'}, +\ {'word': 'math::complexnumbers', 'menu': '1.0.2'}, +\ {'word': 'math::constants', 'menu': '1.0.2'}, +\ {'word': 'math::decimal', 'menu': '1.0.3'}, +\ {'word': 'math::exact', 'menu': '1.0'}, +\ {'word': 'math::fourier', 'menu': '1.0.2'}, +\ {'word': 'math::fuzzy', 'menu': '0.2.1'}, +\ {'word': 'math::geometry', 'menu': '1.1.3'}, +\ {'word': 'math::interpolate', 'menu': '1.1'}, +\ {'word': 'math::linearalgebra', 'menu': '1.1.5'}, +\ {'word': 'math::machineparameters', 'menu': '0.1'}, +\ {'word': 'math::numtheory', 'menu': '1.0'}, +\ {'word': 'math::optimize', 'menu': '1.0.1'}, +\ {'word': 'math::polynomials', 'menu': '1.0.1'}, +\ {'word': 'math::rationalfunctions', 'menu': '1.0.1'}, +\ {'word': 'math::roman', 'menu': '1.0'}, +\ {'word': 'math::special', 'menu': '0.3.0'}, +\ {'word': 'math::statistics', 'menu': '1.0'}, +\ {'word': 'md4', 'menu': '1.0.6'}, +\ {'word': 'md5', 'menu': '1.4.4'}, +\ {'word': 'md5crypt', 'menu': '1.1.0'}, +\ {'word': 'mentry', 'menu': '3.7'}, +\ {'word': 'mentry::common', 'menu': '3.7'}, +\ {'word': 'mentry_tile', 'menu': '3.7'}, +\ {'word': 'menubar', 'menu': '0.5'}, +\ {'word': 'menubar::debug', 'menu': '0.5'}, +\ {'word': 'menubar::node', 'menu': '0.5'}, +\ {'word': 'menubar::tree', 'menu': '0.5'}, +\ {'word': 'meter', 'menu': '1.0'}, +\ {'word': 'mime', 'menu': '1.6'}, +\ {'word': 'msgcat', 'menu': '1.6.1'}, +\ {'word': 'multiplexer', 'menu': '0.2'}, +\ {'word': 'nameserv', 'menu': '0.4.2'}, +\ {'word': 'nameserv::auto', 'menu': '0.3'}, +\ {'word': 'nameserv::cluster', 'menu': '0.2.3'}, +\ {'word': 'nameserv::common', 'menu': '0.1'}, +\ {'word': 'nameserv::server', 'menu': '0.3.2'}, +\ {'word': 'namespacex', 'menu': '0.1'}, +\ {'word': 'ncgi', 'menu': '1.4.3'}, +\ {'word': 'nettool', 'menu': '0.5.1'}, +\ {'word': 'nmea', 'menu': '1.0.0'}, +\ {'word': 'nntp', 'menu': '0.2.1'}, +\ {'word': 'nsf', 'menu': '2.2.0'}, +\ {'word': 'ntext', 'menu': '0.81'}, +\ {'word': 'nx', 'menu': '2.2.0'}, +\ {'word': 'nx::class-method', 'menu': '1.0'}, +\ {'word': 'nx::help', 'menu': '1.0'}, +\ {'word': 'nx::plain-object-method', 'menu': '1.0'}, +\ {'word': 'nx::pp', 'menu': '1.0'}, +\ {'word': 'nx::serializer', 'menu': '2.2'}, +\ {'word': 'nx::shell', 'menu': '1.1'}, +\ {'word': 'nx::test', 'menu': '1.0'}, +\ {'word': 'nx::trait', 'menu': '0.4'}, +\ {'word': 'nx::trait::callback', 'menu': '1.0'}, +\ {'word': 'nx::volatile', 'menu': '1.0'}, +\ {'word': 'nx::zip', 'menu': '1.1'}, +\ {'word': 'oauth', 'menu': '1'}, +\ {'word': 'odie::processman', 'menu': '0.3'}, +\ {'word': 'oo::dialect', 'menu': '0.3'}, +\ {'word': 'oo::meta', 'menu': '0.4.1'}, +\ {'word': 'oo::option', 'menu': '0.3'}, +\ {'word': 'oo::util', 'menu': '1.2.2'}, +\ {'word': 'opt', 'menu': '0.4.6'}, +\ {'word': 'otp', 'menu': '1.0.0'}, +\ {'word': 'page::analysis::peg::emodes', 'menu': '0.1'}, +\ {'word': 'page::analysis::peg::minimize', 'menu': '0.1'}, +\ {'word': 'page::analysis::peg::reachable', 'menu': '0.1'}, +\ {'word': 'page::analysis::peg::realizable', 'menu': '0.1'}, +\ {'word': 'page::compiler::peg::mecpu', 'menu': '0.1.1'}, +\ {'word': 'page::config::peg', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::canon', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::cpkg', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::hb', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::me', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::mecpu', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::ser', 'menu': '0.1'}, +\ {'word': 'page::gen::tree::text', 'menu': '0.1'}, +\ {'word': 'page::parse::lemon', 'menu': '0.1'}, +\ {'word': 'page::parse::peg', 'menu': '0.1'}, +\ {'word': 'page::parse::peghb', 'menu': '0.1'}, +\ {'word': 'page::parse::pegser', 'menu': '0.1'}, +\ {'word': 'page::pluginmgr', 'menu': '0.2'}, +\ {'word': 'page::reader::hb', 'menu': '0.1'}, +\ {'word': 'page::reader::lemon', 'menu': '0.1'}, +\ {'word': 'page::reader::peg', 'menu': '0.1'}, +\ {'word': 'page::reader::ser', 'menu': '0.1'}, +\ {'word': 'page::reader::treeser', 'menu': '0.1'}, +\ {'word': 'page::transform::mecpu', 'menu': '0.1'}, +\ {'word': 'page::transform::reachable', 'menu': '0.1'}, +\ {'word': 'page::transform::realizable', 'menu': '0.1'}, +\ {'word': 'page::util::flow', 'menu': '0.1'}, +\ {'word': 'page::util::norm::lemon', 'menu': '0.1'}, +\ {'word': 'page::util::norm::peg', 'menu': '0.1'}, +\ {'word': 'page::util::peg', 'menu': '0.1'}, +\ {'word': 'page::util::quote', 'menu': '0.1'}, +\ {'word': 'page::writer::hb', 'menu': '0.1'}, +\ {'word': 'page::writer::identity', 'menu': '0.1'}, +\ {'word': 'page::writer::me', 'menu': '0.1'}, +\ {'word': 'page::writer::mecpu', 'menu': '0.1.1'}, +\ {'word': 'page::writer::null', 'menu': '0.1'}, +\ {'word': 'page::writer::peg', 'menu': '0.1'}, +\ {'word': 'page::writer::ser', 'menu': '0.1'}, +\ {'word': 'page::writer::tpc', 'menu': '0.1'}, +\ {'word': 'page::writer::tree', 'menu': '0.1'}, +\ {'word': 'paths', 'menu': '1'}, +\ {'word': 'picoirc', 'menu': '0.5.2'}, +\ {'word': 'pki', 'menu': '0.6'}, +\ {'word': 'platform', 'menu': '1.0.14'}, +\ {'word': 'plotanim', 'menu': '0.2'}, +\ {'word': 'pluginmgr', 'menu': '0.3'}, +\ {'word': 'png', 'menu': '0.2'}, +\ {'word': 'pngtcl', 'menu': '1.6.21'}, +\ {'word': 'pop3', 'menu': '1.9'}, +\ {'word': 'pop3d', 'menu': '1.1.0'}, +\ {'word': 'pop3d::dbox', 'menu': '1.0.2'}, +\ {'word': 'pop3d::udb', 'menu': '1.1'}, +\ {'word': 'processman', 'menu': '0.3'}, +\ {'word': 'profiler', 'menu': '0.3'}, +\ {'word': 'pt::ast', 'menu': '1.1'}, +\ {'word': 'pt::cparam::configuration::critcl', 'menu': '1.0.2'}, +\ {'word': 'pt::cparam::configuration::tea', 'menu': '0.1'}, +\ {'word': 'pt::parse::peg', 'menu': '1.0.1'}, +\ {'word': 'pt::pe', 'menu': '1.0.2'}, +\ {'word': 'pt::pe::op', 'menu': '1.0.1'}, +\ {'word': 'pt::peg', 'menu': '1'}, +\ {'word': 'pt::peg::container', 'menu': '1'}, +\ {'word': 'pt::peg::container::peg', 'menu': '1'}, +\ {'word': 'pt::peg::export', 'menu': '1'}, +\ {'word': 'pt::peg::export::container', 'menu': '1'}, +\ {'word': 'pt::peg::export::json', 'menu': '1'}, +\ {'word': 'pt::peg::export::peg', 'menu': '1'}, +\ {'word': 'pt::peg::from::json', 'menu': '1'}, +\ {'word': 'pt::peg::from::peg', 'menu': '1.0.3'}, +\ {'word': 'pt::peg::import', 'menu': '1'}, +\ {'word': 'pt::peg::import::json', 'menu': '1'}, +\ {'word': 'pt::peg::import::peg', 'menu': '1'}, +\ {'word': 'pt::peg::interp', 'menu': '1.0.1'}, +\ {'word': 'pt::peg::op', 'menu': '1.0.1'}, +\ {'word': 'pt::peg::to::container', 'menu': '1'}, +\ {'word': 'pt::peg::to::cparam', 'menu': '1.1.3'}, +\ {'word': 'pt::peg::to::json', 'menu': '1'}, +\ {'word': 'pt::peg::to::param', 'menu': '1.0.1'}, +\ {'word': 'pt::peg::to::peg', 'menu': '1.0.2'}, +\ {'word': 'pt::peg::to::tclparam', 'menu': '1.0.3'}, +\ {'word': 'pt::pgen', 'menu': '1.0.3'}, +\ {'word': 'pt::rde', 'menu': '1.1'}, +\ {'word': 'pt::rde::oo', 'menu': '1.1'}, +\ {'word': 'pt::tclparam::configuration::snit', 'menu': '1.0.2'}, +\ {'word': 'pt::tclparam::configuration::tcloo', 'menu': '1.0.4'}, +\ {'word': 'pt::util', 'menu': '1.1'}, +\ {'word': 'puretclparser', 'menu': '3.2'}, +\ {'word': 'radioMatrix', 'menu': '1.0'}, +\ {'word': 'rc4', 'menu': '1.1.0'}, +\ {'word': 'rcs', 'menu': '0.1'}, +\ {'word': 'rdial', 'menu': '0.3'}, +\ {'word': 'report', 'menu': '0.3.2'}, +\ {'word': 'resolv', 'menu': '1.0.3'}, +\ {'word': 'rest', 'menu': '1.0.2'}, +\ {'word': 'ripemd128', 'menu': '1.0.5'}, +\ {'word': 'ripemd160', 'menu': '1.0.5'}, +\ {'word': 'rpcvar', 'menu': '1.2'}, +\ {'word': 'scgi::app', 'menu': '0.1'}, +\ {'word': 'scgi::server', 'menu': '0.1'}, +\ {'word': 'sgml', 'menu': '1.9'}, +\ {'word': 'sgmlparser', 'menu': '1.1'}, +\ {'word': 'sha1', 'menu': '1.1.1'}, +\ {'word': 'sha256', 'menu': '1.0.3'}, +\ {'word': 'simulation::annealing', 'menu': '0.2'}, +\ {'word': 'simulation::montecarlo', 'menu': '0.1'}, +\ {'word': 'simulation::random', 'menu': '0.3.1'}, +\ {'word': 'smtp', 'menu': '1.4.5'}, +\ {'word': 'smtpd', 'menu': '1.5'}, +\ {'word': 'snit', 'menu': '1.4.2'}, +\ {'word': 'soapinterop::B', 'menu': '1.0'}, +\ {'word': 'soapinterop::C', 'menu': '1.0'}, +\ {'word': 'soapinterop::base', 'menu': '1.0'}, +\ {'word': 'soundex', 'menu': '1.0'}, +\ {'word': 'spf', 'menu': '1.1.1'}, +\ {'word': 'sqlite3', 'menu': '3.20.1'}, +\ {'word': 'starkit', 'menu': '1.3.3'}, +\ {'word': 'stooop', 'menu': '4.4.1'}, +\ {'word': 'string::token', 'menu': '1'}, +\ {'word': 'string::token::shell', 'menu': '1.2'}, +\ {'word': 'stringprep', 'menu': '1.0.1'}, +\ {'word': 'stringprep::data', 'menu': '1.0.1'}, +\ {'word': 'struct', 'menu': '1.4'}, +\ {'word': 'struct::disjointset', 'menu': '1.0'}, +\ {'word': 'struct::graph', 'menu': '2.4'}, +\ {'word': 'struct::graph::op', 'menu': '0.11.3'}, +\ {'word': 'struct::list', 'menu': '1.8.3'}, +\ {'word': 'struct::matrix', 'menu': '2.0.3'}, +\ {'word': 'struct::pool', 'menu': '1.2.3'}, +\ {'word': 'struct::prioqueue', 'menu': '1.4'}, +\ {'word': 'struct::queue', 'menu': '1.4.5'}, +\ {'word': 'struct::record', 'menu': '1.2.1'}, +\ {'word': 'struct::set', 'menu': '2.2.3'}, +\ {'word': 'struct::skiplist', 'menu': '1.3'}, +\ {'word': 'struct::stack', 'menu': '1.5.3'}, +\ {'word': 'struct::tree', 'menu': '1.2.2'}, +\ {'word': 'stubs::container', 'menu': '1'}, +\ {'word': 'stubs::gen', 'menu': '1'}, +\ {'word': 'stubs::gen::decl', 'menu': '1'}, +\ {'word': 'stubs::gen::header', 'menu': '1'}, +\ {'word': 'stubs::gen::init', 'menu': '1'}, +\ {'word': 'stubs::gen::lib', 'menu': '1'}, +\ {'word': 'stubs::gen::macro', 'menu': '1'}, +\ {'word': 'stubs::gen::slot', 'menu': '1'}, +\ {'word': 'stubs::reader', 'menu': '1'}, +\ {'word': 'stubs::writer', 'menu': '1'}, +\ {'word': 'style', 'menu': '0.3'}, +\ {'word': 'style::as', 'menu': '1.4.1'}, +\ {'word': 'style::lobster', 'menu': '0.2'}, +\ {'word': 'sum', 'menu': '1.1.2'}, +\ {'word': 'swaplist', 'menu': '0.2'}, +\ {'word': 'switched', 'menu': '2.2.1'}, +\ {'word': 'tablelist', 'menu': '5.13'}, +\ {'word': 'tablelist::common', 'menu': '5.13'}, +\ {'word': 'tablelist_tile', 'menu': '5.13'}, +\ {'word': 'tachometer', 'menu': '0.1'}, +\ {'word': 'tar', 'menu': '0.10'}, +\ {'word': 'tbcload', 'menu': '1.7'}, +\ {'word': 'tcl::chan::cat', 'menu': '1.0.2'}, +\ {'word': 'tcl::chan::core', 'menu': '1'}, +\ {'word': 'tcl::chan::events', 'menu': '1'}, +\ {'word': 'tcl::chan::facade', 'menu': '1.0.1'}, +\ {'word': 'tcl::chan::fifo', 'menu': '1'}, +\ {'word': 'tcl::chan::fifo2', 'menu': '1'}, +\ {'word': 'tcl::chan::halfpipe', 'menu': '1'}, +\ {'word': 'tcl::chan::memchan', 'menu': '1.0.3'}, +\ {'word': 'tcl::chan::null', 'menu': '1'}, +\ {'word': 'tcl::chan::nullzero', 'menu': '1'}, +\ {'word': 'tcl::chan::random', 'menu': '1'}, +\ {'word': 'tcl::chan::std', 'menu': '1.0.1'}, +\ {'word': 'tcl::chan::string', 'menu': '1.0.2'}, +\ {'word': 'tcl::chan::textwindow', 'menu': '1'}, +\ {'word': 'tcl::chan::variable', 'menu': '1.0.3'}, +\ {'word': 'tcl::chan::zero', 'menu': '1'}, +\ {'word': 'tcl::randomseed', 'menu': '1'}, +\ {'word': 'tcl::transform::adler32', 'menu': '1'}, +\ {'word': 'tcl::transform::base64', 'menu': '1'}, +\ {'word': 'tcl::transform::core', 'menu': '1'}, +\ {'word': 'tcl::transform::counter', 'menu': '1'}, +\ {'word': 'tcl::transform::crc32', 'menu': '1'}, +\ {'word': 'tcl::transform::hex', 'menu': '1'}, +\ {'word': 'tcl::transform::identity', 'menu': '1'}, +\ {'word': 'tcl::transform::limitsize', 'menu': '1'}, +\ {'word': 'tcl::transform::observe', 'menu': '1'}, +\ {'word': 'tcl::transform::otp', 'menu': '1'}, +\ {'word': 'tcl::transform::rot', 'menu': '1'}, +\ {'word': 'tcl::transform::spacer', 'menu': '1'}, +\ {'word': 'tcl::transform::zlib', 'menu': '1.0.1'}, +\ {'word': 'tclAE', 'menu': '2.0.5'}, +\ {'word': 'tclDES', 'menu': '1.0.0'}, +\ {'word': 'tclDESjr', 'menu': '1.0.0'}, +\ {'word': 'tcllibc', 'menu': '0.3.15'}, +\ {'word': 'tclparser', 'menu': '3.2'}, +\ {'word': 'tcltest', 'menu': '2.5.0'}, +\ {'word': 'tdbc', 'menu': '1.1.0'}, +\ {'word': 'tdbc::mysql', 'menu': '1.1.0'}, +\ {'word': 'tdbc::odbc', 'menu': '1.1.0'}, +\ {'word': 'tdbc::postgres', 'menu': '1.1.0'}, +\ {'word': 'tdom', 'menu': '0.8.3'}, +\ {'word': 'tepam', 'menu': '0.5'}, +\ {'word': 'tepam::doc_gen', 'menu': '0.1.1'}, +\ {'word': 'term', 'menu': '0.1'}, +\ {'word': 'term::ansi::code', 'menu': '0.2'}, +\ {'word': 'term::ansi::code::attr', 'menu': '0.1'}, +\ {'word': 'term::ansi::code::ctrl', 'menu': '0.2'}, +\ {'word': 'term::ansi::code::macros', 'menu': '0.1'}, +\ {'word': 'term::ansi::ctrl::unix', 'menu': '0.1.1'}, +\ {'word': 'term::ansi::send', 'menu': '0.2'}, +\ {'word': 'term::interact::menu', 'menu': '0.1'}, +\ {'word': 'term::interact::pager', 'menu': '0.1'}, +\ {'word': 'term::receive', 'menu': '0.1'}, +\ {'word': 'term::receive::bind', 'menu': '0.1'}, +\ {'word': 'term::send', 'menu': '0.1'}, +\ {'word': 'text::write', 'menu': '1'}, +\ {'word': 'textutil', 'menu': '0.8'}, +\ {'word': 'textutil::adjust', 'menu': '0.7.3'}, +\ {'word': 'textutil::expander', 'menu': '1.3.1'}, +\ {'word': 'textutil::repeat', 'menu': '0.7'}, +\ {'word': 'textutil::split', 'menu': '0.7'}, +\ {'word': 'textutil::string', 'menu': '0.8'}, +\ {'word': 'textutil::tabify', 'menu': '0.7'}, +\ {'word': 'textutil::trim', 'menu': '0.7'}, +\ {'word': 'throw', 'menu': '1'}, +\ {'word': 'tie', 'menu': '1.1'}, +\ {'word': 'tie::std::array', 'menu': '1.0'}, +\ {'word': 'tie::std::dsource', 'menu': '1.0'}, +\ {'word': 'tie::std::file', 'menu': '1.0.4'}, +\ {'word': 'tie::std::growfile', 'menu': '1.0'}, +\ {'word': 'tie::std::log', 'menu': '1.0'}, +\ {'word': 'tie::std::rarray', 'menu': '1.0.1'}, +\ {'word': 'tiff', 'menu': '0.2.1'}, +\ {'word': 'tifftcl', 'menu': '3.9.7'}, +\ {'word': 'time', 'menu': '1.2.1'}, +\ {'word': 'tipstack', 'menu': '1.0.1'}, +\ {'word': 'tkblt', 'menu': '3.2'}, +\ {'word': 'tkcon', 'menu': '2.7'}, +\ {'word': 'tkpiechart', 'menu': '6.6'}, +\ {'word': 'tls', 'menu': '1.7.16'}, +\ {'word': 'tnc', 'menu': '0.3.0'}, +\ {'word': 'tool', 'menu': '0.5'}, +\ {'word': 'tool::datatype', 'menu': '0.1'}, +\ {'word': 'tooltip', 'menu': '1.4.5'}, +\ {'word': 'transfer::connect', 'menu': '0.2'}, +\ {'word': 'transfer::copy', 'menu': '0.3'}, +\ {'word': 'transfer::copy::queue', 'menu': '0.1'}, +\ {'word': 'transfer::data::destination', 'menu': '0.2'}, +\ {'word': 'transfer::data::source', 'menu': '0.2'}, +\ {'word': 'transfer::receiver', 'menu': '0.2'}, +\ {'word': 'transfer::transmitter', 'menu': '0.2'}, +\ {'word': 'treectrl', 'menu': '2.4.1'}, +\ {'word': 'treeql', 'menu': '1.3.1'}, +\ {'word': 'trsync', 'menu': '1.0'}, +\ {'word': 'try', 'menu': '1'}, +\ {'word': 'uevent', 'menu': '0.3.1'}, +\ {'word': 'uevent::onidle', 'menu': '0.1'}, +\ {'word': 'unicode', 'menu': '1.0.0'}, +\ {'word': 'unicode::data', 'menu': '1.0.0'}, +\ {'word': 'units', 'menu': '2.1.1'}, +\ {'word': 'uri', 'menu': '1.2.6'}, +\ {'word': 'uri::urn', 'menu': '1.0.3'}, +\ {'word': 'uuencode', 'menu': '1.1.5'}, +\ {'word': 'uuid', 'menu': '1.0.5'}, +\ {'word': 'valtype::common', 'menu': '1'}, +\ {'word': 'valtype::creditcard::amex', 'menu': '1'}, +\ {'word': 'valtype::creditcard::discover', 'menu': '1'}, +\ {'word': 'valtype::creditcard::mastercard', 'menu': '1'}, +\ {'word': 'valtype::creditcard::visa', 'menu': '1'}, +\ {'word': 'valtype::gs1::ean13', 'menu': '1'}, +\ {'word': 'valtype::iban', 'menu': '1.5'}, +\ {'word': 'valtype::imei', 'menu': '1'}, +\ {'word': 'valtype::isbn', 'menu': '1'}, +\ {'word': 'valtype::luhn', 'menu': '1'}, +\ {'word': 'valtype::luhn5', 'menu': '1'}, +\ {'word': 'valtype::usnpi', 'menu': '1'}, +\ {'word': 'valtype::verhoeff', 'menu': '1'}, +\ {'word': 'vfs', 'menu': '1.4.2'}, +\ {'word': 'vfs::ftp', 'menu': '1.0'}, +\ {'word': 'vfs::http', 'menu': '0.6'}, +\ {'word': 'vfs::mk4', 'menu': '1.10.1'}, +\ {'word': 'vfs::ns', 'menu': '0.5.1'}, +\ {'word': 'vfs::tar', 'menu': '0.91'}, +\ {'word': 'vfs::template', 'menu': '1.5.5'}, +\ {'word': 'vfs::template::chroot', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::collate', 'menu': '1.5.3'}, +\ {'word': 'vfs::template::fish', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::quota', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::version', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::version::delta', 'menu': '1.5.2'}, +\ {'word': 'vfs::test', 'menu': '1.0'}, +\ {'word': 'vfs::tk', 'menu': '0.5'}, +\ {'word': 'vfs::urltype', 'menu': '1.0'}, +\ {'word': 'vfs::webdav', 'menu': '0.1'}, +\ {'word': 'vfs::zip', 'menu': '1.0.4.1'}, +\ {'word': 'voltmeter', 'menu': '0.1'}, +\ {'word': 'wcb', 'menu': '3.5'}, +\ {'word': 'websocket', 'menu': '1.4'}, +\ {'word': 'widget', 'menu': '3.1'}, +\ {'word': 'widget::all', 'menu': '1.2.4'}, +\ {'word': 'widget::arrowbutton', 'menu': '1.0'}, +\ {'word': 'widget::calendar', 'menu': '1.0.1'}, +\ {'word': 'widget::dateentry', 'menu': '0.96'}, +\ {'word': 'widget::dialog', 'menu': '1.3.1'}, +\ {'word': 'widget::listentry', 'menu': '0.1.1'}, +\ {'word': 'widget::listsimple', 'menu': '0.1.1'}, +\ {'word': 'widget::menuentry', 'menu': '1.0.1'}, +\ {'word': 'widget::panelframe', 'menu': '1.1'}, +\ {'word': 'widget::ruler', 'menu': '1.1'}, +\ {'word': 'widget::screenruler', 'menu': '1.2'}, +\ {'word': 'widget::scrolledtext', 'menu': '1.0'}, +\ {'word': 'widget::scrolledwindow', 'menu': '1.2.1'}, +\ {'word': 'widget::statusbar', 'menu': '1.2.1'}, +\ {'word': 'widget::superframe', 'menu': '1.0.1'}, +\ {'word': 'widget::toolbar', 'menu': '1.2.1'}, +\ {'word': 'widget::validator', 'menu': '0.1'}, +\ {'word': 'wip', 'menu': '2.2'}, +\ {'word': 'xml', 'menu': '3.2'}, +\ {'word': 'xml::c', 'menu': '2.6'}, +\ {'word': 'xml::dep', 'menu': '1.0'}, +\ {'word': 'xml::expat', 'menu': '2.6'}, +\ {'word': 'xml::libxml2', 'menu': '3.2'}, +\ {'word': 'xml::tcl', 'menu': '3.2'}, +\ {'word': 'xml::tclparser', 'menu': '3.2'}, +\ {'word': 'xmldefs', 'menu': '3.2'}, +\ {'word': 'xmldep', 'menu': '1.0'}, +\ {'word': 'xmlswitch', 'menu': '3.2'}, +\ {'word': 'xotcl::comm::connection', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::dav', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::ftp', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::httpAccess', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::httpd', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::imap', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::ldap', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::mime', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::pcache', 'menu': '2.0'}, +\ {'word': 'xotcl::htmllib', 'menu': '2.0'}, +\ {'word': 'xotcl::metadataAnalyzer', 'menu': '2.0'}, +\ {'word': 'xotcl::mixinStrategy', 'menu': '2.0'}, +\ {'word': 'xotcl::package', 'menu': '2.0'}, +\ {'word': 'xotcl::script', 'menu': '2.0'}, +\ {'word': 'xotcl::scriptCreation::recoveryPoint', 'menu': '2.0'}, +\ {'word': 'xotcl::scriptCreation::scriptCreator', 'menu': '2.0'}, +\ {'word': 'xotcl::serializer', 'menu': '2.1'}, +\ {'word': 'xotcl::staticMetadataAnalyzer', 'menu': '2.0'}, +\ {'word': 'xotcl::store', 'menu': '0.84'}, +\ {'word': 'xotcl::store::jufgdbm', 'menu': '0.81'}, +\ {'word': 'xotcl::store::mem', 'menu': '0.84'}, +\ {'word': 'xotcl::store::multi', 'menu': '0.9'}, +\ {'word': 'xotcl::store::persistence', 'menu': '0.8'}, +\ {'word': 'xotcl::store::tclgdbm', 'menu': '0.84'}, +\ {'word': 'xotcl::store::textfile', 'menu': '0.84'}, +\ {'word': 'xotcl::test', 'menu': '1.38'}, +\ {'word': 'xotcl::trace', 'menu': '2.0'}, +\ {'word': 'xotcl::upvar-compat', 'menu': '2.0'}, +\ {'word': 'xotcl::wafecompat', 'menu': '2.0'}, +\ {'word': 'xotcl::xodoc', 'menu': '2.0'}, +\ {'word': 'xpath', 'menu': '1.0'}, +\ {'word': 'xslt', 'menu': '3.2'}, +\ {'word': 'xslt::cache', 'menu': '3.2'}, +\ {'word': 'xslt::libxslt', 'menu': '3.2'}, +\ {'word': 'xslt::process', 'menu': '1.1'}, +\ {'word': 'xslt::resources', 'menu': '1.3'}, +\ {'word': 'xslt::utilities', 'menu': '3.2'}, +\ {'word': 'xsxp', 'menu': '1.0'}, +\ {'word': 'xyplot', 'menu': '1.0.1'}, +\ {'word': 'yaml', 'menu': '0.3.9'}, +\ {'word': 'yencode', 'menu': '1.1.3'}, +\ {'word': 'zipfile::decode', 'menu': '0.7'}, +\ {'word': 'zipfile::encode', 'menu': '0.4'}, +\ {'word': 'zipfile::mkzip', 'menu': '1.2'}, +\ {'word': 'zlibtcl', 'menu': '1.2.8.1'}, +\ ] + +let b:package_sp_versions = [ +\ {'word': 'BWidget', 'menu': '1.9.11'}, +\ {'word': 'Expect', 'menu': '5.45.3'}, +\ {'word': 'Ffidl', 'menu': '0.6.1'}, +\ {'word': 'Ffidlrt', 'menu': '0.1'}, +\ {'word': 'HTTP', 'menu': '2.0'}, +\ {'word': 'Img', 'menu': '1.4.6'}, +\ {'word': 'Itcl', 'menu': '4.1.2'}, +\ {'word': 'Itk', 'menu': '4.1.0'}, +\ {'word': 'Iwidgets', 'menu': '4.1.1'}, +\ {'word': 'JSONRPC', 'menu': '0.1'}, +\ {'word': 'Markdown', 'menu': '1.0'}, +\ {'word': 'Memchan', 'menu': '2.2.1'}, +\ {'word': 'Mentry', 'menu': '3.7'}, +\ {'word': 'Mentry_tile', 'menu': '3.7'}, +\ {'word': 'Mk4tcl', 'menu': '2.4.9.7.1'}, +\ {'word': 'Plotchart', 'menu': '2.3.4'}, +\ {'word': 'S3', 'menu': '1.0.3'}, +\ {'word': 'SASL', 'menu': '1.3.3'}, +\ {'word': 'SASL::NTLM', 'menu': '1.1.2'}, +\ {'word': 'SASL::SCRAM', 'menu': '0.1'}, +\ {'word': 'SASL::XGoogleToken', 'menu': '1.0.1'}, +\ {'word': 'SOAP', 'menu': '1.6.8.1'}, +\ {'word': 'SOAP::CGI', 'menu': '1.0.1'}, +\ {'word': 'SOAP::Domain', 'menu': '1.4.1'}, +\ {'word': 'SOAP::Service', 'menu': '0.5'}, +\ {'word': 'SOAP::Utils', 'menu': '1.1'}, +\ {'word': 'SOAP::ftp', 'menu': '1.0'}, +\ {'word': 'SOAP::http', 'menu': '1.0'}, +\ {'word': 'SOAP::https', 'menu': '1.0'}, +\ {'word': 'SOAP::smtp', 'menu': '1.0'}, +\ {'word': 'SOAP::xpath', 'menu': '0.2'}, +\ {'word': 'Site', 'menu': '1.0'}, +\ {'word': 'Tablelist', 'menu': '5.13'}, +\ {'word': 'Tablelist_tile', 'menu': '5.13'}, +\ {'word': 'TclOO', 'menu': '1.1.0'}, +\ {'word': 'Tclx', 'menu': '8.4'}, +\ {'word': 'Thread', 'menu': '2.8.4'}, +\ {'word': 'Tk', 'menu': '8.6.9'}, +\ {'word': 'Tktable', 'menu': '2.11'}, +\ {'word': 'Trf', 'menu': '2.1.4'}, +\ {'word': 'Ttrace', 'menu': '2.8.4'}, +\ {'word': 'Wcb', 'menu': '3.5'}, +\ {'word': 'Wub', 'menu': '5.0'}, +\ {'word': 'XMLRPC', 'menu': '1.0.1'}, +\ {'word': 'XOTcl', 'menu': '2.2.0'}, +\ {'word': 'aes', 'menu': '1.2.1'}, +\ {'word': 'ascii85', 'menu': '1.0'}, +\ {'word': 'asn', 'menu': '0.8.4'}, +\ {'word': 'autoproxy', 'menu': '1.5.3'}, +\ {'word': 'autoscroll', 'menu': '1.1'}, +\ {'word': 'base32', 'menu': '0.1'}, +\ {'word': 'base32::core', 'menu': '0.1'}, +\ {'word': 'base32::hex', 'menu': '0.1'}, +\ {'word': 'base64', 'menu': '2.4.2'}, +\ {'word': 'bee', 'menu': '0.1'}, +\ {'word': 'bench', 'menu': '0.4'}, +\ {'word': 'bench::in', 'menu': '0.1'}, +\ {'word': 'bench::out::csv', 'menu': '0.1.2'}, +\ {'word': 'bench::out::text', 'menu': '0.1.2'}, +\ {'word': 'bibtex', 'menu': '0.6'}, +\ {'word': 'bindDown', 'menu': '1.0'}, +\ {'word': 'blowfish', 'menu': '1.0.4'}, +\ {'word': 'cache::async', 'menu': '0.3'}, +\ {'word': 'canvas::drag', 'menu': '0.1'}, +\ {'word': 'canvas::edit::points', 'menu': '0.1'}, +\ {'word': 'canvas::edit::polyline', 'menu': '0.1'}, +\ {'word': 'canvas::edit::quadrilateral', 'menu': '0.1'}, +\ {'word': 'canvas::gradient', 'menu': '0.2'}, +\ {'word': 'canvas::highlight', 'menu': '0.1'}, +\ {'word': 'canvas::mvg', 'menu': '1'}, +\ {'word': 'canvas::snap', 'menu': '1.0.1'}, +\ {'word': 'canvas::sqmap', 'menu': '0.3.1'}, +\ {'word': 'canvas::tag', 'menu': '0.1'}, +\ {'word': 'canvas::track::lines', 'menu': '0.1'}, +\ {'word': 'canvas::zoom', 'menu': '0.2.1'}, +\ {'word': 'cgi2dom', 'menu': '1.1'}, +\ {'word': 'char', 'menu': '1.0.1'}, +\ {'word': 'chatwidget', 'menu': '1.1.0'}, +\ {'word': 'cksum', 'menu': '1.1.4'}, +\ {'word': 'clock::iso8601', 'menu': '0.1'}, +\ {'word': 'clock::rfc2822', 'menu': '0.1'}, +\ {'word': 'cmdline', 'menu': '1.5'}, +\ {'word': 'comm', 'menu': '4.6.3.1'}, +\ {'word': 'configuration', 'menu': '1'}, +\ {'word': 'control', 'menu': '0.1.3'}, +\ {'word': 'controlwidget', 'menu': '0.1'}, +\ {'word': 'coroutine', 'menu': '1.1.3'}, +\ {'word': 'coroutine::auto', 'menu': '1.1.3'}, +\ {'word': 'counter', 'menu': '2.0.4'}, +\ {'word': 'crc16', 'menu': '1.1.2'}, +\ {'word': 'crc32', 'menu': '1.3.2'}, +\ {'word': 'critcl', 'menu': '3.1.17'}, +\ {'word': 'critcl::app', 'menu': '3.1.17'}, +\ {'word': 'critcl::bitmap', 'menu': '1.0.1'}, +\ {'word': 'critcl::class', 'menu': '1.0.7'}, +\ {'word': 'critcl::cutil', 'menu': '0.1'}, +\ {'word': 'critcl::emap', 'menu': '1.1'}, +\ {'word': 'critcl::enum', 'menu': '1.0.1'}, +\ {'word': 'critcl::iassoc', 'menu': '1.0.2'}, +\ {'word': 'critcl::literals', 'menu': '1.2'}, +\ {'word': 'critcl::platform', 'menu': '1.0.15'}, +\ {'word': 'critcl::util', 'menu': '1.1'}, +\ {'word': 'cron', 'menu': '1.2.1'}, +\ {'word': 'crosshair', 'menu': '1.2'}, +\ {'word': 'csv', 'menu': '0.8.1'}, +\ {'word': 'ctext', 'menu': '3.3'}, +\ {'word': 'cursor', 'menu': '0.3.1'}, +\ {'word': 'datefield', 'menu': '0.2'}, +\ {'word': 'debug', 'menu': '1.0.6'}, +\ {'word': 'debug::caller', 'menu': '1.1'}, +\ {'word': 'debug::heartbeat', 'menu': '1'}, +\ {'word': 'debug::timestamp', 'menu': '1'}, +\ {'word': 'des', 'menu': '1.1.0'}, +\ {'word': 'diagram', 'menu': '1'}, +\ {'word': 'diagram::application', 'menu': '1.2'}, +\ {'word': 'diagram::attribute', 'menu': '1'}, +\ {'word': 'diagram::basic', 'menu': '1.0.1'}, +\ {'word': 'diagram::core', 'menu': '1'}, +\ {'word': 'diagram::direction', 'menu': '1'}, +\ {'word': 'diagram::element', 'menu': '1'}, +\ {'word': 'diagram::navigation', 'menu': '1'}, +\ {'word': 'diagram::point', 'menu': '1'}, +\ {'word': 'dict84', 'menu': '1'}, +\ {'word': 'dicttool', 'menu': '1.0'}, +\ {'word': 'dns', 'menu': '1.3.5'}, +\ {'word': 'docstrip', 'menu': '1.2'}, +\ {'word': 'docstrip::util', 'menu': '1.3.1'}, +\ {'word': 'doctools', 'menu': '1.4.19'}, +\ {'word': 'doctools::changelog', 'menu': '1.1'}, +\ {'word': 'doctools::config', 'menu': '0.1'}, +\ {'word': 'doctools::cvs', 'menu': '1'}, +\ {'word': 'doctools::html', 'menu': '0.1'}, +\ {'word': 'doctools::html::cssdefaults', 'menu': '0.1'}, +\ {'word': 'doctools::idx', 'menu': '1.0.5'}, +\ {'word': 'doctools::idx::export', 'menu': '0.1'}, +\ {'word': 'doctools::idx::export::docidx', 'menu': '0.1'}, +\ {'word': 'doctools::idx::export::html', 'menu': '0.2'}, +\ {'word': 'doctools::idx::export::json', 'menu': '0.1'}, +\ {'word': 'doctools::idx::export::nroff', 'menu': '0.3'}, +\ {'word': 'doctools::idx::export::text', 'menu': '0.2'}, +\ {'word': 'doctools::idx::export::wiki', 'menu': '0.2'}, +\ {'word': 'doctools::idx::import', 'menu': '0.1'}, +\ {'word': 'doctools::idx::import::docidx', 'menu': '0.1'}, +\ {'word': 'doctools::idx::import::json', 'menu': '0.1'}, +\ {'word': 'doctools::idx::parse', 'menu': '0.1'}, +\ {'word': 'doctools::idx::structure', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::c', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::de', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::en', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::idx::fr', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::c', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::de', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::en', 'menu': '0.1'}, +\ {'word': 'doctools::msgcat::toc::fr', 'menu': '0.1'}, +\ {'word': 'doctools::nroff::man_macros', 'menu': '0.1'}, +\ {'word': 'doctools::paths', 'menu': '0.1'}, +\ {'word': 'doctools::tcl::parse', 'menu': '0.1'}, +\ {'word': 'doctools::text', 'menu': '0.1'}, +\ {'word': 'doctools::toc', 'menu': '1.1.4'}, +\ {'word': 'doctools::toc::export', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::doctoc', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::html', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::json', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::nroff', 'menu': '0.2'}, +\ {'word': 'doctools::toc::export::text', 'menu': '0.1'}, +\ {'word': 'doctools::toc::export::wiki', 'menu': '0.1'}, +\ {'word': 'doctools::toc::import', 'menu': '0.1'}, +\ {'word': 'doctools::toc::import::doctoc', 'menu': '0.1'}, +\ {'word': 'doctools::toc::import::json', 'menu': '0.1'}, +\ {'word': 'doctools::toc::parse', 'menu': '0.1'}, +\ {'word': 'doctools::toc::structure', 'menu': '0.1'}, +\ {'word': 'dom', 'menu': '3.2'}, +\ {'word': 'dom::c', 'menu': '2.6'}, +\ {'word': 'dom::generic', 'menu': '2.6'}, +\ {'word': 'dom::libxml2', 'menu': '3.2'}, +\ {'word': 'dom::tcl', 'menu': '2.6'}, +\ {'word': 'dom::tclgeneric', 'menu': '2.6'}, +\ {'word': 'dommap', 'menu': '1.0'}, +\ {'word': 'domtext', 'menu': '2.5'}, +\ {'word': 'domtree', 'menu': '2.5'}, +\ {'word': 'dtplite', 'menu': '1.3'}, +\ {'word': 'expat', 'menu': '2.6'}, +\ {'word': 'fileutil', 'menu': '1.15'}, +\ {'word': 'fileutil::decode', 'menu': '0.2'}, +\ {'word': 'fileutil::globfind', 'menu': '1.5'}, +\ {'word': 'fileutil::magic::cfront', 'menu': '1.0'}, +\ {'word': 'fileutil::magic::cgen', 'menu': '1.0'}, +\ {'word': 'fileutil::magic::filetype', 'menu': '1.0.2'}, +\ {'word': 'fileutil::magic::mimetype', 'menu': '1.0.2'}, +\ {'word': 'fileutil::magic::rt', 'menu': '1.0'}, +\ {'word': 'fileutil::multi', 'menu': '0.1'}, +\ {'word': 'fileutil::multi::op', 'menu': '0.5.3'}, +\ {'word': 'fileutil::traverse', 'menu': '0.6'}, +\ {'word': 'ftp', 'menu': '2.4.13'}, +\ {'word': 'ftp::geturl', 'menu': '0.2.2'}, +\ {'word': 'ftpd', 'menu': '1.3'}, +\ {'word': 'generator', 'menu': '0.1'}, +\ {'word': 'getstring', 'menu': '0.1'}, +\ {'word': 'gpx', 'menu': '1'}, +\ {'word': 'grammar::aycock', 'menu': '1.0'}, +\ {'word': 'grammar::aycock::debug', 'menu': '1.0'}, +\ {'word': 'grammar::aycock::runtime', 'menu': '1.0'}, +\ {'word': 'grammar::fa', 'menu': '0.5'}, +\ {'word': 'grammar::fa::dacceptor', 'menu': '0.1.1'}, +\ {'word': 'grammar::fa::dexec', 'menu': '0.2'}, +\ {'word': 'grammar::fa::op', 'menu': '0.4.1'}, +\ {'word': 'grammar::me::cpu', 'menu': '0.2'}, +\ {'word': 'grammar::me::cpu::core', 'menu': '0.2'}, +\ {'word': 'grammar::me::cpu::gasm', 'menu': '0.1'}, +\ {'word': 'grammar::me::tcl', 'menu': '0.1'}, +\ {'word': 'grammar::me::util', 'menu': '0.1'}, +\ {'word': 'grammar::peg', 'menu': '0.2'}, +\ {'word': 'grammar::peg::interp', 'menu': '0.1.1'}, +\ {'word': 'history', 'menu': '0.1'}, +\ {'word': 'hook', 'menu': '0.1'}, +\ {'word': 'html', 'menu': '1.4.4'}, +\ {'word': 'htmlparse', 'menu': '1.2.2'}, +\ {'word': 'http', 'menu': '1.0'}, +\ {'word': 'http::wget', 'menu': '0.1'}, +\ {'word': 'httpd', 'menu': '4.0'}, +\ {'word': 'httpd::content', 'menu': '4.0'}, +\ {'word': 'httpd::dispatch', 'menu': '4.0'}, +\ {'word': 'huddle', 'menu': '0.2'}, +\ {'word': 'huddle::json', 'menu': '0.1'}, +\ {'word': 'ico', 'menu': '1.1'}, +\ {'word': 'ident', 'menu': '0.42'}, +\ {'word': 'imap4', 'menu': '0.5.3'}, +\ {'word': 'img::base', 'menu': '1.4.6'}, +\ {'word': 'img::bmp', 'menu': '1.4.6'}, +\ {'word': 'img::dted', 'menu': '1.4.6'}, +\ {'word': 'img::gif', 'menu': '1.4.6'}, +\ {'word': 'img::ico', 'menu': '1.4.6'}, +\ {'word': 'img::jpeg', 'menu': '1.4.6'}, +\ {'word': 'img::pcx', 'menu': '1.4.6'}, +\ {'word': 'img::pixmap', 'menu': '1.4.6'}, +\ {'word': 'img::png', 'menu': '1.4.6'}, +\ {'word': 'img::ppm', 'menu': '1.4.6'}, +\ {'word': 'img::ps', 'menu': '1.4.6'}, +\ {'word': 'img::raw', 'menu': '1.4.6'}, +\ {'word': 'img::sgi', 'menu': '1.4.6'}, +\ {'word': 'img::sun', 'menu': '1.4.6'}, +\ {'word': 'img::tga', 'menu': '1.4.6'}, +\ {'word': 'img::tiff', 'menu': '1.4.6'}, +\ {'word': 'img::window', 'menu': '1.4.6'}, +\ {'word': 'img::xbm', 'menu': '1.4.6'}, +\ {'word': 'img::xpm', 'menu': '1.4.6'}, +\ {'word': 'inifile', 'menu': '0.3'}, +\ {'word': 'interp', 'menu': '0.1.2'}, +\ {'word': 'interp::delegate::method', 'menu': '0.2'}, +\ {'word': 'interp::delegate::proc', 'menu': '0.2'}, +\ {'word': 'ip', 'menu': '1.3'}, +\ {'word': 'ipentry', 'menu': '0.3'}, +\ {'word': 'irc', 'menu': '0.6.1'}, +\ {'word': 'itcl', 'menu': '4.1.2'}, +\ {'word': 'itk', 'menu': '4.1.0'}, +\ {'word': 'javascript', 'menu': '1.0.2'}, +\ {'word': 'jpeg', 'menu': '0.5'}, +\ {'word': 'jpegtcl', 'menu': '9.2'}, +\ {'word': 'json', 'menu': '1.3.3'}, +\ {'word': 'json::write', 'menu': '1.0.3'}, +\ {'word': 'khim', 'menu': '1.0.1'}, +\ {'word': 'lambda', 'menu': '1'}, +\ {'word': 'lassign84', 'menu': '1.0.1'}, +\ {'word': 'ldap', 'menu': '1.8'}, +\ {'word': 'ldapx', 'menu': '1.0'}, +\ {'word': 'led', 'menu': '1.0'}, +\ {'word': 'lmap84', 'menu': '1'}, +\ {'word': 'log', 'menu': '1.3'}, +\ {'word': 'logger', 'menu': '0.9.4'}, +\ {'word': 'logger::appender', 'menu': '1.3'}, +\ {'word': 'logger::utils', 'menu': '1.3'}, +\ {'word': 'map::geocode::nominatim', 'menu': '0.1'}, +\ {'word': 'map::slippy', 'menu': '0.5'}, +\ {'word': 'map::slippy::cache', 'menu': '0.2'}, +\ {'word': 'map::slippy::fetcher', 'menu': '0.4'}, +\ {'word': 'mapproj', 'menu': '1.0'}, +\ {'word': 'math', 'menu': '1.2.5'}, +\ {'word': 'math::bigfloat', 'menu': '2.0.2'}, +\ {'word': 'math::bignum', 'menu': '3.1.1'}, +\ {'word': 'math::calculus', 'menu': '0.8.1'}, +\ {'word': 'math::calculus::symdiff', 'menu': '1.0.1'}, +\ {'word': 'math::complexnumbers', 'menu': '1.0.2'}, +\ {'word': 'math::constants', 'menu': '1.0.2'}, +\ {'word': 'math::decimal', 'menu': '1.0.3'}, +\ {'word': 'math::exact', 'menu': '1.0'}, +\ {'word': 'math::fourier', 'menu': '1.0.2'}, +\ {'word': 'math::fuzzy', 'menu': '0.2.1'}, +\ {'word': 'math::geometry', 'menu': '1.1.3'}, +\ {'word': 'math::interpolate', 'menu': '1.1'}, +\ {'word': 'math::linearalgebra', 'menu': '1.1.5'}, +\ {'word': 'math::machineparameters', 'menu': '0.1'}, +\ {'word': 'math::numtheory', 'menu': '1.0'}, +\ {'word': 'math::optimize', 'menu': '1.0.1'}, +\ {'word': 'math::polynomials', 'menu': '1.0.1'}, +\ {'word': 'math::rationalfunctions', 'menu': '1.0.1'}, +\ {'word': 'math::roman', 'menu': '1.0'}, +\ {'word': 'math::special', 'menu': '0.3.0'}, +\ {'word': 'math::statistics', 'menu': '1.0'}, +\ {'word': 'md4', 'menu': '1.0.6'}, +\ {'word': 'md5', 'menu': '1.4.4'}, +\ {'word': 'md5crypt', 'menu': '1.1.0'}, +\ {'word': 'mentry', 'menu': '3.7'}, +\ {'word': 'mentry::common', 'menu': '3.7'}, +\ {'word': 'mentry_tile', 'menu': '3.7'}, +\ {'word': 'menubar', 'menu': '0.5'}, +\ {'word': 'menubar::debug', 'menu': '0.5'}, +\ {'word': 'menubar::node', 'menu': '0.5'}, +\ {'word': 'menubar::tree', 'menu': '0.5'}, +\ {'word': 'meter', 'menu': '1.0'}, +\ {'word': 'mime', 'menu': '1.6'}, +\ {'word': 'msgcat', 'menu': '1.6.1'}, +\ {'word': 'multiplexer', 'menu': '0.2'}, +\ {'word': 'nameserv', 'menu': '0.4.2'}, +\ {'word': 'nameserv::auto', 'menu': '0.3'}, +\ {'word': 'nameserv::cluster', 'menu': '0.2.3'}, +\ {'word': 'nameserv::common', 'menu': '0.1'}, +\ {'word': 'nameserv::server', 'menu': '0.3.2'}, +\ {'word': 'namespacex', 'menu': '0.1'}, +\ {'word': 'ncgi', 'menu': '1.4.3'}, +\ {'word': 'nettool', 'menu': '0.5.1'}, +\ {'word': 'nmea', 'menu': '1.0.0'}, +\ {'word': 'nntp', 'menu': '0.2.1'}, +\ {'word': 'nsf', 'menu': '2.2.0'}, +\ {'word': 'ntext', 'menu': '0.81'}, +\ {'word': 'nx', 'menu': '2.2.0'}, +\ {'word': 'nx::class-method', 'menu': '1.0'}, +\ {'word': 'nx::help', 'menu': '1.0'}, +\ {'word': 'nx::plain-object-method', 'menu': '1.0'}, +\ {'word': 'nx::pp', 'menu': '1.0'}, +\ {'word': 'nx::serializer', 'menu': '2.2'}, +\ {'word': 'nx::shell', 'menu': '1.1'}, +\ {'word': 'nx::test', 'menu': '1.0'}, +\ {'word': 'nx::trait', 'menu': '0.4'}, +\ {'word': 'nx::trait::callback', 'menu': '1.0'}, +\ {'word': 'nx::volatile', 'menu': '1.0'}, +\ {'word': 'nx::zip', 'menu': '1.1'}, +\ {'word': 'oauth', 'menu': '1'}, +\ {'word': 'odie::processman', 'menu': '0.3'}, +\ {'word': 'oo::dialect', 'menu': '0.3'}, +\ {'word': 'oo::meta', 'menu': '0.4.1'}, +\ {'word': 'oo::option', 'menu': '0.3'}, +\ {'word': 'oo::util', 'menu': '1.2.2'}, +\ {'word': 'opt', 'menu': '0.4.6'}, +\ {'word': 'otp', 'menu': '1.0.0'}, +\ {'word': 'page::analysis::peg::emodes', 'menu': '0.1'}, +\ {'word': 'page::analysis::peg::minimize', 'menu': '0.1'}, +\ {'word': 'page::analysis::peg::reachable', 'menu': '0.1'}, +\ {'word': 'page::analysis::peg::realizable', 'menu': '0.1'}, +\ {'word': 'page::compiler::peg::mecpu', 'menu': '0.1.1'}, +\ {'word': 'page::config::peg', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::canon', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::cpkg', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::hb', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::me', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::mecpu', 'menu': '0.1'}, +\ {'word': 'page::gen::peg::ser', 'menu': '0.1'}, +\ {'word': 'page::gen::tree::text', 'menu': '0.1'}, +\ {'word': 'page::parse::lemon', 'menu': '0.1'}, +\ {'word': 'page::parse::peg', 'menu': '0.1'}, +\ {'word': 'page::parse::peghb', 'menu': '0.1'}, +\ {'word': 'page::parse::pegser', 'menu': '0.1'}, +\ {'word': 'page::pluginmgr', 'menu': '0.2'}, +\ {'word': 'page::reader::hb', 'menu': '0.1'}, +\ {'word': 'page::reader::lemon', 'menu': '0.1'}, +\ {'word': 'page::reader::peg', 'menu': '0.1'}, +\ {'word': 'page::reader::ser', 'menu': '0.1'}, +\ {'word': 'page::reader::treeser', 'menu': '0.1'}, +\ {'word': 'page::transform::mecpu', 'menu': '0.1'}, +\ {'word': 'page::transform::reachable', 'menu': '0.1'}, +\ {'word': 'page::transform::realizable', 'menu': '0.1'}, +\ {'word': 'page::util::flow', 'menu': '0.1'}, +\ {'word': 'page::util::norm::lemon', 'menu': '0.1'}, +\ {'word': 'page::util::norm::peg', 'menu': '0.1'}, +\ {'word': 'page::util::peg', 'menu': '0.1'}, +\ {'word': 'page::util::quote', 'menu': '0.1'}, +\ {'word': 'page::writer::hb', 'menu': '0.1'}, +\ {'word': 'page::writer::identity', 'menu': '0.1'}, +\ {'word': 'page::writer::me', 'menu': '0.1'}, +\ {'word': 'page::writer::mecpu', 'menu': '0.1.1'}, +\ {'word': 'page::writer::null', 'menu': '0.1'}, +\ {'word': 'page::writer::peg', 'menu': '0.1'}, +\ {'word': 'page::writer::ser', 'menu': '0.1'}, +\ {'word': 'page::writer::tpc', 'menu': '0.1'}, +\ {'word': 'page::writer::tree', 'menu': '0.1'}, +\ {'word': 'paths', 'menu': '1'}, +\ {'word': 'picoirc', 'menu': '0.5.2'}, +\ {'word': 'pki', 'menu': '0.6'}, +\ {'word': 'platform', 'menu': '1.0.14'}, +\ {'word': 'plotanim', 'menu': '0.2'}, +\ {'word': 'pluginmgr', 'menu': '0.3'}, +\ {'word': 'png', 'menu': '0.2'}, +\ {'word': 'pngtcl', 'menu': '1.6.21'}, +\ {'word': 'pop3', 'menu': '1.9'}, +\ {'word': 'pop3d', 'menu': '1.1.0'}, +\ {'word': 'pop3d::dbox', 'menu': '1.0.2'}, +\ {'word': 'pop3d::udb', 'menu': '1.1'}, +\ {'word': 'processman', 'menu': '0.3'}, +\ {'word': 'profiler', 'menu': '0.3'}, +\ {'word': 'pt::ast', 'menu': '1.1'}, +\ {'word': 'pt::cparam::configuration::critcl', 'menu': '1.0.2'}, +\ {'word': 'pt::cparam::configuration::tea', 'menu': '0.1'}, +\ {'word': 'pt::parse::peg', 'menu': '1.0.1'}, +\ {'word': 'pt::pe', 'menu': '1.0.2'}, +\ {'word': 'pt::pe::op', 'menu': '1.0.1'}, +\ {'word': 'pt::peg', 'menu': '1'}, +\ {'word': 'pt::peg::container', 'menu': '1'}, +\ {'word': 'pt::peg::container::peg', 'menu': '1'}, +\ {'word': 'pt::peg::export', 'menu': '1'}, +\ {'word': 'pt::peg::export::container', 'menu': '1'}, +\ {'word': 'pt::peg::export::json', 'menu': '1'}, +\ {'word': 'pt::peg::export::peg', 'menu': '1'}, +\ {'word': 'pt::peg::from::json', 'menu': '1'}, +\ {'word': 'pt::peg::from::peg', 'menu': '1.0.3'}, +\ {'word': 'pt::peg::import', 'menu': '1'}, +\ {'word': 'pt::peg::import::json', 'menu': '1'}, +\ {'word': 'pt::peg::import::peg', 'menu': '1'}, +\ {'word': 'pt::peg::interp', 'menu': '1.0.1'}, +\ {'word': 'pt::peg::op', 'menu': '1.0.1'}, +\ {'word': 'pt::peg::to::container', 'menu': '1'}, +\ {'word': 'pt::peg::to::cparam', 'menu': '1.1.3'}, +\ {'word': 'pt::peg::to::json', 'menu': '1'}, +\ {'word': 'pt::peg::to::param', 'menu': '1.0.1'}, +\ {'word': 'pt::peg::to::peg', 'menu': '1.0.2'}, +\ {'word': 'pt::peg::to::tclparam', 'menu': '1.0.3'}, +\ {'word': 'pt::pgen', 'menu': '1.0.3'}, +\ {'word': 'pt::rde', 'menu': '1.1'}, +\ {'word': 'pt::rde::oo', 'menu': '1.1'}, +\ {'word': 'pt::tclparam::configuration::snit', 'menu': '1.0.2'}, +\ {'word': 'pt::tclparam::configuration::tcloo', 'menu': '1.0.4'}, +\ {'word': 'pt::util', 'menu': '1.1'}, +\ {'word': 'puretclparser', 'menu': '3.2'}, +\ {'word': 'radioMatrix', 'menu': '1.0'}, +\ {'word': 'rc4', 'menu': '1.1.0'}, +\ {'word': 'rcs', 'menu': '0.1'}, +\ {'word': 'rdial', 'menu': '0.3'}, +\ {'word': 'report', 'menu': '0.3.2'}, +\ {'word': 'resolv', 'menu': '1.0.3'}, +\ {'word': 'rest', 'menu': '1.0.2'}, +\ {'word': 'ripemd128', 'menu': '1.0.5'}, +\ {'word': 'ripemd160', 'menu': '1.0.5'}, +\ {'word': 'rpcvar', 'menu': '1.2'}, +\ {'word': 'scgi::app', 'menu': '0.1'}, +\ {'word': 'scgi::server', 'menu': '0.1'}, +\ {'word': 'sgml', 'menu': '1.9'}, +\ {'word': 'sgmlparser', 'menu': '1.1'}, +\ {'word': 'sha1', 'menu': '1.1.1'}, +\ {'word': 'sha256', 'menu': '1.0.3'}, +\ {'word': 'simulation::annealing', 'menu': '0.2'}, +\ {'word': 'simulation::montecarlo', 'menu': '0.1'}, +\ {'word': 'simulation::random', 'menu': '0.3.1'}, +\ {'word': 'smtp', 'menu': '1.4.5'}, +\ {'word': 'smtpd', 'menu': '1.5'}, +\ {'word': 'snit', 'menu': '1.4.2'}, +\ {'word': 'soapinterop::B', 'menu': '1.0'}, +\ {'word': 'soapinterop::C', 'menu': '1.0'}, +\ {'word': 'soapinterop::base', 'menu': '1.0'}, +\ {'word': 'soundex', 'menu': '1.0'}, +\ {'word': 'spf', 'menu': '1.1.1'}, +\ {'word': 'sqlite3', 'menu': '3.20.1'}, +\ {'word': 'starkit', 'menu': '1.3.3'}, +\ {'word': 'stooop', 'menu': '4.4.1'}, +\ {'word': 'string::token', 'menu': '1'}, +\ {'word': 'string::token::shell', 'menu': '1.2'}, +\ {'word': 'stringprep', 'menu': '1.0.1'}, +\ {'word': 'stringprep::data', 'menu': '1.0.1'}, +\ {'word': 'struct', 'menu': '1.4'}, +\ {'word': 'struct::disjointset', 'menu': '1.0'}, +\ {'word': 'struct::graph', 'menu': '2.4'}, +\ {'word': 'struct::graph::op', 'menu': '0.11.3'}, +\ {'word': 'struct::list', 'menu': '1.8.3'}, +\ {'word': 'struct::matrix', 'menu': '2.0.3'}, +\ {'word': 'struct::pool', 'menu': '1.2.3'}, +\ {'word': 'struct::prioqueue', 'menu': '1.4'}, +\ {'word': 'struct::queue', 'menu': '1.4.5'}, +\ {'word': 'struct::record', 'menu': '1.2.1'}, +\ {'word': 'struct::set', 'menu': '2.2.3'}, +\ {'word': 'struct::skiplist', 'menu': '1.3'}, +\ {'word': 'struct::stack', 'menu': '1.5.3'}, +\ {'word': 'struct::tree', 'menu': '1.2.2'}, +\ {'word': 'stubs::container', 'menu': '1'}, +\ {'word': 'stubs::gen', 'menu': '1'}, +\ {'word': 'stubs::gen::decl', 'menu': '1'}, +\ {'word': 'stubs::gen::header', 'menu': '1'}, +\ {'word': 'stubs::gen::init', 'menu': '1'}, +\ {'word': 'stubs::gen::lib', 'menu': '1'}, +\ {'word': 'stubs::gen::macro', 'menu': '1'}, +\ {'word': 'stubs::gen::slot', 'menu': '1'}, +\ {'word': 'stubs::reader', 'menu': '1'}, +\ {'word': 'stubs::writer', 'menu': '1'}, +\ {'word': 'style', 'menu': '0.3'}, +\ {'word': 'style::as', 'menu': '1.4.1'}, +\ {'word': 'style::lobster', 'menu': '0.2'}, +\ {'word': 'sum', 'menu': '1.1.2'}, +\ {'word': 'swaplist', 'menu': '0.2'}, +\ {'word': 'switched', 'menu': '2.2.1'}, +\ {'word': 'tablelist', 'menu': '5.13'}, +\ {'word': 'tablelist::common', 'menu': '5.13'}, +\ {'word': 'tablelist_tile', 'menu': '5.13'}, +\ {'word': 'tachometer', 'menu': '0.1'}, +\ {'word': 'tar', 'menu': '0.10'}, +\ {'word': 'tbcload', 'menu': '1.7'}, +\ {'word': 'tcl::chan::cat', 'menu': '1.0.2'}, +\ {'word': 'tcl::chan::core', 'menu': '1'}, +\ {'word': 'tcl::chan::events', 'menu': '1'}, +\ {'word': 'tcl::chan::facade', 'menu': '1.0.1'}, +\ {'word': 'tcl::chan::fifo', 'menu': '1'}, +\ {'word': 'tcl::chan::fifo2', 'menu': '1'}, +\ {'word': 'tcl::chan::halfpipe', 'menu': '1'}, +\ {'word': 'tcl::chan::memchan', 'menu': '1.0.3'}, +\ {'word': 'tcl::chan::null', 'menu': '1'}, +\ {'word': 'tcl::chan::nullzero', 'menu': '1'}, +\ {'word': 'tcl::chan::random', 'menu': '1'}, +\ {'word': 'tcl::chan::std', 'menu': '1.0.1'}, +\ {'word': 'tcl::chan::string', 'menu': '1.0.2'}, +\ {'word': 'tcl::chan::textwindow', 'menu': '1'}, +\ {'word': 'tcl::chan::variable', 'menu': '1.0.3'}, +\ {'word': 'tcl::chan::zero', 'menu': '1'}, +\ {'word': 'tcl::randomseed', 'menu': '1'}, +\ {'word': 'tcl::transform::adler32', 'menu': '1'}, +\ {'word': 'tcl::transform::base64', 'menu': '1'}, +\ {'word': 'tcl::transform::core', 'menu': '1'}, +\ {'word': 'tcl::transform::counter', 'menu': '1'}, +\ {'word': 'tcl::transform::crc32', 'menu': '1'}, +\ {'word': 'tcl::transform::hex', 'menu': '1'}, +\ {'word': 'tcl::transform::identity', 'menu': '1'}, +\ {'word': 'tcl::transform::limitsize', 'menu': '1'}, +\ {'word': 'tcl::transform::observe', 'menu': '1'}, +\ {'word': 'tcl::transform::otp', 'menu': '1'}, +\ {'word': 'tcl::transform::rot', 'menu': '1'}, +\ {'word': 'tcl::transform::spacer', 'menu': '1'}, +\ {'word': 'tcl::transform::zlib', 'menu': '1.0.1'}, +\ {'word': 'tclAE', 'menu': '2.0.5'}, +\ {'word': 'tclDES', 'menu': '1.0.0'}, +\ {'word': 'tclDESjr', 'menu': '1.0.0'}, +\ {'word': 'tcllibc', 'menu': '0.3.15'}, +\ {'word': 'tclparser', 'menu': '3.2'}, +\ {'word': 'tcltest', 'menu': '2.5.0'}, +\ {'word': 'tdbc', 'menu': '1.1.0'}, +\ {'word': 'tdbc::mysql', 'menu': '1.1.0'}, +\ {'word': 'tdbc::odbc', 'menu': '1.1.0'}, +\ {'word': 'tdbc::postgres', 'menu': '1.1.0'}, +\ {'word': 'tdom', 'menu': '0.8.3'}, +\ {'word': 'tepam', 'menu': '0.5'}, +\ {'word': 'tepam::doc_gen', 'menu': '0.1.1'}, +\ {'word': 'term', 'menu': '0.1'}, +\ {'word': 'term::ansi::code', 'menu': '0.2'}, +\ {'word': 'term::ansi::code::attr', 'menu': '0.1'}, +\ {'word': 'term::ansi::code::ctrl', 'menu': '0.2'}, +\ {'word': 'term::ansi::code::macros', 'menu': '0.1'}, +\ {'word': 'term::ansi::ctrl::unix', 'menu': '0.1.1'}, +\ {'word': 'term::ansi::send', 'menu': '0.2'}, +\ {'word': 'term::interact::menu', 'menu': '0.1'}, +\ {'word': 'term::interact::pager', 'menu': '0.1'}, +\ {'word': 'term::receive', 'menu': '0.1'}, +\ {'word': 'term::receive::bind', 'menu': '0.1'}, +\ {'word': 'term::send', 'menu': '0.1'}, +\ {'word': 'text::write', 'menu': '1'}, +\ {'word': 'textutil', 'menu': '0.8'}, +\ {'word': 'textutil::adjust', 'menu': '0.7.3'}, +\ {'word': 'textutil::expander', 'menu': '1.3.1'}, +\ {'word': 'textutil::repeat', 'menu': '0.7'}, +\ {'word': 'textutil::split', 'menu': '0.7'}, +\ {'word': 'textutil::string', 'menu': '0.8'}, +\ {'word': 'textutil::tabify', 'menu': '0.7'}, +\ {'word': 'textutil::trim', 'menu': '0.7'}, +\ {'word': 'throw', 'menu': '1'}, +\ {'word': 'tie', 'menu': '1.1'}, +\ {'word': 'tie::std::array', 'menu': '1.0'}, +\ {'word': 'tie::std::dsource', 'menu': '1.0'}, +\ {'word': 'tie::std::file', 'menu': '1.0.4'}, +\ {'word': 'tie::std::growfile', 'menu': '1.0'}, +\ {'word': 'tie::std::log', 'menu': '1.0'}, +\ {'word': 'tie::std::rarray', 'menu': '1.0.1'}, +\ {'word': 'tiff', 'menu': '0.2.1'}, +\ {'word': 'tifftcl', 'menu': '3.9.7'}, +\ {'word': 'time', 'menu': '1.2.1'}, +\ {'word': 'tipstack', 'menu': '1.0.1'}, +\ {'word': 'tkblt', 'menu': '3.2'}, +\ {'word': 'tkcon', 'menu': '2.7'}, +\ {'word': 'tkpiechart', 'menu': '6.6'}, +\ {'word': 'tls', 'menu': '1.7.16'}, +\ {'word': 'tnc', 'menu': '0.3.0'}, +\ {'word': 'tool', 'menu': '0.5'}, +\ {'word': 'tool::datatype', 'menu': '0.1'}, +\ {'word': 'tooltip', 'menu': '1.4.5'}, +\ {'word': 'transfer::connect', 'menu': '0.2'}, +\ {'word': 'transfer::copy', 'menu': '0.3'}, +\ {'word': 'transfer::copy::queue', 'menu': '0.1'}, +\ {'word': 'transfer::data::destination', 'menu': '0.2'}, +\ {'word': 'transfer::data::source', 'menu': '0.2'}, +\ {'word': 'transfer::receiver', 'menu': '0.2'}, +\ {'word': 'transfer::transmitter', 'menu': '0.2'}, +\ {'word': 'treectrl', 'menu': '2.4.1'}, +\ {'word': 'treeql', 'menu': '1.3.1'}, +\ {'word': 'trsync', 'menu': '1.0'}, +\ {'word': 'try', 'menu': '1'}, +\ {'word': 'uevent', 'menu': '0.3.1'}, +\ {'word': 'uevent::onidle', 'menu': '0.1'}, +\ {'word': 'unicode', 'menu': '1.0.0'}, +\ {'word': 'unicode::data', 'menu': '1.0.0'}, +\ {'word': 'units', 'menu': '2.1.1'}, +\ {'word': 'uri', 'menu': '1.2.6'}, +\ {'word': 'uri::urn', 'menu': '1.0.3'}, +\ {'word': 'uuencode', 'menu': '1.1.5'}, +\ {'word': 'uuid', 'menu': '1.0.5'}, +\ {'word': 'valtype::common', 'menu': '1'}, +\ {'word': 'valtype::creditcard::amex', 'menu': '1'}, +\ {'word': 'valtype::creditcard::discover', 'menu': '1'}, +\ {'word': 'valtype::creditcard::mastercard', 'menu': '1'}, +\ {'word': 'valtype::creditcard::visa', 'menu': '1'}, +\ {'word': 'valtype::gs1::ean13', 'menu': '1'}, +\ {'word': 'valtype::iban', 'menu': '1.5'}, +\ {'word': 'valtype::imei', 'menu': '1'}, +\ {'word': 'valtype::isbn', 'menu': '1'}, +\ {'word': 'valtype::luhn', 'menu': '1'}, +\ {'word': 'valtype::luhn5', 'menu': '1'}, +\ {'word': 'valtype::usnpi', 'menu': '1'}, +\ {'word': 'valtype::verhoeff', 'menu': '1'}, +\ {'word': 'vfs', 'menu': '1.4.2'}, +\ {'word': 'vfs::ftp', 'menu': '1.0'}, +\ {'word': 'vfs::http', 'menu': '0.6'}, +\ {'word': 'vfs::mk4', 'menu': '1.10.1'}, +\ {'word': 'vfs::ns', 'menu': '0.5.1'}, +\ {'word': 'vfs::tar', 'menu': '0.91'}, +\ {'word': 'vfs::template', 'menu': '1.5.5'}, +\ {'word': 'vfs::template::chroot', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::collate', 'menu': '1.5.3'}, +\ {'word': 'vfs::template::fish', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::quota', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::version', 'menu': '1.5.2'}, +\ {'word': 'vfs::template::version::delta', 'menu': '1.5.2'}, +\ {'word': 'vfs::test', 'menu': '1.0'}, +\ {'word': 'vfs::tk', 'menu': '0.5'}, +\ {'word': 'vfs::urltype', 'menu': '1.0'}, +\ {'word': 'vfs::webdav', 'menu': '0.1'}, +\ {'word': 'vfs::zip', 'menu': '1.0.4.1'}, +\ {'word': 'voltmeter', 'menu': '0.1'}, +\ {'word': 'wcb', 'menu': '3.5'}, +\ {'word': 'websocket', 'menu': '1.4'}, +\ {'word': 'widget', 'menu': '3.1'}, +\ {'word': 'widget::all', 'menu': '1.2.4'}, +\ {'word': 'widget::arrowbutton', 'menu': '1.0'}, +\ {'word': 'widget::calendar', 'menu': '1.0.1'}, +\ {'word': 'widget::dateentry', 'menu': '0.96'}, +\ {'word': 'widget::dialog', 'menu': '1.3.1'}, +\ {'word': 'widget::listentry', 'menu': '0.1.1'}, +\ {'word': 'widget::listsimple', 'menu': '0.1.1'}, +\ {'word': 'widget::menuentry', 'menu': '1.0.1'}, +\ {'word': 'widget::panelframe', 'menu': '1.1'}, +\ {'word': 'widget::ruler', 'menu': '1.1'}, +\ {'word': 'widget::screenruler', 'menu': '1.2'}, +\ {'word': 'widget::scrolledtext', 'menu': '1.0'}, +\ {'word': 'widget::scrolledwindow', 'menu': '1.2.1'}, +\ {'word': 'widget::statusbar', 'menu': '1.2.1'}, +\ {'word': 'widget::superframe', 'menu': '1.0.1'}, +\ {'word': 'widget::toolbar', 'menu': '1.2.1'}, +\ {'word': 'widget::validator', 'menu': '0.1'}, +\ {'word': 'wip', 'menu': '2.2'}, +\ {'word': 'xml', 'menu': '3.2'}, +\ {'word': 'xml::c', 'menu': '2.6'}, +\ {'word': 'xml::dep', 'menu': '1.0'}, +\ {'word': 'xml::expat', 'menu': '2.6'}, +\ {'word': 'xml::libxml2', 'menu': '3.2'}, +\ {'word': 'xml::tcl', 'menu': '3.2'}, +\ {'word': 'xml::tclparser', 'menu': '3.2'}, +\ {'word': 'xmldefs', 'menu': '3.2'}, +\ {'word': 'xmldep', 'menu': '1.0'}, +\ {'word': 'xmlswitch', 'menu': '3.2'}, +\ {'word': 'xotcl::comm::connection', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::dav', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::ftp', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::httpAccess', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::httpd', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::imap', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::ldap', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::mime', 'menu': '2.0'}, +\ {'word': 'xotcl::comm::pcache', 'menu': '2.0'}, +\ {'word': 'xotcl::htmllib', 'menu': '2.0'}, +\ {'word': 'xotcl::metadataAnalyzer', 'menu': '2.0'}, +\ {'word': 'xotcl::mixinStrategy', 'menu': '2.0'}, +\ {'word': 'xotcl::package', 'menu': '2.0'}, +\ {'word': 'xotcl::script', 'menu': '2.0'}, +\ {'word': 'xotcl::scriptCreation::recoveryPoint', 'menu': '2.0'}, +\ {'word': 'xotcl::scriptCreation::scriptCreator', 'menu': '2.0'}, +\ {'word': 'xotcl::serializer', 'menu': '2.1'}, +\ {'word': 'xotcl::staticMetadataAnalyzer', 'menu': '2.0'}, +\ {'word': 'xotcl::store', 'menu': '0.84'}, +\ {'word': 'xotcl::store::jufgdbm', 'menu': '0.81'}, +\ {'word': 'xotcl::store::mem', 'menu': '0.84'}, +\ {'word': 'xotcl::store::multi', 'menu': '0.9'}, +\ {'word': 'xotcl::store::persistence', 'menu': '0.8'}, +\ {'word': 'xotcl::store::tclgdbm', 'menu': '0.84'}, +\ {'word': 'xotcl::store::textfile', 'menu': '0.84'}, +\ {'word': 'xotcl::test', 'menu': '1.38'}, +\ {'word': 'xotcl::trace', 'menu': '2.0'}, +\ {'word': 'xotcl::upvar-compat', 'menu': '2.0'}, +\ {'word': 'xotcl::wafecompat', 'menu': '2.0'}, +\ {'word': 'xotcl::xodoc', 'menu': '2.0'}, +\ {'word': 'xpath', 'menu': '1.0'}, +\ {'word': 'xslt', 'menu': '3.2'}, +\ {'word': 'xslt::cache', 'menu': '3.2'}, +\ {'word': 'xslt::libxslt', 'menu': '3.2'}, +\ {'word': 'xslt::process', 'menu': '1.1'}, +\ {'word': 'xslt::resources', 'menu': '1.3'}, +\ {'word': 'xslt::utilities', 'menu': '3.2'}, +\ {'word': 'xsxp', 'menu': '1.0'}, +\ {'word': 'xyplot', 'menu': '1.0.1'}, +\ {'word': 'yaml', 'menu': '0.3.9'}, +\ {'word': 'yencode', 'menu': '1.1.3'}, +\ {'word': 'zipfile::decode', 'menu': '0.7'}, +\ {'word': 'zipfile::encode', 'menu': '0.4'}, +\ {'word': 'zipfile::mkzip', 'menu': '1.2'}, +\ {'word': 'zlibtcl', 'menu': '1.2.8.1'}, +\ ] + +let b:after = [ +\ {'word': 'cancel', 'menu': 'script script script ...'}, +\ {'word': 'idle', 'menu': 'script script script ...'}, +\ {'word': 'info', 'menu': 'id'}, +\ ] + +let b:array = [ +\ {'word': 'anymore', 'menu': 'arrayName searchId'}, +\ {'word': 'donesearch', 'menu': 'arrayName searchId'}, +\ {'word': 'exists', 'menu': 'arrayName'}, +\ {'word': 'get', 'menu': 'arrayName pattern'}, +\ {'word': 'names', 'menu': 'arrayName mode pattern'}, +\ {'word': 'nextelement', 'menu': 'arrayName searchId'}, +\ {'word': 'set', 'menu': 'arrayName list'}, +\ {'word': 'size', 'menu': 'arrayName'}, +\ {'word': 'startsearch', 'menu': 'arrayName'}, +\ {'word': 'statistics', 'menu': 'arrayName'}, +\ {'word': 'unset', 'menu': 'arrayName pattern'}, +\ ] + +let b:binary = [ +\ {'word': '-maxlen', 'menu': 'length'}, +\ {'word': '-wrapchar', 'menu': 'character'}, +\ {'word': '-strict', 'menu': ''}, +\ {'word': 'decode', 'menu': 'format -option value ... data'}, +\ {'word': 'encode', 'menu': 'format -option value ... data'}, +\ {'word': 'format', 'menu': 'formatString arg arg ...'}, +\ {'word': 'scan', 'menu': 'string formatString varName varName ...'}, +\ ] + +let b:chan = [ +\ {'word': 'blocked', 'menu': 'channelId'}, +\ {'word': 'close', 'menu': 'channelId direction'}, +\ {'word': 'configure', 'menu': 'channelId optionName value optionName value...'}, +\ {'word': 'copy', 'menu': 'inputChan outputChan -size size -command callback'}, +\ {'word': 'create', 'menu': 'mode cmdPrefix'}, +\ {'word': 'eof', 'menu': 'channelId'}, +\ {'word': 'event', 'menu': 'channelId event script'}, +\ {'word': 'flush', 'menu': 'channelId'}, +\ {'word': 'gets', 'menu': 'channelId varName'}, +\ {'word': 'names', 'menu': 'pattern'}, +\ {'word': 'pending', 'menu': 'mode channelId'}, +\ {'word': 'pipe', 'menu': ''}, +\ {'word': 'pop', 'menu': 'channelId'}, +\ {'word': 'postevent', 'menu': 'channelId eventSpec'}, +\ {'word': 'push', 'menu': 'channelId cmdPrefix'}, +\ {'word': 'puts', 'menu': '-nonewline channelId string'}, +\ {'word': 'read', 'menu': 'channelId'}, +\ {'word': 'seek', 'menu': 'channelId offset origin'}, +\ {'word': 'tell', 'menu': 'channelId'}, +\ {'word': 'truncate', 'menu': 'channelId length'}, +\ ] + +let b:chan_sp_configure = [ +\ {'word': '-blocking', 'menu': 'boolean'}, +\ {'word': '-buffering', 'menu': 'newValue'}, +\ {'word': '-buffersize', 'menu': 'newSize'}, +\ {'word': '-encoding', 'menu': 'name'}, +\ {'word': '-eofchar', 'menu': '{inChar outChar}'}, +\ {'word': '-translation', 'menu': '{inMode outMode}'}, +\ ] + +let b:clock = [ +\ {'word': 'add', 'menu': 'timeVal count unit... -option value'}, +\ {'word': 'clicks', 'menu': '-option'}, +\ {'word': 'format', 'menu': 'timeVal -option value...'}, +\ {'word': 'microseconds', 'menu': ''}, +\ {'word': 'milliseconds', 'menu': ''}, +\ {'word': 'scan', 'menu': 'inputString -option value...'}, +\ {'word': 'seconds', 'menu': ''}, +\ ] + +let b:clock_sp_seconds = [ +\ {'word': '-base', 'menu': 'time'}, +\ {'word': '-format', 'menu': 'format'}, +\ {'word': '-gmt', 'menu': 'boolean'}, +\ {'word': '-locale', 'menu': 'localeName'}, +\ {'word': '-timezone', 'menu': 'zoneName'}, +\ ] + +let b:dde = [ +\ {'word': 'servername', 'menu': '-force -handler proc -- topic'}, +\ {'word': 'execute', 'menu': '-async -binary service topic data'}, +\ {'word': 'poke', 'menu': '-binary service topic item data'}, +\ {'word': 'request', 'menu': '-binary service topic item'}, +\ {'word': 'services', 'menu': 'service topic'}, +\ {'word': 'eval', 'menu': '-async topic cmd arg arg ...'}, +\ ] + +let b:define = [ +\ {'word': '-append', 'menu': 'member ...'}, +\ {'word': '-clear', 'menu': ''}, +\ {'word': '-set', 'menu': 'member ...'}, +\ ] + +let b:dict = [ +\ {'word': 'append', 'menu': 'dictionaryVariable key string ...'}, +\ {'word': 'create', 'menu': 'key value ...'}, +\ {'word': 'exists', 'menu': 'dictionaryValue key key ...'}, +\ {'word': 'filter', 'menu': 'dictionaryValue value globPattern ...'}, +\ {'word': 'for', 'menu': '{keyVariable valueVariable} dictionaryValue body'}, +\ {'word': 'get', 'menu': 'dictionaryValue key ...'}, +\ {'word': 'incr', 'menu': 'dictionaryVariable key increment'}, +\ {'word': 'info', 'menu': 'dictionaryValue'}, +\ {'word': 'keys', 'menu': 'dictionaryValue globPattern'}, +\ {'word': 'lappend', 'menu': 'dictionaryVariable key value ...'}, +\ {'word': 'map', 'menu': '{keyVariable valueVariable} dictionaryValue body'}, +\ {'word': 'merge', 'menu': 'dictionaryValue ...'}, +\ {'word': 'remove', 'menu': 'dictionaryValue key ...'}, +\ {'word': 'replace', 'menu': 'dictionaryValue key value ...'}, +\ {'word': 'set', 'menu': 'dictionaryVariable key key ... value'}, +\ {'word': 'size', 'menu': 'dictionaryValue'}, +\ {'word': 'unset', 'menu': 'dictionaryVariable key key ...'}, +\ {'word': 'update', 'menu': 'dictionaryVariable key varName key varName ... body'}, +\ {'word': 'values', 'menu': 'dictionaryValue globPattern'}, +\ {'word': 'with', 'menu': 'dictionaryVariable key ... body'}, +\ ] + +let b:encoding = [ +\ {'word': 'convertfrom', 'menu': 'encoding data'}, +\ {'word': 'convertto', 'menu': 'encoding string'}, +\ {'word': 'dirs', 'menu': 'directoryList'}, +\ {'word': 'names', 'menu': ''}, +\ {'word': 'system', 'menu': 'encoding'}, +\ ] + +let b:exec = [ +\ {'word': '-ignorestderr', 'menu': ''}, +\ {'word': '-keepnewline', 'menu': ''}, +\ ] + +let b:fconfigure = [ +\ {'word': '-blocking', 'menu': 'boolean'}, +\ {'word': '-buffering', 'menu': 'newValue'}, +\ {'word': '-buffersize', 'menu': 'newSize'}, +\ {'word': '-encoding', 'menu': 'name'}, +\ {'word': '-eofchar', 'menu': '{inChar outChar}'}, +\ {'word': '-translation', 'menu': '{inMode outMode}'}, +\ ] + +let b:file = [ +\ {'word': 'atime', 'menu': 'name time'}, +\ {'word': 'attributes', 'menu': 'name option value option value...'}, +\ {'word': 'channels', 'menu': 'pattern'}, +\ {'word': 'copy', 'menu': '-force -- source source ... targetDir'}, +\ {'word': 'delete', 'menu': '-force -- pathname ... '}, +\ {'word': 'dirname', 'menu': 'name'}, +\ {'word': 'executable', 'menu': 'name'}, +\ {'word': 'exists', 'menu': 'name'}, +\ {'word': 'extension', 'menu': 'name'}, +\ {'word': 'isdirectory', 'menu': 'name'}, +\ {'word': 'isfile', 'menu': 'name'}, +\ {'word': 'join', 'menu': 'name name ...'}, +\ {'word': 'link', 'menu': '-linktype linkName target'}, +\ {'word': 'lstat', 'menu': 'name varName'}, +\ {'word': 'mkdir', 'menu': 'dir ...'}, +\ {'word': 'mtime', 'menu': 'name time'}, +\ {'word': 'nativename', 'menu': 'name'}, +\ {'word': 'normalize', 'menu': 'name'}, +\ {'word': 'owned', 'menu': 'name'}, +\ {'word': 'pathtype', 'menu': 'name'}, +\ {'word': 'readable', 'menu': 'name'}, +\ {'word': 'readlink', 'menu': 'name'}, +\ {'word': 'rename', 'menu': '-force -- source source ... targetDir'}, +\ {'word': 'rootname', 'menu': 'name'}, +\ {'word': 'separator', 'menu': 'name'}, +\ {'word': 'size', 'menu': 'name'}, +\ {'word': 'split', 'menu': 'name'}, +\ {'word': 'stat', 'menu': 'name varName'}, +\ {'word': 'system', 'menu': 'name'}, +\ {'word': 'tail', 'menu': 'name'}, +\ {'word': 'tempfile', 'menu': 'nameVar template'}, +\ {'word': 'type', 'menu': 'name'}, +\ {'word': 'volumes', 'menu': ''}, +\ {'word': 'writable', 'menu': 'name'}, +\ ] + +let b:glob = [ +\ {'word': '-directory', 'menu': 'directory'}, +\ {'word': '-join', 'menu': ''}, +\ {'word': '-nocomplain', 'menu': ''}, +\ {'word': '-path', 'menu': 'pathPrefix'}, +\ {'word': '-tails', 'menu': ''}, +\ {'word': '-types', 'menu': 'typeList'}, +\ ] + +let b:history = [ +\ {'word': 'add', 'menu': 'command exec'}, +\ {'word': 'change', 'menu': 'newValue event'}, +\ {'word': 'clear', 'menu': ''}, +\ {'word': 'event', 'menu': 'event'}, +\ {'word': 'info', 'menu': 'count'}, +\ {'word': 'keep', 'menu': 'count'}, +\ {'word': 'nextid', 'menu': ''}, +\ {'word': 'redo', 'menu': 'event'}, +\ ] + +let b:http = [ +\ {'word': 'config', 'menu': '-option value ...'}, +\ {'word': 'geturl', 'menu': 'url -option value ...'}, +\ {'word': 'formatQuery', 'menu': 'key value key value ...'}, +\ {'word': 'quoteString', 'menu': 'value'}, +\ {'word': 'reset', 'menu': 'token why'}, +\ {'word': 'wait', 'menu': 'token'}, +\ {'word': 'data', 'menu': 'token'}, +\ {'word': 'error', 'menu': 'token'}, +\ {'word': 'status', 'menu': 'token'}, +\ {'word': 'code', 'menu': 'token'}, +\ {'word': 'ncode', 'menu': 'token'}, +\ {'word': 'size', 'menu': 'token'}, +\ {'word': 'meta', 'menu': 'token'}, +\ {'word': 'cleanup', 'menu': 'token'}, +\ {'word': 'register', 'menu': 'proto port command'}, +\ {'word': 'registerError', 'menu': 'port message'}, +\ {'word': 'unregister', 'menu': 'proto'}, +\ ] + +let b:http_ns_config = [ +\ {'word': '-accept', 'menu': 'mimetypes'}, +\ {'word': '-pipeline', 'menu': 'boolean'}, +\ {'word': '-postfresh', 'menu': 'boolean'}, +\ {'word': '-proxyhost', 'menu': 'hostname'}, +\ {'word': '-proxyport', 'menu': 'number'}, +\ {'word': '-proxyfilter', 'menu': 'command'}, +\ {'word': '-repost', 'menu': 'boolean'}, +\ {'word': '-urlencoding', 'menu': 'encoding'}, +\ {'word': '-useragent', 'menu': 'string'}, +\ {'word': '-zip', 'menu': 'boolean'}, +\ ] + +let b:http_ns_geturl = [ +\ {'word': '-binary', 'menu': 'boolean'}, +\ {'word': '-blocksize', 'menu': 'size'}, +\ {'word': '-channel', 'menu': 'name'}, +\ {'word': '-command', 'menu': 'callback'}, +\ {'word': '-handler', 'menu': 'callback'}, +\ {'word': '-headers', 'menu': 'keyvaluelist'}, +\ {'word': '-keepalive', 'menu': 'boolean'}, +\ {'word': '-method', 'menu': 'type'}, +\ {'word': '-myaddr', 'menu': 'address'}, +\ {'word': '-progress', 'menu': 'callback'}, +\ {'word': '-protocol', 'menu': 'version'}, +\ {'word': '-query', 'menu': 'query'}, +\ {'word': '-queryblocksize', 'menu': 'size'}, +\ {'word': '-querychannel', 'menu': 'channelID'}, +\ {'word': '-queryprogress', 'menu': 'callback'}, +\ {'word': '-strict', 'menu': 'boolean'}, +\ {'word': '-timeout', 'menu': 'milliseconds'}, +\ {'word': '-type', 'menu': 'mime-type'}, +\ {'word': '-validate', 'menu': 'boolean'}, +\ ] + +let b:info = [ +\ {'word': 'args', 'menu': 'procname'}, +\ {'word': 'body', 'menu': 'procname'}, +\ {'word': 'class', 'menu': 'variables class'}, +\ {'word': 'cmdcount', 'menu': ''}, +\ {'word': 'commands', 'menu': 'pattern'}, +\ {'word': 'complete', 'menu': 'command'}, +\ {'word': 'coroutine', 'menu': ''}, +\ {'word': 'default', 'menu': 'procname arg varname'}, +\ {'word': 'errorstack', 'menu': 'interp'}, +\ {'word': 'exists', 'menu': 'varName'}, +\ {'word': 'frame', 'menu': 'number'}, +\ {'word': 'functions', 'menu': 'pattern'}, +\ {'word': 'globals', 'menu': 'pattern'}, +\ {'word': 'hostname', 'menu': ''}, +\ {'word': 'level', 'menu': 'number'}, +\ {'word': 'library', 'menu': ''}, +\ {'word': 'loaded', 'menu': 'interp'}, +\ {'word': 'locals', 'menu': 'pattern'}, +\ {'word': 'nameofexecutable', 'menu': ''}, +\ {'word': 'object', 'menu': 'vars object pattern'}, +\ {'word': 'patchlevel', 'menu': ''}, +\ {'word': 'procs', 'menu': 'pattern'}, +\ {'word': 'script', 'menu': 'filename'}, +\ {'word': 'sharedlibextension', 'menu': ''}, +\ {'word': 'tclversion', 'menu': ''}, +\ {'word': 'vars', 'menu': 'pattern'}, +\ ] + +let b:info_sp_class = [ +\ {'word': '-all', 'menu': ''}, +\ {'word': '-private', 'menu': ''}, +\ ] + +let b:info_sp_object = [ +\ {'word': '-all', 'menu': ''}, +\ {'word': '-private', 'menu': ''}, +\ ] + +let b:interp = [ +\ {'word': 'bgerror', 'menu': 'path cmdPrefix'}, +\ {'word': 'exists', 'menu': 'path'}, +\ {'word': 'expose', 'menu': 'path hiddenName exposedCmdName'}, +\ {'word': 'issafe', 'menu': 'path'}, +\ {'word': 'marktrusted', 'menu': 'path'}, +\ ] + +let b:interp_sp_bgerror = [ +\ {'word': '-unwind', 'menu': '-- path result'}, +\ {'word': '-safe', 'menu': '-- path'}, +\ {'word': '-frame', 'menu': 'bool'}, +\ ] + +let b:interp_sp_marktrusted = [ +\ {'word': '-command', 'menu': ''}, +\ {'word': '-granularity', 'menu': ''}, +\ {'word': '-milliseconds', 'menu': ''}, +\ {'word': '-seconds', 'menu': ''}, +\ {'word': '-value', 'menu': ''}, +\ ] + +let b:lsearch = [ +\ {'word': '-exact', 'menu': ''}, +\ {'word': '-glob', 'menu': ''}, +\ {'word': '-regexp', 'menu': ''}, +\ {'word': '-sorted', 'menu': ''}, +\ {'word': '-all', 'menu': ''}, +\ {'word': '-inline', 'menu': ''}, +\ {'word': '-not', 'menu': ''}, +\ {'word': '-start', 'menu': 'index'}, +\ {'word': '-ascii', 'menu': ''}, +\ {'word': '-dictionary', 'menu': ''}, +\ {'word': '-integer', 'menu': ''}, +\ {'word': '-nocase', 'menu': ''}, +\ {'word': '-real', 'menu': ''}, +\ {'word': '-decreasing', 'menu': ''}, +\ {'word': '-increasing', 'menu': ''}, +\ {'word': '-bisect', 'menu': ''}, +\ {'word': '-index', 'menu': 'indexList'}, +\ {'word': '-subindices', 'menu': ''}, +\ ] + +let b:lsort = [ +\ {'word': '-ascii', 'menu': ''}, +\ {'word': '-dictionary', 'menu': ''}, +\ {'word': '-integer', 'menu': ''}, +\ {'word': '-real', 'menu': ''}, +\ {'word': '-command', 'menu': 'command'}, +\ {'word': '-increasing', 'menu': ''}, +\ {'word': '-decreasing', 'menu': ''}, +\ {'word': '-indices', 'menu': ''}, +\ {'word': '-index', 'menu': 'indexList'}, +\ {'word': '-stride', 'menu': 'strideLength'}, +\ {'word': '-nocase', 'menu': ''}, +\ {'word': '-unique', 'menu': ''}, +\ ] + +let b:memory = [ +\ {'word': 'active', 'menu': 'file'}, +\ {'word': 'break_on_malloc', 'menu': 'count'}, +\ {'word': 'info', 'menu': ''}, +\ {'word': 'init', 'menu': '[on|off]'}, +\ {'word': 'objs', 'menu': 'file'}, +\ {'word': 'onexit', 'menu': 'file'}, +\ {'word': 'tag', 'menu': 'string'}, +\ {'word': 'trace', 'menu': '[on|off]'}, +\ {'word': 'trace_on_at_malloc', 'menu': 'count'}, +\ {'word': 'validate', 'menu': '[on|off]'}, +\ ] + +let b:msgcat = [ +\ {'word': 'mc', 'menu': 'src-string arg arg ...'}, +\ {'word': 'mcmax', 'menu': 'src-string src-string ...'}, +\ {'word': 'mcexists', 'menu': '-exactnamespace -exactlocale src-string'}, +\ {'word': 'mclocale', 'menu': 'newLocale'}, +\ {'word': 'mcpreferences', 'menu': ''}, +\ {'word': 'mcload', 'menu': 'dirname'}, +\ {'word': 'mcset', 'menu': 'locale src-string translate-string'}, +\ {'word': 'mcmset', 'menu': 'locale src-trans-list'}, +\ {'word': 'mcflset', 'menu': 'src-string translate-string'}, +\ {'word': 'mcflmset', 'menu': 'src-trans-list'}, +\ {'word': 'mcunknown', 'menu': 'locale src-string arg arg ...'}, +\ {'word': 'mcforgetpackage', 'menu': ''}, +\ {'word': 'mcpackagelocale', 'menu': 'subcommand locale'}, +\ {'word': 'mcpackageconfig', 'menu': 'subcommand option value'}, +\ {'word': 'mcloadedlocales', 'menu': 'subcommand locale'}, +\ ] + +let b:namespace = [ +\ {'word': 'children', 'menu': 'namespace pattern'}, +\ {'word': 'code', 'menu': 'script'}, +\ {'word': 'current', 'menu': ''}, +\ {'word': 'delete', 'menu': 'namespace namespace ...'}, +\ {'word': 'ensemble', 'menu': 'exists command'}, +\ {'word': 'eval', 'menu': 'namespace arg arg ...'}, +\ {'word': 'exists', 'menu': 'namespace'}, +\ {'word': 'export', 'menu': '-clear pattern pattern ...'}, +\ {'word': 'forget', 'menu': 'pattern pattern ...'}, +\ {'word': 'import', 'menu': '-force pattern pattern ...'}, +\ {'word': 'inscope', 'menu': 'namespace script arg ...'}, +\ {'word': 'origin', 'menu': 'command'}, +\ {'word': 'parent', 'menu': 'namespace'}, +\ {'word': 'path', 'menu': 'namespaceList'}, +\ {'word': 'qualifiers', 'menu': 'string'}, +\ {'word': 'tail', 'menu': 'string'}, +\ {'word': 'upvar', 'menu': 'namespace otherVar myVar ...'}, +\ {'word': 'unknown', 'menu': 'script'}, +\ {'word': 'which', 'menu': '-command -variable name'}, +\ ] + +let b:namespace_sp_ensemble = [ +\ {'word': '-map', 'menu': ''}, +\ {'word': '-parameters', 'menu': ''}, +\ {'word': '-prefixes', 'menu': ''}, +\ {'word': '-subcommands', 'menu': ''}, +\ {'word': '-unknown', 'menu': ''}, +\ {'word': '-command', 'menu': ''}, +\ {'word': '-namespace', 'menu': ''}, +\ ] + +let b:open = [ +\ {'word': '-mode', 'menu': 'baud,parity,data,stop'}, +\ {'word': '-handshake', 'menu': 'type'}, +\ {'word': '-queue', 'menu': ''}, +\ {'word': '-timeout', 'menu': 'msec'}, +\ {'word': '-ttycontrol', 'menu': '{signal boolean signal boolean ...}'}, +\ {'word': '-ttystatus', 'menu': ''}, +\ {'word': '-xchar', 'menu': '{xonChar xoffChar}'}, +\ {'word': '-pollinterval', 'menu': 'msec'}, +\ {'word': '-sysbuffer', 'menu': '{inSize outSize}'}, +\ {'word': '-lasterror', 'menu': ''}, +\ ] + +let b:package = [ +\ {'word': 'forget', 'menu': 'package package ...'}, +\ {'word': 'ifneeded', 'menu': 'package version script'}, +\ {'word': 'names', 'menu': ''}, +\ {'word': 'present', 'menu': '-exact package version'}, +\ {'word': 'provide', 'menu': 'package version'}, +\ {'word': 'require', 'menu': '-exact package version'}, +\ {'word': 'unknown', 'menu': 'command'}, +\ {'word': 'vcompare', 'menu': 'version1 version2'}, +\ {'word': 'versions', 'menu': 'package'}, +\ {'word': 'vsatisfies', 'menu': 'version requirement...'}, +\ {'word': 'prefer', 'menu': 'latest|stable'}, +\ ] + +let b:packagens = [ +\ {'word': '-name', 'menu': 'packageName'}, +\ {'word': '-version', 'menu': 'packageVersion'}, +\ {'word': '-load', 'menu': 'filespec'}, +\ {'word': '-source', 'menu': 'filespec'}, +\ ] + +let b:pkgMkIndex = [ +\ {'word': '-direct', 'menu': ''}, +\ {'word': '-lazy', 'menu': ''}, +\ {'word': '-load', 'menu': 'pkgPat'}, +\ {'word': '-verbose', 'menu': ''}, +\ ] + +let b:platform = [ +\ {'word': 'generic', 'menu': ''}, +\ {'word': 'identify', 'menu': ''}, +\ {'word': 'patterns', 'menu': 'identifier'}, +\ ] + +let b:prefix = [ +\ {'word': '-exact', 'menu': ''}, +\ {'word': '-message', 'menu': 'string'}, +\ {'word': '-error', 'menu': 'options'}, +\ ] + +let b:regexp = [ +\ {'word': '-about', 'menu': ''}, +\ {'word': '-expanded', 'menu': ''}, +\ {'word': '-indices', 'menu': ''}, +\ {'word': '-line', 'menu': ''}, +\ {'word': '-linestop', 'menu': ''}, +\ {'word': '-lineanchor', 'menu': ''}, +\ {'word': '-nocase', 'menu': ''}, +\ {'word': '-all', 'menu': ''}, +\ {'word': '-inline', 'menu': ''}, +\ {'word': '-start', 'menu': 'index'}, +\ ] + +let b:registry = [ +\ {'word': 'broadcast', 'menu': 'keyName -timeout milliseconds'}, +\ {'word': 'delete', 'menu': 'keyName valueName'}, +\ {'word': 'get', 'menu': 'keyName valueName'}, +\ {'word': 'keys', 'menu': 'keyName pattern'}, +\ {'word': 'set', 'menu': 'keyName valueName data type'}, +\ {'word': 'type', 'menu': 'keyName valueName'}, +\ {'word': 'values', 'menu': 'keyName pattern'}, +\ ] + +let b:regsub = [ +\ {'word': '-all', 'menu': ''}, +\ {'word': '-expanded', 'menu': ''}, +\ {'word': '-line', 'menu': ''}, +\ {'word': '-linestop', 'menu': ''}, +\ {'word': '-lineanchor', 'menu': ''}, +\ {'word': '-nocase', 'menu': ''}, +\ {'word': '-start', 'menu': 'index'}, +\ ] + +let b:return = [ +\ {'word': '-errorcode', 'menu': 'list'}, +\ {'word': '-errorinfo', 'menu': 'info'}, +\ {'word': '-errorstack', 'menu': 'list'}, +\ {'word': '-level', 'menu': 'level'}, +\ {'word': '-options', 'menu': 'options'}, +\ ] + +let b:safe = [ +\ {'word': 'interpCreate', 'menu': 'slave options...'}, +\ {'word': 'interpInit', 'menu': 'slave options...'}, +\ {'word': 'interpConfigure', 'menu': 'slave options...'}, +\ {'word': 'interpDelete', 'menu': 'slave'}, +\ {'word': 'interpFindInAccessPath', 'menu': 'slave directory'}, +\ {'word': 'interpAddToAccessPath', 'menu': 'slave directory'}, +\ {'word': 'setLogCmd', 'menu': 'cmd arg...'}, +\ ] + +let b:safe_ns_setLogCmd = [ +\ {'word': '-accessPath', 'menu': 'directoryList'}, +\ {'word': '-statics', 'menu': 'boolean'}, +\ {'word': '-noStatics', 'menu': ''}, +\ {'word': '-nested', 'menu': 'boolean'}, +\ {'word': '-nestedLoadOk', 'menu': ''}, +\ {'word': '-deleteHook', 'menu': 'script'}, +\ ] + +let b:self = [ +\ {'word': 'call', 'menu': ''}, +\ {'word': 'caller', 'menu': ''}, +\ {'word': 'class', 'menu': ''}, +\ {'word': 'filter', 'menu': ''}, +\ {'word': 'method', 'menu': ''}, +\ {'word': 'namespace', 'menu': ''}, +\ {'word': 'next', 'menu': ''}, +\ {'word': 'object', 'menu': ''}, +\ {'word': 'target', 'menu': ''}, +\ ] + +let b:socket = [ +\ {'word': '-myaddr', 'menu': 'addr'}, +\ {'word': '-myport', 'menu': 'port'}, +\ {'word': '-async', 'menu': ''}, +\ {'word': '-error', 'menu': ''}, +\ {'word': '-sockname', 'menu': ''}, +\ {'word': '-peername', 'menu': ''}, +\ {'word': '-connecting', 'menu': ''}, +\ ] + +let b:string = [ +\ {'word': 'cat', 'menu': 'string1 string2...'}, +\ {'word': 'compare', 'menu': '-nocase -length length string1 string2'}, +\ {'word': 'equal', 'menu': '-nocase -length length string1 string2'}, +\ {'word': 'first', 'menu': 'needleString haystackString startIndex'}, +\ {'word': 'index', 'menu': 'string charIndex'}, +\ {'word': 'is', 'menu': 'class -strict -failindex varname string'}, +\ {'word': 'last', 'menu': 'needleString haystackString lastIndex'}, +\ {'word': 'length', 'menu': 'string'}, +\ {'word': 'map', 'menu': '-nocase mapping string'}, +\ {'word': 'match', 'menu': '-nocase pattern string'}, +\ {'word': 'range', 'menu': 'string first last'}, +\ {'word': 'repeat', 'menu': 'string count'}, +\ {'word': 'replace', 'menu': 'string first last newstring'}, +\ {'word': 'reverse', 'menu': 'string'}, +\ {'word': 'tolower', 'menu': 'string first last'}, +\ {'word': 'totitle', 'menu': 'string first last'}, +\ {'word': 'toupper', 'menu': 'string first last'}, +\ {'word': 'trim', 'menu': 'string chars'}, +\ {'word': 'trimleft', 'menu': 'string chars'}, +\ {'word': 'trimright', 'menu': 'string chars'}, +\ {'word': 'bytelength', 'menu': 'string'}, +\ {'word': 'wordend', 'menu': 'string charIndex'}, +\ {'word': 'wordstart', 'menu': 'string charIndex'}, +\ ] + +let b:switch = [ +\ {'word': '-exact', 'menu': ''}, +\ {'word': '-glob', 'menu': ''}, +\ {'word': '-regexp', 'menu': ''}, +\ {'word': '-nocase', 'menu': ''}, +\ {'word': '-matchvar', 'menu': 'varName'}, +\ {'word': '-indexvar', 'menu': 'varName'}, +\ ] + +let b:tcltest = [ +\ {'word': '-constraints', 'menu': 'list'}, +\ {'word': '-setup', 'menu': 'script'}, +\ {'word': '-body', 'menu': 'script'}, +\ {'word': '-cleanup', 'menu': 'script'}, +\ {'word': '-match', 'menu': 'patternList'}, +\ {'word': '-result', 'menu': 'expectedValue'}, +\ {'word': '-output', 'menu': 'expectedValue'}, +\ {'word': '-errorOutput', 'menu': 'expectedValue'}, +\ {'word': '-returnCodes', 'menu': 'expectedCodeList'}, +\ {'word': '-errorCode', 'menu': 'expectedErrorCode'}, +\ {'word': '-singleproc', 'menu': 'boolean'}, +\ {'word': '-debug', 'menu': 'level'}, +\ {'word': '-verbose', 'menu': 'level'}, +\ {'word': '-preservecore', 'menu': 'level'}, +\ {'word': '-limitconstraints', 'menu': 'boolean'}, +\ {'word': '-tmpdir', 'menu': 'directory'}, +\ {'word': '-testdir', 'menu': 'directory'}, +\ {'word': '-file', 'menu': 'patternList'}, +\ {'word': '-notfile', 'menu': 'patternList'}, +\ {'word': '-relateddir', 'menu': 'patternList'}, +\ {'word': '-asidefromdir', 'menu': 'patternList'}, +\ {'word': '-skip', 'menu': 'patternList'}, +\ {'word': '-load', 'menu': 'script'}, +\ {'word': '-loadfile', 'menu': 'filename'}, +\ {'word': '-outfile', 'menu': 'filename'}, +\ {'word': '-errfile', 'menu': 'filename'}, +\ {'word': 'test', 'menu': 'name description optionList'}, +\ {'word': 'loadTestedCommands', 'menu': ''}, +\ {'word': 'makeDirectory', 'menu': 'name directory'}, +\ {'word': 'removeDirectory', 'menu': 'name directory'}, +\ {'word': 'makeFile', 'menu': 'contents name directory'}, +\ {'word': 'removeFile', 'menu': 'name directory'}, +\ {'word': 'viewFile', 'menu': 'name directory'}, +\ {'word': 'cleanupTests', 'menu': 'runningMultipleTests'}, +\ {'word': 'runAllTests', 'menu': ''}, +\ {'word': 'configure', 'menu': '-option value -option value ...'}, +\ {'word': 'customMatch', 'menu': 'mode command'}, +\ {'word': 'testConstraint', 'menu': 'constraint value'}, +\ {'word': 'outputChannel', 'menu': 'channelID'}, +\ {'word': 'errorChannel', 'menu': 'channelID'}, +\ {'word': 'interpreter', 'menu': 'interp'}, +\ {'word': 'debug', 'menu': 'level'}, +\ {'word': 'errorFile', 'menu': 'filename'}, +\ {'word': 'limitConstraints', 'menu': 'boolean'}, +\ {'word': 'loadFile', 'menu': 'filename'}, +\ {'word': 'loadScript', 'menu': 'script'}, +\ {'word': 'match', 'menu': 'patternList'}, +\ {'word': 'matchDirectories', 'menu': 'patternList'}, +\ {'word': 'matchFiles', 'menu': 'patternList'}, +\ {'word': 'outputFile', 'menu': 'filename'}, +\ {'word': 'preserveCore', 'menu': 'level'}, +\ {'word': 'singleProcess', 'menu': 'boolean'}, +\ {'word': 'skip', 'menu': 'patternList'}, +\ {'word': 'skipDirectories', 'menu': 'patternList'}, +\ {'word': 'skipFiles', 'menu': 'patternList'}, +\ {'word': 'temporaryDirectory', 'menu': 'directory'}, +\ {'word': 'testsDirectory', 'menu': 'directory'}, +\ {'word': 'verbose', 'menu': 'level'}, +\ {'word': 'bytestring', 'menu': 'string'}, +\ {'word': 'normalizeMsg', 'menu': 'msg'}, +\ {'word': 'normalizePath', 'menu': 'pathVar'}, +\ {'word': 'workingDirectory', 'menu': 'dir'}, +\ ] + +let b:timerate = [ +\ {'word': '-calibrate', 'menu': ''}, +\ {'word': '-overhead', 'menu': 'double'}, +\ {'word': '-direct', 'menu': ''}, +\ ] + +let b:trace = [ +\ {'word': 'add', 'menu': 'variable name ops commandPrefix'}, +\ {'word': 'remove', 'menu': 'variable name opList commandPrefix'}, +\ {'word': 'info', 'menu': 'variable name'}, +\ {'word': 'variable', 'menu': 'name ops command'}, +\ {'word': 'vdelete', 'menu': 'name ops command'}, +\ {'word': 'vinfo', 'menu': 'name'}, +\ ] + +let b:unload = [ +\ {'word': '-nocomplain', 'menu': ''}, +\ {'word': '-keeplibrary', 'menu': ''}, +\ ] + +let b:zlib = [ +\ {'word': 'compress', 'menu': 'string level'}, +\ {'word': 'decompress', 'menu': 'string bufferSize'}, +\ {'word': 'deflate', 'menu': 'string level'}, +\ {'word': 'gunzip', 'menu': 'string -headerVar varName'}, +\ {'word': 'gzip', 'menu': 'string -level level -header dict'}, +\ {'word': 'inflate', 'menu': 'string bufferSize'}, +\ {'word': 'push', 'menu': 'mode channel options ...'}, +\ {'word': 'stream', 'menu': 'inflate -dictionary bindata'}, +\ {'word': 'adler32', 'menu': 'string initValue'}, +\ {'word': 'crc32', 'menu': 'string initValue'}, +\ ] + +let b:zlib_sp_push = [ +\ {'word': '-dictionary', 'menu': 'binData'}, +\ {'word': '-header', 'menu': 'dictionary'}, +\ {'word': '-level', 'menu': 'compressionLevel'}, +\ {'word': '-limit', 'menu': 'readaheadLimit'}, +\ {'word': '-checksum', 'menu': 'checksum'}, +\ {'word': '-flush', 'menu': 'type'}, +\ ] + +let b:zlib_sp_crc32 = [ +\ {'word': '-dictionary', 'menu': 'binData'}, +\ {'word': '-finalize', 'menu': ''}, +\ {'word': '-flush', 'menu': ''}, +\ {'word': '-fullflush', 'menu': ''}, +\ ] + +let b:thread = [ +\ {'word': 'create', 'menu': '-joinable -preserved script'}, +\ {'word': 'preserve', 'menu': 'id'}, +\ {'word': 'release', 'menu': '-wait id'}, +\ {'word': 'id', 'menu': ''}, +\ {'word': 'errorproc', 'menu': 'procname'}, +\ {'word': 'cancel', 'menu': '-unwind id result'}, +\ {'word': 'unwind', 'menu': ''}, +\ {'word': 'exit', 'menu': 'status'}, +\ {'word': 'names', 'menu': ''}, +\ {'word': 'exists', 'menu': 'id'}, +\ {'word': 'send', 'menu': '-async -head id script varname'}, +\ {'word': 'broadcast', 'menu': 'script'}, +\ {'word': 'wait', 'menu': ''}, +\ {'word': 'eval', 'menu': '-lock mutex arg arg . . .'}, +\ {'word': 'join', 'menu': 'id'}, +\ {'word': 'configure', 'menu': 'id option value . . .'}, +\ {'word': 'transfer', 'menu': 'id channel'}, +\ {'word': 'detach', 'menu': 'channel'}, +\ {'word': 'attach', 'menu': 'channel'}, +\ {'word': 'mutex', 'menu': 'unlock mutex'}, +\ {'word': 'rwmutex', 'menu': 'unlock mutex'}, +\ {'word': 'cond', 'menu': 'wait cond mutex ms'}, +\ ] + +let b:tpool = [ +\ {'word': 'create', 'menu': 'options'}, +\ {'word': 'names', 'menu': ''}, +\ {'word': 'post', 'menu': '-detached -nowait tpool script'}, +\ {'word': 'wait', 'menu': 'tpool joblist varname'}, +\ {'word': 'cancel', 'menu': 'tpool joblist varname'}, +\ {'word': 'get', 'menu': 'tpool job'}, +\ {'word': 'preserve', 'menu': 'tpool'}, +\ {'word': 'release', 'menu': 'tpool'}, +\ {'word': 'suspend', 'menu': 'tpool'}, +\ {'word': 'resume', 'menu': 'tpool'}, +\ ] + +let b:tpool_ns_create = [ +\ {'word': '-minworkers', 'menu': 'number'}, +\ {'word': '-maxworkers', 'menu': 'number'}, +\ {'word': '-idletime', 'menu': 'seconds'}, +\ {'word': '-initcmd', 'menu': 'script'}, +\ {'word': '-exitcmd', 'menu': 'script'}, +\ ] + +let b:tsv = [ +\ {'word': 'names', 'menu': 'pattern'}, +\ {'word': 'object', 'menu': 'varname element'}, +\ {'word': 'set', 'menu': 'varname element value'}, +\ {'word': 'get', 'menu': 'varname element namedvar'}, +\ {'word': 'unset', 'menu': 'varname element'}, +\ {'word': 'exists', 'menu': 'varname element'}, +\ {'word': 'pop', 'menu': 'varname element'}, +\ {'word': 'move', 'menu': 'varname oldname newname'}, +\ {'word': 'incr', 'menu': 'varname element count'}, +\ {'word': 'append', 'menu': 'varname element value value . . .'}, +\ {'word': 'lock', 'menu': 'varname arg arg . . .'}, +\ {'word': 'handlers', 'menu': ''}, +\ {'word': 'lappend', 'menu': 'varname element value value . . .'}, +\ {'word': 'linsert', 'menu': 'varname element index value value . . .'}, +\ {'word': 'lreplace', 'menu': 'varname element first last value . . .'}, +\ {'word': 'llength', 'menu': 'varname element'}, +\ {'word': 'lindex', 'menu': 'varname element index'}, +\ {'word': 'lrange', 'menu': 'varname element from to'}, +\ {'word': 'lsearch', 'menu': 'varname element options pattern'}, +\ {'word': 'lset', 'menu': 'varname element index index . . . value'}, +\ {'word': 'lpop', 'menu': 'varname element index'}, +\ {'word': 'lpush', 'menu': 'varname element index'}, +\ {'word': 'array', 'menu': 'isbound varname'}, +\ {'word': 'keyldel', 'menu': 'varname keylist key'}, +\ {'word': 'keylget', 'menu': 'varname keylist key retvar'}, +\ {'word': 'keylkeys', 'menu': 'varname keylist key'}, +\ {'word': 'keylset', 'menu': 'varname keylist key value key value . .'}, +\ ] + +let b:ttrace = [ +\ {'word': 'eval', 'menu': 'arg arg . . .'}, +\ {'word': 'enable', 'menu': ''}, +\ {'word': 'disable', 'menu': ''}, +\ {'word': 'cleanup', 'menu': ''}, +\ {'word': 'update', 'menu': 'epoch'}, +\ {'word': 'getscript', 'menu': ''}, +\ {'word': 'atenable', 'menu': 'cmd arglist body'}, +\ {'word': 'atdisable', 'menu': 'cmd arglist body'}, +\ {'word': 'addtrace', 'menu': 'cmd arglist body'}, +\ {'word': 'addscript', 'menu': 'name body'}, +\ {'word': 'addresolver', 'menu': 'cmd arglist body'}, +\ {'word': 'addcleanup', 'menu': 'body'}, +\ {'word': 'addentry', 'menu': 'cmd var val'}, +\ {'word': 'getentry', 'menu': 'cmd var'}, +\ {'word': 'getentries', 'menu': 'cmd pattern'}, +\ {'word': 'delentry', 'menu': 'cmd'}, +\ {'word': 'preload', 'menu': 'cmd'}, +\ ] + +let b:bitmap = [ +\ {'word': '-background', 'menu': 'color'}, +\ {'word': '-data', 'menu': 'string'}, +\ {'word': '-file', 'menu': 'name'}, +\ {'word': '-foreground', 'menu': 'color'}, +\ {'word': '-maskdata', 'menu': 'string'}, +\ {'word': '-maskfile', 'menu': 'name'}, +\ ] + +let b:busy = [ +\ {'word': '-cursor', 'menu': 'cursorName'}, +\ ] + +let b:button = [ +\ {'word': 'activebackground', 'menu': ''}, +\ {'word': 'activeforeground', 'menu': ''}, +\ {'word': 'anchor', 'menu': ''}, +\ {'word': 'background', 'menu': ''}, +\ {'word': 'bitmap', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'compound', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'disabledforeground', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'image', 'menu': ''}, +\ {'word': 'justify', 'menu': ''}, +\ {'word': 'padx', 'menu': ''}, +\ {'word': 'pady', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'repeatdelay', 'menu': ''}, +\ {'word': 'repeatinterval', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'underline', 'menu': ''}, +\ {'word': 'wraplength', 'menu': ''}, +\ ] + +let b:canvas = [ +\ {'word': 'background', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'insertbackground', 'menu': ''}, +\ {'word': 'insertborderwidth', 'menu': ''}, +\ {'word': 'insertofftime', 'menu': ''}, +\ {'word': 'insertontime', 'menu': ''}, +\ {'word': 'insertwidth', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'selectbackground', 'menu': ''}, +\ {'word': 'selectborderwidth', 'menu': ''}, +\ {'word': 'selectforeground', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'xscrollcommand', 'menu': ''}, +\ {'word': 'yscrollcommand', 'menu': ''}, +\ {'word': '-channel', 'menu': 'channelName'}, +\ {'word': '-colormap', 'menu': 'varName'}, +\ {'word': '-colormode', 'menu': 'mode'}, +\ {'word': '-file', 'menu': 'fileName'}, +\ {'word': '-fontmap', 'menu': 'varName'}, +\ {'word': '-height', 'menu': 'pixels'}, +\ {'word': '-pageanchor', 'menu': 'anchor'}, +\ {'word': '-pageheight', 'menu': 'size'}, +\ {'word': '-pagewidth', 'menu': 'size'}, +\ {'word': '-pagex', 'menu': 'position'}, +\ {'word': '-pagey', 'menu': 'position'}, +\ {'word': '-rotate', 'menu': 'boolean'}, +\ {'word': '-width', 'menu': 'pixels'}, +\ {'word': '-x', 'menu': 'position'}, +\ {'word': '-y', 'menu': 'position'}, +\ {'word': '-anchor', 'menu': 'anchorPos'}, +\ {'word': '-dash', 'menu': 'pattern'}, +\ {'word': '-activedash', 'menu': 'pattern'}, +\ {'word': '-disableddash', 'menu': 'pattern'}, +\ {'word': '-dashoffset', 'menu': 'offset'}, +\ {'word': '-fill', 'menu': 'color'}, +\ {'word': '-activefill', 'menu': 'color'}, +\ {'word': '-disabledfill', 'menu': 'color'}, +\ {'word': '-outline', 'menu': 'color'}, +\ {'word': '-activeoutline', 'menu': 'color'}, +\ {'word': '-disabledoutline', 'menu': 'color'}, +\ {'word': '-offset', 'menu': 'offset'}, +\ {'word': '-outlinestipple', 'menu': 'bitmap'}, +\ {'word': '-activeoutlinestipple', 'menu': 'bitmap'}, +\ {'word': '-disabledoutlinestipple', 'menu': 'bitmap'}, +\ {'word': '-outlineoffset', 'menu': 'offset'}, +\ {'word': '-stipple', 'menu': 'bitmap'}, +\ {'word': '-activestipple', 'menu': 'bitmap'}, +\ {'word': '-disabledstipple', 'menu': 'bitmap'}, +\ {'word': '-state', 'menu': 'state'}, +\ {'word': '-tags', 'menu': 'tagList'}, +\ {'word': '-activewidth', 'menu': 'outlineWidth'}, +\ {'word': '-disabledwidth', 'menu': 'outlineWidth'}, +\ {'word': '-extent', 'menu': 'degrees'}, +\ {'word': '-start', 'menu': 'degrees'}, +\ {'word': '-style', 'menu': 'type'}, +\ {'word': '-background', 'menu': 'color'}, +\ {'word': '-activebackground', 'menu': 'color'}, +\ {'word': '-disabledbackground', 'menu': 'color'}, +\ {'word': '-bitmap', 'menu': 'bitmap'}, +\ {'word': '-activebitmap', 'menu': 'bitmap'}, +\ {'word': '-disabledbitmap', 'menu': 'bitmap'}, +\ {'word': '-foreground', 'menu': 'color'}, +\ {'word': '-activeforeground', 'menu': 'color'}, +\ {'word': '-disabledforeground', 'menu': 'color'}, +\ {'word': '-image', 'menu': 'name'}, +\ {'word': '-activeimage', 'menu': 'name'}, +\ {'word': '-disabledimage', 'menu': 'name'}, +\ {'word': '-arrow', 'menu': 'where'}, +\ {'word': '-arrowshape', 'menu': 'shape'}, +\ {'word': '-capstyle', 'menu': 'style'}, +\ {'word': '-joinstyle', 'menu': 'style'}, +\ {'word': '-smooth', 'menu': 'boolean'}, +\ {'word': '-splinesteps', 'menu': 'number'}, +\ {'word': '-angle', 'menu': 'rotationDegrees'}, +\ {'word': '-font', 'menu': 'fontName'}, +\ {'word': '-justify', 'menu': 'how'}, +\ {'word': '-text', 'menu': 'string'}, +\ {'word': '-underline', 'menu': ''}, +\ {'word': '-window', 'menu': 'pathName'}, +\ ] + +let b:checkbutton = [ +\ {'word': 'activebackground', 'menu': ''}, +\ {'word': 'activeforeground', 'menu': ''}, +\ {'word': 'anchor', 'menu': ''}, +\ {'word': 'background', 'menu': ''}, +\ {'word': 'bitmap', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'compound', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'disabledforeground', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'image', 'menu': ''}, +\ {'word': 'justify', 'menu': ''}, +\ {'word': 'padx', 'menu': ''}, +\ {'word': 'pady', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'underline', 'menu': ''}, +\ {'word': 'wraplength', 'menu': ''}, +\ ] + +let b:chooseDirectory = [ +\ {'word': '-command', 'menu': 'string'}, +\ {'word': '-initialdir', 'menu': 'dirname'}, +\ {'word': '-message', 'menu': 'string'}, +\ {'word': '-mustexist', 'menu': 'boolean'}, +\ {'word': '-parent', 'menu': 'window'}, +\ {'word': '-title', 'menu': 'titleString'}, +\ ] + +let b:console = [ +\ {'word': 'eval', 'menu': 'script'}, +\ {'word': 'hide', 'menu': ''}, +\ {'word': 'show', 'menu': ''}, +\ {'word': 'title', 'menu': 'string'}, +\ ] + +let b:entry = [ +\ {'word': 'background', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'exportselection', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'insertbackground', 'menu': ''}, +\ {'word': 'insertborderwidth', 'menu': ''}, +\ {'word': 'insertofftime', 'menu': ''}, +\ {'word': 'insertontime', 'menu': ''}, +\ {'word': 'insertwidth', 'menu': ''}, +\ {'word': 'justify', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'selectbackground', 'menu': ''}, +\ {'word': 'selectborderwidth', 'menu': ''}, +\ {'word': 'selectforeground', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'xscrollcommand', 'menu': ''}, +\ ] + +let b:event = [ +\ {'word': 'add', 'menu': '<<virtual>> sequence sequence ...'}, +\ {'word': 'delete', 'menu': '<<virtual>> sequence sequence ...'}, +\ {'word': 'generate', 'menu': 'window event option value option value ...'}, +\ {'word': 'info', 'menu': '<<virtual>>'}, +\ ] + +let b:event_sp_info = [ +\ {'word': '-above', 'menu': 'window'}, +\ {'word': '-borderwidth', 'menu': 'size'}, +\ {'word': '-button', 'menu': 'number'}, +\ {'word': '-count', 'menu': 'number'}, +\ {'word': '-data', 'menu': 'string'}, +\ {'word': '-delta', 'menu': 'number'}, +\ {'word': '-detail', 'menu': 'detail'}, +\ {'word': '-focus', 'menu': 'boolean'}, +\ {'word': '-height', 'menu': 'size'}, +\ {'word': '-keycode', 'menu': 'number'}, +\ {'word': '-keysym', 'menu': 'name'}, +\ {'word': '-mode', 'menu': 'notify'}, +\ {'word': '-override', 'menu': 'boolean'}, +\ {'word': '-place', 'menu': 'where'}, +\ {'word': '-root', 'menu': 'window'}, +\ {'word': '-rootx', 'menu': 'coord'}, +\ {'word': '-rooty', 'menu': 'coord'}, +\ {'word': '-sendevent', 'menu': 'boolean'}, +\ {'word': '-serial', 'menu': 'number'}, +\ {'word': '-state', 'menu': 'state'}, +\ {'word': '-subwindow', 'menu': 'window'}, +\ {'word': '-time', 'menu': 'integer'}, +\ {'word': '-warp', 'menu': 'boolean'}, +\ {'word': '-width', 'menu': 'size'}, +\ {'word': '-when', 'menu': 'when'}, +\ {'word': '-x', 'menu': 'coord'}, +\ {'word': '-y', 'menu': 'coord'}, +\ ] + +let b:font = [ +\ {'word': 'actual', 'menu': 'font -displayof window option -- char'}, +\ {'word': 'configure', 'menu': 'fontname option value option value ...'}, +\ {'word': 'create', 'menu': 'fontname option value ...'}, +\ {'word': 'delete', 'menu': 'fontname fontname ...'}, +\ {'word': 'families', 'menu': '-displayof window'}, +\ {'word': 'measure', 'menu': 'font -displayof window text'}, +\ {'word': 'metrics', 'menu': 'font -displayof window option'}, +\ {'word': 'names', 'menu': ''}, +\ ] + +let b:font_sp_names = [ +\ {'word': '-ascent', 'menu': ''}, +\ {'word': '-descent', 'menu': ''}, +\ {'word': '-linespace', 'menu': ''}, +\ {'word': '-fixed', 'menu': ''}, +\ {'word': '-family', 'menu': 'name'}, +\ {'word': '-size', 'menu': 'size'}, +\ {'word': '-weight', 'menu': 'weight'}, +\ {'word': '-slant', 'menu': 'slant'}, +\ {'word': '-underline', 'menu': 'boolean'}, +\ {'word': '-overstrike', 'menu': 'boolean'}, +\ ] + +let b:fontchooser = [ +\ {'word': '-parent', 'menu': ''}, +\ {'word': '-title', 'menu': ''}, +\ {'word': '-font', 'menu': ''}, +\ {'word': '-command', 'menu': ''}, +\ {'word': '-visible', 'menu': ''}, +\ ] + +let b:frame = [ +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'padx', 'menu': ''}, +\ {'word': 'pady', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ ] + +let b:getOpenFile = [ +\ {'word': '-command', 'menu': 'string'}, +\ {'word': '-confirmoverwrite', 'menu': 'boolean'}, +\ {'word': '-defaultextension', 'menu': 'extension'}, +\ {'word': '-filetypes', 'menu': 'filePatternList'}, +\ {'word': '-initialdir', 'menu': 'directory'}, +\ {'word': '-initialfile', 'menu': 'filename'}, +\ {'word': '-message', 'menu': 'string'}, +\ {'word': '-multiple', 'menu': 'boolean'}, +\ {'word': '-parent', 'menu': 'window'}, +\ {'word': '-title', 'menu': 'titleString'}, +\ {'word': '-typevariable', 'menu': 'variableName'}, +\ ] + +let b:grab = [ +\ {'word': '-global', 'menu': 'window'}, +\ {'word': 'current', 'menu': 'window'}, +\ {'word': 'release', 'menu': 'window'}, +\ {'word': 'set', 'menu': '-global window'}, +\ {'word': 'status', 'menu': 'window'}, +\ ] + +let b:grid = [ +\ {'word': 'anchor', 'menu': 'master anchor'}, +\ {'word': 'bbox', 'menu': 'master column row column2 row2'}, +\ {'word': 'columnconfigure', 'menu': 'master index -option value...'}, +\ {'word': 'configure', 'menu': 'slave slave ... options'}, +\ {'word': 'forget', 'menu': 'slave slave ...'}, +\ {'word': 'info', 'menu': 'slave'}, +\ {'word': 'location', 'menu': 'master x y'}, +\ {'word': 'propagate', 'menu': 'master boolean'}, +\ {'word': 'rowconfigure', 'menu': 'master index -option value...'}, +\ {'word': 'remove', 'menu': 'slave slave ...'}, +\ {'word': 'size', 'menu': 'master'}, +\ {'word': 'slaves', 'menu': 'master -option value'}, +\ ] + +let b:grid_sp_configure = [ +\ {'word': '-column', 'menu': 'n'}, +\ {'word': '-columnspan', 'menu': 'n'}, +\ {'word': '-in', 'menu': 'other'}, +\ {'word': '-ipadx', 'menu': 'amount'}, +\ {'word': '-ipady', 'menu': 'amount'}, +\ {'word': '-padx', 'menu': 'amount'}, +\ {'word': '-pady', 'menu': 'amount'}, +\ {'word': '-row', 'menu': 'n'}, +\ {'word': '-rowspan', 'menu': 'n'}, +\ {'word': '-sticky', 'menu': 'style'}, +\ ] + +let b:image = [ +\ {'word': 'create', 'menu': 'type name option value ...'}, +\ {'word': 'delete', 'menu': 'name name ...'}, +\ {'word': 'height', 'menu': 'name'}, +\ {'word': 'inuse', 'menu': 'name'}, +\ {'word': 'names', 'menu': ''}, +\ {'word': 'type', 'menu': 'name'}, +\ {'word': 'types', 'menu': ''}, +\ {'word': 'width', 'menu': 'name'}, +\ ] + +let b:label = [ +\ {'word': 'activebackground', 'menu': ''}, +\ {'word': 'activeforeground', 'menu': ''}, +\ {'word': 'anchor', 'menu': ''}, +\ {'word': 'background', 'menu': ''}, +\ {'word': 'bitmap', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'compound', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'disabledforeground', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'image', 'menu': ''}, +\ {'word': 'justify', 'menu': ''}, +\ {'word': 'padx', 'menu': ''}, +\ {'word': 'pady', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'underline', 'menu': ''}, +\ {'word': 'wraplength', 'menu': ''}, +\ ] + +let b:labelframe = [ +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'padx', 'menu': ''}, +\ {'word': 'pady', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ ] + +let b:listbox = [ +\ {'word': 'background', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'disabledforeground', 'menu': ''}, +\ {'word': 'exportselection', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'justify', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'selectbackground', 'menu': ''}, +\ {'word': 'selectborderwidth', 'menu': ''}, +\ {'word': 'selectforeground', 'menu': ''}, +\ {'word': 'setgrid', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'xscrollcommand', 'menu': ''}, +\ {'word': 'yscrollcommand', 'menu': ''}, +\ {'word': '-background', 'menu': 'color'}, +\ {'word': '-foreground', 'menu': 'color'}, +\ {'word': '-selectbackground', 'menu': 'color'}, +\ {'word': '-selectforeground', 'menu': 'color'}, +\ ] + +let b:menu = [ +\ {'word': 'activebackground', 'menu': ''}, +\ {'word': 'activeborderwidth', 'menu': ''}, +\ {'word': 'activeforeground', 'menu': ''}, +\ {'word': 'background', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'disabledforeground', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': '-activebackground', 'menu': 'value'}, +\ {'word': '-activeforeground', 'menu': 'value'}, +\ {'word': '-accelerator', 'menu': 'value'}, +\ {'word': '-background', 'menu': 'value'}, +\ {'word': '-bitmap', 'menu': 'value'}, +\ {'word': '-columnbreak', 'menu': 'value'}, +\ {'word': '-command', 'menu': 'value'}, +\ {'word': '-compound', 'menu': 'value'}, +\ {'word': '-font', 'menu': 'value'}, +\ {'word': '-foreground', 'menu': 'value'}, +\ {'word': '-hidemargin', 'menu': 'value'}, +\ {'word': '-image', 'menu': 'value'}, +\ {'word': '-indicatoron', 'menu': 'value'}, +\ {'word': '-label', 'menu': 'value'}, +\ {'word': '-menu', 'menu': 'value'}, +\ {'word': '-offvalue', 'menu': 'value'}, +\ {'word': '-onvalue', 'menu': 'value'}, +\ {'word': '-selectcolor', 'menu': 'value'}, +\ {'word': '-selectimage', 'menu': 'value'}, +\ {'word': '-state', 'menu': 'value'}, +\ {'word': '-underline', 'menu': 'value'}, +\ {'word': '-value', 'menu': 'value'}, +\ {'word': '-variable', 'menu': 'value'}, +\ ] + +let b:menubutton = [ +\ {'word': 'activebackground', 'menu': ''}, +\ {'word': 'activeforeground', 'menu': ''}, +\ {'word': 'anchor', 'menu': ''}, +\ {'word': 'background', 'menu': ''}, +\ {'word': 'bitmap', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'compound', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'disabledforeground', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'image', 'menu': ''}, +\ {'word': 'justify', 'menu': ''}, +\ {'word': 'padx', 'menu': ''}, +\ {'word': 'pady', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'underline', 'menu': ''}, +\ {'word': 'wraplength', 'menu': ''}, +\ ] + +let b:message = [ +\ {'word': 'anchor', 'menu': ''}, +\ {'word': 'background', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'padx', 'menu': ''}, +\ {'word': 'pady', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ ] + +let b:messageBox = [ +\ {'word': '-command', 'menu': 'string'}, +\ {'word': '-default', 'menu': 'name'}, +\ {'word': '-detail', 'menu': 'string'}, +\ {'word': '-icon', 'menu': 'iconImage'}, +\ {'word': '-message', 'menu': 'string'}, +\ {'word': '-parent', 'menu': 'window'}, +\ {'word': '-title', 'menu': 'titleString'}, +\ {'word': '-type', 'menu': 'predefinedType'}, +\ ] + +let b:option = [ +\ {'word': 'add', 'menu': 'pattern value priority'}, +\ {'word': 'clear', 'menu': ''}, +\ {'word': 'get', 'menu': 'window name class'}, +\ {'word': 'readfile', 'menu': 'fileName priority'}, +\ ] + +let b:options = [ +\ {'word': 'activebackground', 'menu': ''}, +\ {'word': 'activeborderwidth', 'menu': ''}, +\ {'word': 'activeforeground', 'menu': ''}, +\ {'word': 'anchor', 'menu': ''}, +\ {'word': 'background', 'menu': ''}, +\ {'word': 'bitmap', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'compound', 'menu': ''}, +\ {'word': 'disabledforeground', 'menu': ''}, +\ {'word': 'exportselection', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'image', 'menu': ''}, +\ {'word': 'insertbackground', 'menu': ''}, +\ {'word': 'insertborderwidth', 'menu': ''}, +\ {'word': 'insertofftime', 'menu': ''}, +\ {'word': 'insertontime', 'menu': ''}, +\ {'word': 'insertwidth', 'menu': ''}, +\ {'word': 'jump', 'menu': ''}, +\ {'word': 'justify', 'menu': ''}, +\ {'word': 'orient', 'menu': ''}, +\ {'word': 'padx', 'menu': ''}, +\ {'word': 'pady', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'repeatdelay', 'menu': ''}, +\ {'word': 'repeatinterval', 'menu': ''}, +\ {'word': 'selectbackground', 'menu': ''}, +\ {'word': 'selectborderwidth', 'menu': ''}, +\ {'word': 'selectforeground', 'menu': ''}, +\ {'word': 'setgrid', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'troughcolor', 'menu': ''}, +\ {'word': 'underline', 'menu': ''}, +\ {'word': 'wraplength', 'menu': ''}, +\ {'word': 'xscrollcommand', 'menu': ''}, +\ {'word': 'yscrollcommand', 'menu': ''}, +\ ] + +let b:pack = [ +\ {'word': 'configure', 'menu': 'slave slave ... options'}, +\ {'word': 'forget', 'menu': 'slave slave ...'}, +\ {'word': 'info', 'menu': 'slave'}, +\ {'word': 'propagate', 'menu': 'master boolean'}, +\ {'word': 'slaves', 'menu': 'master'}, +\ ] + +let b:pack_sp_configure = [ +\ {'word': '-after', 'menu': 'other'}, +\ {'word': '-anchor', 'menu': 'anchor'}, +\ {'word': '-before', 'menu': 'other'}, +\ {'word': '-expand', 'menu': 'boolean'}, +\ {'word': '-fill', 'menu': 'style'}, +\ {'word': '-in', 'menu': 'other'}, +\ {'word': '-ipadx', 'menu': 'amount'}, +\ {'word': '-ipady', 'menu': 'amount'}, +\ {'word': '-padx', 'menu': 'amount'}, +\ {'word': '-pady', 'menu': 'amount'}, +\ {'word': '-side', 'menu': 'side'}, +\ ] + +let b:panedwindow = [ +\ {'word': 'background', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'orient', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': '-after', 'menu': 'window'}, +\ {'word': '-before', 'menu': 'window'}, +\ {'word': '-height', 'menu': 'size'}, +\ {'word': '-hide', 'menu': 'boolean'}, +\ {'word': '-minsize', 'menu': 'n'}, +\ {'word': '-padx', 'menu': 'n'}, +\ {'word': '-pady', 'menu': 'n'}, +\ {'word': '-sticky', 'menu': 'style'}, +\ {'word': '-stretch', 'menu': 'when'}, +\ {'word': '-width', 'menu': 'size'}, +\ ] + +let b:photo = [ +\ {'word': '-data', 'menu': 'string'}, +\ {'word': '-format', 'menu': 'format-name'}, +\ {'word': '-file', 'menu': 'name'}, +\ {'word': '-gamma', 'menu': 'value'}, +\ {'word': '-height', 'menu': 'number'}, +\ {'word': '-palette', 'menu': 'palette-spec'}, +\ {'word': '-width', 'menu': 'number'}, +\ {'word': '-from', 'menu': 'x1 y1 x2 y2'}, +\ {'word': '-to', 'menu': 'x y'}, +\ {'word': '-shrink', 'menu': ''}, +\ {'word': '-zoom', 'menu': 'x y'}, +\ {'word': '-subsample', 'menu': 'x y'}, +\ {'word': '-compositingrule', 'menu': 'rule'}, +\ {'word': '-background', 'menu': 'color'}, +\ {'word': '-grayscale', 'menu': ''}, +\ ] + +let b:place = [ +\ {'word': 'configure', 'menu': 'window option value option value ...'}, +\ {'word': 'forget', 'menu': 'window'}, +\ {'word': 'info', 'menu': 'window'}, +\ {'word': 'slaves', 'menu': 'window'}, +\ ] + +let b:place_sp_configure = [ +\ {'word': '-anchor', 'menu': 'where'}, +\ {'word': '-bordermode', 'menu': 'mode'}, +\ {'word': '-height', 'menu': 'size'}, +\ {'word': '-in', 'menu': 'master'}, +\ {'word': '-relheight', 'menu': 'size'}, +\ {'word': '-relwidth', 'menu': 'size'}, +\ {'word': '-relx', 'menu': 'location'}, +\ {'word': '-rely', 'menu': 'location'}, +\ {'word': '-width', 'menu': 'size'}, +\ {'word': '-x', 'menu': 'location'}, +\ {'word': '-y', 'menu': 'location'}, +\ ] + +let b:radiobutton = [ +\ {'word': 'activebackground', 'menu': ''}, +\ {'word': 'activeforeground', 'menu': ''}, +\ {'word': 'anchor', 'menu': ''}, +\ {'word': 'background', 'menu': ''}, +\ {'word': 'bitmap', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'compound', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'disabledforeground', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'image', 'menu': ''}, +\ {'word': 'justify', 'menu': ''}, +\ {'word': 'padx', 'menu': ''}, +\ {'word': 'pady', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'underline', 'menu': ''}, +\ {'word': 'wraplength', 'menu': ''}, +\ ] + +let b:scale = [ +\ {'word': 'activebackground', 'menu': ''}, +\ {'word': 'background', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'orient', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'repeatdelay', 'menu': ''}, +\ {'word': 'repeatinterval', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'troughcolor', 'menu': ''}, +\ ] + +let b:scrollbar = [ +\ {'word': 'activebackground', 'menu': ''}, +\ {'word': 'background', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'jump', 'menu': ''}, +\ {'word': 'orient', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'repeatdelay', 'menu': ''}, +\ {'word': 'repeatinterval', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'troughcolor', 'menu': ''}, +\ ] + +let b:selection = [ +\ {'word': 'clear', 'menu': '-displayof window -selection selection'}, +\ {'word': 'get', 'menu': '-displayof window -selection selection -type type'}, +\ {'word': 'handle', 'menu': '-selection s -type t -format f window command'}, +\ {'word': 'own', 'menu': '-command command -selection selection window'}, +\ ] + +let b:send = [ +\ {'word': '-async', 'menu': ''}, +\ {'word': '-displayof', 'menu': 'pathName'}, +\ ] + +let b:spinbox = [ +\ {'word': 'activebackground', 'menu': ''}, +\ {'word': 'background', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'exportselection', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'insertbackground', 'menu': ''}, +\ {'word': 'insertborderwidth', 'menu': ''}, +\ {'word': 'insertofftime', 'menu': ''}, +\ {'word': 'insertontime', 'menu': ''}, +\ {'word': 'insertwidth', 'menu': ''}, +\ {'word': 'justify', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'repeatdelay', 'menu': ''}, +\ {'word': 'repeatinterval', 'menu': ''}, +\ {'word': 'selectbackground', 'menu': ''}, +\ {'word': 'selectborderwidth', 'menu': ''}, +\ {'word': 'selectforeground', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'xscrollcommand', 'menu': ''}, +\ ] + +let b:text = [ +\ {'word': 'background', 'menu': ''}, +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'exportselection', 'menu': ''}, +\ {'word': 'font', 'menu': ''}, +\ {'word': 'foreground', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'insertbackground', 'menu': ''}, +\ {'word': 'insertborderwidth', 'menu': ''}, +\ {'word': 'insertofftime', 'menu': ''}, +\ {'word': 'insertontime', 'menu': ''}, +\ {'word': 'insertwidth', 'menu': ''}, +\ {'word': 'padx', 'menu': ''}, +\ {'word': 'pady', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'selectbackground', 'menu': ''}, +\ {'word': 'selectborderwidth', 'menu': ''}, +\ {'word': 'selectforeground', 'menu': ''}, +\ {'word': 'setgrid', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'xscrollcommand', 'menu': ''}, +\ {'word': 'yscrollcommand', 'menu': ''}, +\ {'word': '-background', 'menu': 'color'}, +\ {'word': '-bgstipple', 'menu': 'bitmap'}, +\ {'word': '-borderwidth', 'menu': 'pixels'}, +\ {'word': '-elide', 'menu': ''}, +\ {'word': '-fgstipple', 'menu': 'bitmap'}, +\ {'word': '-font', 'menu': 'fontName'}, +\ {'word': '-foreground', 'menu': 'color'}, +\ {'word': '-justify', 'menu': 'justify'}, +\ {'word': '-lmargin1', 'menu': 'pixels'}, +\ {'word': '-lmargin2', 'menu': 'pixels'}, +\ {'word': '-lmargincolor', 'menu': 'color'}, +\ {'word': '-offset', 'menu': 'pixels'}, +\ {'word': '-overstrike', 'menu': 'boolean'}, +\ {'word': '-overstrikefg', 'menu': 'color'}, +\ {'word': '-relief', 'menu': 'relief'}, +\ {'word': '-rmargin', 'menu': 'pixels'}, +\ {'word': '-rmargincolor', 'menu': 'color'}, +\ {'word': '-selectbackground', 'menu': 'color'}, +\ {'word': '-selectforeground', 'menu': 'color'}, +\ {'word': '-spacing1', 'menu': 'pixels'}, +\ {'word': '-spacing2', 'menu': 'pixels'}, +\ {'word': '-spacing3', 'menu': 'pixels'}, +\ {'word': '-tabs', 'menu': 'tabList'}, +\ {'word': '-tabstyle', 'menu': 'style'}, +\ {'word': '-underline', 'menu': 'boolean'}, +\ {'word': '-underlinefg', 'menu': 'color'}, +\ {'word': '-wrap', 'menu': 'mode'}, +\ {'word': '-align', 'menu': 'where'}, +\ {'word': '-create', 'menu': 'script'}, +\ {'word': '-padx', 'menu': 'pixels'}, +\ {'word': '-pady', 'menu': 'pixels'}, +\ {'word': '-stretch', 'menu': 'boolean'}, +\ {'word': '-window', 'menu': ''}, +\ {'word': '-image', 'menu': ''}, +\ {'word': '-name', 'menu': 'ImageName'}, +\ {'word': '-chars', 'menu': ''}, +\ {'word': '-displaychars', 'menu': '-- index1 index2 ...'}, +\ {'word': '-displayindices', 'menu': ''}, +\ {'word': '-displaylines', 'menu': ''}, +\ {'word': '-indices', 'menu': ''}, +\ {'word': '-lines', 'menu': ''}, +\ {'word': '-xpixels', 'menu': ''}, +\ {'word': '-ypixels', 'menu': ''}, +\ {'word': '-all', 'menu': ''}, +\ {'word': '-command', 'menu': 'command'}, +\ {'word': '-mark', 'menu': ''}, +\ {'word': '-tag', 'menu': ''}, +\ {'word': '-text', 'menu': ''}, +\ {'word': '-forwards', 'menu': ''}, +\ {'word': '-backwards', 'menu': ''}, +\ {'word': '-exact', 'menu': ''}, +\ {'word': '-regexp', 'menu': ''}, +\ {'word': '-nolinestop', 'menu': ''}, +\ {'word': '-nocase', 'menu': ''}, +\ {'word': '-count', 'menu': 'varName'}, +\ {'word': '-overlap', 'menu': ''}, +\ {'word': '-strictlimits', 'menu': ''}, +\ {'word': '-pickplace', 'menu': 'index'}, +\ ] + +let b:tk = [ +\ {'word': 'appname', 'menu': 'newName'}, +\ {'word': 'busy', 'menu': 'subcommand ...'}, +\ {'word': 'caret', 'menu': 'window -x x -y y -height height'}, +\ {'word': 'inactive', 'menu': '-displayof window reset'}, +\ {'word': 'fontchooser', 'menu': 'subcommand ...'}, +\ {'word': 'scaling', 'menu': '-displayof window number'}, +\ {'word': 'useinputmethods', 'menu': '-displayof window boolean'}, +\ {'word': 'windowingsystem', 'menu': ''}, +\ ] + +let b:tk_mac = [ +\ {'word': '-file', 'menu': ''}, +\ {'word': '-fileType', 'menu': ''}, +\ {'word': '-osType', 'menu': ''}, +\ {'word': '-systemType', 'menu': ''}, +\ {'word': '-namedImage', 'menu': ''}, +\ {'word': '-imageFile', 'menu': ''}, +\ ] + +let b:tkwait = [ +\ {'word': 'variable', 'menu': 'name'}, +\ {'word': 'visibility', 'menu': 'name'}, +\ {'word': 'window', 'menu': 'name'}, +\ ] + +let b:toplevel = [ +\ {'word': 'borderwidth', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'highlightbackground', 'menu': ''}, +\ {'word': 'highlightcolor', 'menu': ''}, +\ {'word': 'highlightthickness', 'menu': ''}, +\ {'word': 'padx', 'menu': ''}, +\ {'word': 'pady', 'menu': ''}, +\ {'word': 'relief', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ ] + +let b:ttk_button = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'compound', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'image', 'menu': ''}, +\ {'word': 'state', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'underline', 'menu': ''}, +\ {'word': 'width', 'menu': ''}, +\ ] + +let b:ttk_checkbutton = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'compound', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'image', 'menu': ''}, +\ {'word': 'state', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'underline', 'menu': ''}, +\ {'word': 'width', 'menu': ''}, +\ ] + +let b:ttk_combobox = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ ] + +let b:ttk_entry = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'xscrollcommand', 'menu': ''}, +\ {'word': 'validate', 'menu': ''}, +\ {'word': 'validatecommand', 'menu': ''}, +\ ] + +let b:ttk_frame = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'padding', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ ] + +let b:ttk_image = [ +\ {'word': '-border', 'menu': 'padding'}, +\ {'word': '-height', 'menu': 'height'}, +\ {'word': '-padding', 'menu': 'padding'}, +\ {'word': '-sticky', 'menu': 'spec'}, +\ {'word': '-width', 'menu': 'width'}, +\ ] + +let b:ttk_label = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'compound', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'image', 'menu': ''}, +\ {'word': 'padding', 'menu': ''}, +\ {'word': 'state', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'underline', 'menu': ''}, +\ {'word': 'width', 'menu': ''}, +\ ] + +let b:ttk_labelframe = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'padding', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ ] + +let b:ttk_menubutton = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'compound', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'image', 'menu': ''}, +\ {'word': 'state', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'underline', 'menu': ''}, +\ {'word': 'width', 'menu': ''}, +\ ] + +let b:ttk_notebook = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ ] + +let b:ttk_panedwindow = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ ] + +let b:ttk_progressbar = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ ] + +let b:ttk_radiobutton = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'compound', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'image', 'menu': ''}, +\ {'word': 'state', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'underline', 'menu': ''}, +\ {'word': 'width', 'menu': ''}, +\ ] + +let b:ttk_scale = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ ] + +let b:ttk_scrollbar = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ ] + +let b:ttk_separator = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ ] + +let b:ttk_sizegrip = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ ] + +let b:ttk_spinbox = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'state', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'validate', 'menu': ''}, +\ {'word': 'validatecommand', 'menu': ''}, +\ {'word': 'xscrollcommand', 'menu': ''}, +\ ] + +let b:ttk_style = [ +\ {'word': '-settings', 'menu': 'script... '}, +\ {'word': '-side', 'menu': 'side'}, +\ {'word': '-sticky', 'menu': '[nswe]'}, +\ {'word': '-children', 'menu': '{ sublayout... }'}, +\ ] + +let b:ttk_treeview = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'padding', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'xscrollcommand', 'menu': ''}, +\ {'word': 'yscrollcommand', 'menu': ''}, +\ {'word': '-id', 'menu': 'id options...'}, +\ {'word': '-anchor', 'menu': 'anchor'}, +\ {'word': '-minwidth', 'menu': 'minwidth'}, +\ {'word': '-stretch', 'menu': 'boolean'}, +\ {'word': '-width', 'menu': 'width'}, +\ {'word': '-text', 'menu': 'text'}, +\ {'word': '-image', 'menu': ''}, +\ {'word': '-command', 'menu': 'script'}, +\ {'word': '-foreground', 'menu': ''}, +\ {'word': '-background', 'menu': ''}, +\ {'word': '-font', 'menu': ''}, +\ ] + +let b:ttk_vsapi = [ +\ {'word': '-padding', 'menu': 'padding'}, +\ {'word': '-margins', 'menu': 'padding'}, +\ {'word': '-width', 'menu': 'width'}, +\ {'word': '-height', 'menu': 'height'}, +\ ] + +let b:ttk_widget = [ +\ {'word': 'class', 'menu': ''}, +\ {'word': 'cursor', 'menu': ''}, +\ {'word': 'takefocus', 'menu': ''}, +\ {'word': 'style', 'menu': ''}, +\ {'word': 'xscrollcommand', 'menu': ''}, +\ {'word': 'yscrollcommand', 'menu': ''}, +\ {'word': 'compound', 'menu': ''}, +\ {'word': 'image', 'menu': ''}, +\ {'word': 'padding', 'menu': ''}, +\ {'word': 'text', 'menu': ''}, +\ {'word': 'textvariable', 'menu': ''}, +\ {'word': 'underline', 'menu': ''}, +\ {'word': 'width', 'menu': ''}, +\ {'word': 'state', 'menu': ''}, +\ ] + +let b:winfo = [ +\ {'word': 'atom', 'menu': '-displayof window name'}, +\ {'word': 'atomname', 'menu': '-displayof window id'}, +\ {'word': 'cells', 'menu': 'window'}, +\ {'word': 'children', 'menu': 'window'}, +\ {'word': 'class', 'menu': 'window'}, +\ {'word': 'colormapfull', 'menu': 'window'}, +\ {'word': 'containing', 'menu': '-displayof window rootX rootY'}, +\ {'word': 'depth', 'menu': 'window'}, +\ {'word': 'exists', 'menu': 'window'}, +\ {'word': 'fpixels', 'menu': 'window number'}, +\ {'word': 'geometry', 'menu': 'window'}, +\ {'word': 'height', 'menu': 'window'}, +\ {'word': 'id', 'menu': 'window'}, +\ {'word': 'interps', 'menu': '-displayof window'}, +\ {'word': 'ismapped', 'menu': 'window'}, +\ {'word': 'manager', 'menu': 'window'}, +\ {'word': 'name', 'menu': 'window'}, +\ {'word': 'parent', 'menu': 'window'}, +\ {'word': 'pathname', 'menu': '-displayof window id'}, +\ {'word': 'pixels', 'menu': 'window number'}, +\ {'word': 'pointerx', 'menu': 'window'}, +\ {'word': 'pointerxy', 'menu': 'window'}, +\ {'word': 'pointery', 'menu': 'window'}, +\ {'word': 'reqheight', 'menu': 'window'}, +\ {'word': 'reqwidth', 'menu': 'window'}, +\ {'word': 'rgb', 'menu': 'window color'}, +\ {'word': 'rootx', 'menu': 'window'}, +\ {'word': 'rooty', 'menu': 'window'}, +\ {'word': 'screen', 'menu': 'window'}, +\ {'word': 'screencells', 'menu': 'window'}, +\ {'word': 'screendepth', 'menu': 'window'}, +\ {'word': 'screenheight', 'menu': 'window'}, +\ {'word': 'screenmmheight', 'menu': 'window'}, +\ {'word': 'screenmmwidth', 'menu': 'window'}, +\ {'word': 'screenvisual', 'menu': 'window'}, +\ {'word': 'screenwidth', 'menu': 'window'}, +\ {'word': 'server', 'menu': 'window'}, +\ {'word': 'toplevel', 'menu': 'window'}, +\ {'word': 'viewable', 'menu': 'window'}, +\ {'word': 'visual', 'menu': 'window'}, +\ {'word': 'visualid', 'menu': 'window'}, +\ {'word': 'visualsavailable', 'menu': 'window includeids'}, +\ {'word': 'vrootheight', 'menu': 'window'}, +\ {'word': 'vrootwidth', 'menu': 'window'}, +\ {'word': 'vrootx', 'menu': 'window'}, +\ {'word': 'vrooty', 'menu': 'window'}, +\ {'word': 'width', 'menu': 'window'}, +\ {'word': 'x', 'menu': 'window'}, +\ {'word': 'y', 'menu': 'window'}, +\ ] + +let b:wm = [ +\ {'word': 'aspect', 'menu': 'window minNumer minDenom maxNumer maxDenom'}, +\ {'word': 'attributes', 'menu': 'window option value option value...'}, +\ {'word': 'client', 'menu': 'window name'}, +\ {'word': 'colormapwindows', 'menu': 'window windowList'}, +\ {'word': 'command', 'menu': 'window value'}, +\ {'word': 'deiconify', 'menu': 'window'}, +\ {'word': 'focusmodel', 'menu': 'window active|passive'}, +\ {'word': 'forget', 'menu': 'window'}, +\ {'word': 'frame', 'menu': 'window'}, +\ {'word': 'geometry', 'menu': 'window newGeometry'}, +\ {'word': 'grid', 'menu': 'window baseWidth baseHeight widthInc heightInc'}, +\ {'word': 'group', 'menu': 'window pathName'}, +\ {'word': 'iconbitmap', 'menu': 'window -default image'}, +\ {'word': 'iconify', 'menu': 'window'}, +\ {'word': 'iconmask', 'menu': 'window bitmap'}, +\ {'word': 'iconname', 'menu': 'window newName'}, +\ {'word': 'iconphoto', 'menu': 'window -default image1 image2 ...'}, +\ {'word': 'iconposition', 'menu': 'window x y'}, +\ {'word': 'iconwindow', 'menu': 'window pathName'}, +\ {'word': 'manage', 'menu': 'widget'}, +\ {'word': 'maxsize', 'menu': 'window width height'}, +\ {'word': 'minsize', 'menu': 'window width height'}, +\ {'word': 'overrideredirect', 'menu': 'window boolean'}, +\ {'word': 'positionfrom', 'menu': 'window who'}, +\ {'word': 'protocol', 'menu': 'window name command'}, +\ {'word': 'resizable', 'menu': 'window width height'}, +\ {'word': 'sizefrom', 'menu': 'window who'}, +\ {'word': 'stackorder', 'menu': 'window isabove|isbelow window'}, +\ {'word': 'state', 'menu': 'window newstate'}, +\ {'word': 'title', 'menu': 'window string'}, +\ {'word': 'transient', 'menu': 'window master'}, +\ {'word': 'withdraw', 'menu': 'window'}, +\ ] + +let b:wm_sp_attributes = [ +\ {'word': '-alpha', 'menu': ''}, +\ {'word': '-fullscreen', 'menu': ''}, +\ {'word': '-topmost', 'menu': ''}, +\ {'word': '-disabled', 'menu': ''}, +\ {'word': '-toolwindow', 'menu': ''}, +\ {'word': '-transparentcolor', 'menu': ''}, +\ {'word': '-modified', 'menu': ''}, +\ {'word': '-notify', 'menu': ''}, +\ {'word': '-titlepath', 'menu': ''}, +\ {'word': '-transparent', 'menu': ''}, +\ {'word': '-type', 'menu': ''}, +\ {'word': '-zoomed', 'menu': ''}, +\ ] + diff --git a/etc/soft/nvim/+plugins/MRU/plugin/mru.vim b/etc/soft/nvim/+plugins/MRU/plugin/mru.vim new file mode 100644 index 0000000..626c900 --- /dev/null +++ b/etc/soft/nvim/+plugins/MRU/plugin/mru.vim @@ -0,0 +1,1043 @@ +" File: mru.vim +" Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com) +" Version: 3.8 +" Last Modified: March 5, 2014 +" Copyright: Copyright (C) 2003-2014 Yegappan Lakshmanan +" License: Permission is hereby granted to use and distribute this code, +" with or without modifications, provided that this copyright +" notice is copied with it. Like anything else that's free, +" mru.vim is provided *as is* and comes with no warranty of any +" kind, either expressed or implied. In no event will the copyright +" holder be liable for any damages resulting from the use of this +" software. +" +" Overview +" -------- +" The Most Recently Used (MRU) plugin provides an easy access to a list of +" recently opened/edited files in Vim. This plugin automatically stores the +" file names as you open/edit them in Vim. +" +" This plugin will work on all the platforms where Vim is supported. This +" plugin will work in both console and GUI Vim. This version of the MRU +" plugin needs Vim 7.0 and above. If you are using an earlier version of +" Vim, then you should use an older version of the MRU plugin. +" +" The recently used filenames are stored in a file specified by the Vim +" MRU_File variable. +" +" The Github repository for the MRU plugin is available at: +" +" http://github.com/yegappan/mru +" +" Installation +" ------------ +" 1. Copy the mru.vim file to one of the following directories: +" +" $HOME/.vim/plugin - Unix like systems +" $HOME/vimfiles/plugin - MS-Windows +" $VIM:vimfiles:plugin - Macintosh +" $VIM/vimfiles/plugin - All +" +" Refer to the following Vim help topics for more information about Vim +" plugins: +" +" :help add-plugin +" :help add-global-plugin +" :help runtimepath +" +" 2. Set the MRU_File Vim variable in the .vimrc file to the location of a +" file to store the most recently edited file names. This step is needed +" only if you want to change the default MRU filename. +" 3. Restart Vim. +" 4. You can use the ":MRU" command to list and edit the recently used files. +" In GUI Vim, you can use the 'File->Recent Files' menu to access the +" recently used files. +" +" To uninstall this plugin, remove this file (mru.vim) from the +" $HOME/.vim/plugin or $HOME/vimfiles/plugin or the $VIM/vimfile/plugin +" directory. +" +" Usage +" ----- +" To list and edit files from the MRU list, you can use the ":MRU" command. +" The ":MRU" command displays the MRU file list in a temporary Vim window. If +" the MRU window is already opened, then the MRU list displayed in the window +" is refreshed. +" +" If you are using GUI Vim, then the names of the recently edited files are +" added to the "File->Recent Files" menu. You can select the name of a file +" from this sub-menu to edit the file. +" +" You can use the normal Vim commands to move around in the MRU window. You +" cannot make changes in the MRU window. +" +" You can select a file name to edit by pressing the key or by double +" clicking the left mouse button on a file name. The selected file will be +" opened. If the file is already opened in a window, the cursor will be moved +" to that window. Otherwise, the file is opened in the previous window. If the +" previous window has a modified buffer or is the preview window or is used by +" some other plugin, then the file is opened in a new window. +" +" You can press the 'o' key to open the file name under the cursor in the +" MRU window in a new window. You can also press instead of 'o' +" to open the file in a new window. +" +" To open a file from the MRU window in read-only mode (view), press the 'v' +" key. +" +" To open a file from the MRU window in a new tab, press the 't' key. If the +" file is already opened in a window in the current or in another tab, then +" the cursor is moved to that tab. Otherwise, a new tab is opened. +" +" You can open multiple files from the MRU window by specifying a count before +" pressing '' or 'v' or 'o' or 't'. You can also visually (using +" linewise visual mode) select multiple filenames and invoke the commands to +" open the files. Each selected file will be opened in a separate window or +" tab. +" +" You can press the 'u' key in the MRU window to update the file list. This is +" useful if you keep the MRU window open always. +" +" You can close the MRU window by pressing the 'q' key or the key or +" using one of the Vim window commands. +" +" To display only files matching a pattern from the MRU list in the MRU +" window, you can specify a pattern to the ":MRU" command. For example, to +" display only file names matching "vim" in them, you can use the following +" command ":MRU vim". When you specify a partial file name and only one +" matching filename is found, then the ":MRU" command will edit that file. +" +" The ":MRU" command supports command-line completion of file names from +" the MRU list. You can enter a partial file name and then press +" or to complete or list all the matching file names. Note that +" after typing the ":MRU" command, you have to enter a space before completing +" the file names with . +" +" When a file supplied to the ":MRU" command is not present in the MRU list, +" but it is a readable file, then the file will be opened (even though it is +" not present in the MRU list). This is useful if you want to open a file +" present in the same directory as a file in the MRU list. You can use the +" command-line completion of the ":MRU" command to complete the full path of a +" file and then modify the path to open another file present in the same path. +" +" Whenever the MRU list changes, the MRU file is updated with the latest MRU +" list. When you have multiple instances of Vim running at the same time, the +" latest MRU list will show up in all the instances of Vim. +" +" The MRUFilename syntax group is used to highlight the file names in the MRU +" window. By default, this syntax group is linked to the Identifier highlight +" group. You can change the highlight group by adding the following line in +" your .vimrc: +" +" highlight link MRUFileName LineNr +" +" The MRU buffer uses the 'mru file type. You can use this file type to add +" custom auto commands, syntax highlighting, etc. +" +" Configuration +" ------------- +" By changing the following variables you can configure the behavior of this +" plugin. Set the following variables in your .vimrc file using the 'let' +" command. +" +" The list of recently edited file names is stored in the file specified by the +" MRU_File variable. The default setting for this variable is +" $HOME/.vim_mru_files for Unix-like systems and $USERPROFILE/_vim_mru_files +" for MS-Windows systems. You can change this variable to point to a file by +" adding the following line to the .vimrc file: +" +" let MRU_File = 'd:\myhome\_vim_mru_files' +" +" By default, the plugin will remember the names of the last 100 used files. +" As you edit more files, old file names will be removed from the MRU list. +" You can set the 'MRU_Max_Entries' variable to remember more file names. For +" example, to remember 1000 most recently used file names, you can use +" +" let MRU_Max_Entries = 1000 +" +" By default, all the edited file names will be added to the MRU list. If you +" want to exclude file names matching a list of patterns, you can set the +" MRU_Exclude_Files variable to a list of Vim regular expressions. By default, +" this variable is set to an empty string. For example, to not include files +" in the temporary (/tmp, /var/tmp and d:\temp) directories, you can set the +" MRU_Exclude_Files variable to +" +" let MRU_Exclude_Files = '^/tmp/.*\|^/var/tmp/.*' " For Unix +" let MRU_Exclude_Files = '^c:\\temp\\.*' " For MS-Windows +" +" The specified pattern should be a Vim regular expression pattern. +" +" If you want to add only file names matching a set of patterns to the MRU +" list, then you can set the MRU_Include_Files variable. This variable should +" be set to a Vim regular expression pattern. For example, to add only .c and +" .h files to the MRU list, you can set this variable as below: +" +" let MRU_Include_Files = '\.c$\|\.h$' +" +" By default, MRU_Include_Files is set to an empty string and all the edited +" filenames are added to the MRU list. +" +" The default height of the MRU window is 8. You can set the MRU_Window_Height +" variable to change the window height. +" +" let MRU_Window_Height = 15 +" +" By default, when the :MRU command is invoked, the MRU list will be displayed +" in a new window. Instead, if you want the MRU plugin to reuse the current +" window, then you can set the 'MRU_Use_Current_Window' variable to one. +" +" let MRU_Use_Current_Window = 1 +" +" The MRU plugin will reuse the current window. When a file name is selected, +" the file is also opened in the current window. +" +" When you select a file from the MRU window, the MRU window will be +" automatically closed and the selected file will be opened in the previous +" window. You can set the 'MRU_Auto_Close' variable to zero to keep the MRU +" window open. +" +" let MRU_Auto_Close = 0 +" +" If you don't use the "File->Recent Files" menu and want to disable it, +" then you can set the 'MRU_Add_Menu' variable to zero. By default, the +" menu is enabled. +" +" let MRU_Add_Menu = 0 +" +" If too many file names are present in the MRU list, then updating the MRU +" menu to list all the file names makes Vim slow. To avoid this, the +" MRU_Max_Menu_Entries variable controls the number of file names to show in +" the MRU menu. By default, this is set to 10. You can change this to show +" more entries in the menu. +" +" let MRU_Max_Menu_Entries = 20 +" +" If many file names are present in the MRU list, then the MRU menu is split +" into sub-menus. Each sub-menu contains MRU_Max_Submenu_Entries file names. +" The default setting for this is 10. You can change this to increase the +" number of file names displayed in a single sub-menu: +" +" let MRU_Max_Submenu_Entries = 15 +" +" In the MRU window, the filenames are displayed in two parts. The first part +" contains the file name without the path and the second part contains the +" full path to the file in parenthesis. This format is controlled by the +" MRU_Filename_Format variable. If you prefer to change this to some other +" format, then you can modify the MRU_Filename_Format variable. For example, +" to display the full path without splitting it, you can set this variable +" as shown below: +" +" let MRU_Filename_Format={'formatter':'v:val', 'parser':'.*'} +" +" ****************** Do not modify after this line ************************ +if exists('loaded_mru') + finish +endif +let loaded_mru=1 + +if v:version < 700 + finish +endif + +" Line continuation used here +let s:cpo_save = &cpo +set cpo&vim + +" MRU configuration variables {{{1 +" Maximum number of entries allowed in the MRU list +if !exists('MRU_Max_Entries') + let MRU_Max_Entries = 100 +endif + +" Files to exclude from the MRU list +if !exists('MRU_Exclude_Files') + let MRU_Exclude_Files = '' +endif + +" Files to include in the MRU list +if !exists('MRU_Include_Files') + let MRU_Include_Files = '' +endif + +" Height of the MRU window +" Default height is 8 +if !exists('MRU_Window_Height') + let MRU_Window_Height = 8 +endif + +if !exists('MRU_Use_Current_Window') + let MRU_Use_Current_Window = 0 +endif + +if !exists('MRU_Auto_Close') + let MRU_Auto_Close = 1 +endif + +if !exists('MRU_File') + if has('unix') || has('macunix') + let MRU_File = $HOME . '/.vim_mru_files' + else + let MRU_File = $VIM . '/_vim_mru_files' + if has('win32') + " MS-Windows + if $USERPROFILE != '' + let MRU_File = $USERPROFILE . '\_vim_mru_files' + endif + endif + endif +endif + +" Option for enabling or disabling the MRU menu +if !exists('MRU_Add_Menu') + let MRU_Add_Menu = 1 +endif + +" Maximum number of file names to show in the MRU menu. If too many files are +" listed in the menu, then Vim becomes slow when updating the menu. So set +" this to a low value. +if !exists('MRU_Max_Menu_Entries') + let MRU_Max_Menu_Entries = 10 +endif + +" Maximum number of file names to show in a MRU sub-menu. If the MRU list +" contains more file names than this setting, then the MRU menu is split into +" one or more sub-menus. +if !exists('MRU_Max_Submenu_Entries') + let MRU_Max_Submenu_Entries = 10 +endif + +" When only a single matching filename is found in the MRU list, the following +" option controls whether the file name is displayed in the MRU window or the +" file is directly opened. When this variable is set to 0 and a single +" matching file name is found, then the file is directly opened. +if !exists('MRU_Window_Open_Always') + let MRU_Window_Open_Always = 0 +endif + +" When opening a file from the MRU list, the file is opened in the current +" tab. If the selected file has to be opened in a tab always, then set the +" following variable to 1. If the file is already opened in a tab, then the +" cursor will be moved to that tab. +if !exists('MRU_Open_File_Use_Tabs') + let MRU_Open_File_Use_Tabs = 0 +endif + +" Format of the file names displayed in the MRU window. +" The default is to display the filename followed by the complete path to the +" file in parenthesis. This variable controls the expressions used to format +" and parse the path. This can be changed to display the filenames in a +" different format. The 'formatter' specifies how to split/format the filename +" and 'parser' specifies how to read the filename back. +if !exists('MRU_Filename_Format') + let MRU_Filename_Format = { + \ 'formatter': 'fnamemodify(v:val, ":t") . " (" . v:val . ")"', + \ 'parser': '(\zs.*\ze)' + \} +endif + +" Control to temporarily lock the MRU list. Used to prevent files from +" getting added to the MRU list when the ':vimgrep' command is executed. +let s:mru_list_locked = 0 + +" MRU_LoadList {{{1 +" Loads the latest list of file names from the MRU file +function! s:MRU_LoadList() + " If the MRU file is present, then load the list of filenames. Otherwise + " start with an empty list. + if filereadable(g:MRU_File) + let s:MRU_files = readfile(g:MRU_File) + if s:MRU_files[0] =~# '^\s*" Most recently edited files in Vim' + " Generated by the previous version of the MRU plugin. + " Discard the list. + let s:MRU_files = [] + elseif s:MRU_files[0] =~# '^#' + " Remove the comment line + call remove(s:MRU_files, 0) + else + " Unsupported format + let s:MRU_files = [] + endif + else + let s:MRU_files = [] + endif + + " Refresh the MRU menu with the latest list of filenames + call s:MRU_Refresh_Menu() +endfunction + +" MRU_SaveList {{{1 +" Saves the MRU file names to the MRU file +function! s:MRU_SaveList() + let l = [] + call add(l, '# Most recently edited files in Vim (version 3.0)') + call extend(l, s:MRU_files) + call writefile(l, g:MRU_File) +endfunction + +" MRU_AddFile {{{1 +" Adds a file to the MRU file list +" acmd_bufnr - Buffer number of the file to add +function! s:MRU_AddFile(acmd_bufnr) + if s:mru_list_locked + " MRU list is currently locked + return + endif + + " Get the full path to the filename + let fname = fnamemodify(bufname(a:acmd_bufnr + 0), ':p') + if fname == '' + return + endif + + " Skip temporary buffers with buftype set. The buftype is set for buffers + " used by plugins. + if &buftype != '' + return + endif + + if g:MRU_Include_Files != '' + " If MRU_Include_Files is set, include only files matching the + " specified pattern + if fname !~# g:MRU_Include_Files + return + endif + endif + + if g:MRU_Exclude_Files != '' + " Do not add files matching the pattern specified in the + " MRU_Exclude_Files to the MRU list + if fname =~# g:MRU_Exclude_Files + return + endif + endif + + " If the filename is not already present in the MRU list and is not + " readable then ignore it + let idx = index(s:MRU_files, fname) + if idx == -1 + if !filereadable(fname) + " File is not readable and is not in the MRU list + return + endif + endif + + " Load the latest MRU file list + call s:MRU_LoadList() + + " Remove the new file name from the existing MRU list (if already present) + call filter(s:MRU_files, 'v:val !=# fname') + + " Add the new file list to the beginning of the updated old file list + call insert(s:MRU_files, fname, 0) + + " Trim the list + if len(s:MRU_files) > g:MRU_Max_Entries + call remove(s:MRU_files, g:MRU_Max_Entries, -1) + endif + + " Save the updated MRU list + call s:MRU_SaveList() + + " Refresh the MRU menu + call s:MRU_Refresh_Menu() + + " If the MRU window is open, update the displayed MRU list + let bname = '__MRU_Files__' + let winnum = bufwinnr(bname) + if winnum != -1 + let cur_winnr = winnr() + call s:MRU_Open_Window() + if winnr() != cur_winnr + exe cur_winnr . 'wincmd w' + endif + endif +endfunction + +" MRU_escape_filename {{{1 +" Escape special characters in a filename. Special characters in file names +" that should be escaped (for security reasons) +let s:esc_filename_chars = ' *?[{`$%#"|!<>();&' . "'\t\n" +function! s:MRU_escape_filename(fname) + if exists("*fnameescape") + return fnameescape(a:fname) + else + return escape(a:fname, s:esc_filename_chars) + endif +endfunction + +" MRU_Edit_File {{{1 +" Edit the specified file +" filename - Name of the file to edit +" sanitized - Specifies whether the filename is already escaped for special +" characters or not. +function! s:MRU_Edit_File(filename, sanitized) + if !a:sanitized + let esc_fname = s:MRU_escape_filename(a:filename) + else + let esc_fname = a:filename + endif + + " If the user wants to always open the file in a tab, then open the file + " in a tab. If it is already opened in a tab, then the cursor will be + " moved to that tab. + if g:MRU_Open_File_Use_Tabs + call s:MRU_Open_File_In_Tab(a:filename, esc_fname) + return + endif + + " If the file is already open in one of the windows, jump to it + let winnum = bufwinnr('^' . a:filename . '$') + if winnum != -1 + if winnum != winnr() + exe winnum . 'wincmd w' + endif + else + if &modified || &buftype != '' || &previewwindow + " Current buffer has unsaved changes or is a special buffer or is + " the preview window. So open the file in a new window + exe 'split ' . esc_fname + else + exe 'edit ' . esc_fname + endif + endif +endfunction + +" MRU_Open_File_In_Tab +" Open a file in a tab. If the file is already opened in a tab, jump to the +" tab. Otherwise, create a new tab and open the file. +" fname : Name of the file to open +" esc_fname : File name with special characters escaped +function! s:MRU_Open_File_In_Tab(fname, esc_fname) + " If the selected file is already open in the current tab or in + " another tab, jump to it. Otherwise open it in a new tab + if bufwinnr('^' . a:fname . '$') == -1 + let tabnum = -1 + let i = 1 + let bnum = bufnr('^' . a:fname . '$') + while i <= tabpagenr('$') + if index(tabpagebuflist(i), bnum) != -1 + let tabnum = i + break + endif + let i += 1 + endwhile + + if tabnum != -1 + " Goto the tab containing the file + exe 'tabnext ' . i + else + " Open a new tab as the last tab page + exe 'tabnew ' . a:esc_fname + endif + endif + + " Jump to the window containing the file + let winnum = bufwinnr('^' . a:fname . '$') + if winnum != winnr() + exe winnum . 'wincmd w' + endif +endfunction + +" MRU_Window_Edit_File {{{1 +" fname : Name of the file to edit. May specify single or multiple +" files. +" edit_type : Specifies how to edit the file. Can be one of 'edit' or 'view'. +" 'view' - Open the file as a read-only file +" 'edit' - Edit the file as a regular file +" multi : Specifies whether a single file or multiple files need to be +" opened. +" open_type : Specifies where to open the file. +" useopen - If the file is already present in a window, then +" jump to that window. Otherwise, open the file in +" the previous window. +" newwin_horiz - Open the file in a new horizontal window. +" newwin_vert - Open the file in a new vertical window. +" newtab - Open the file in a new tab. If the file is already +" opened in a tab, then jump to that tab. +" preview - Open the file in the preview window +function! s:MRU_Window_Edit_File(fname, multi, edit_type, open_type) + let esc_fname = s:MRU_escape_filename(a:fname) + + if a:open_type ==# 'newwin_horiz' + " Edit the file in a new horizontally split window above the previous + " window + wincmd p + exe 'belowright new ' . esc_fname + elseif a:open_type ==# 'newwin_vert' + " Edit the file in a new vertically split window above the previous + " window + wincmd p + exe 'belowright vnew ' . esc_fname + elseif a:open_type ==# 'newtab' || g:MRU_Open_File_Use_Tabs + call s:MRU_Open_File_In_Tab(a:fname, esc_fname) + elseif a:open_type ==# 'preview' + " Edit the file in the preview window + exe 'topleft pedit ' . esc_fname + else + " If the selected file is already open in one of the windows, + " jump to it + let winnum = bufwinnr('^' . a:fname . '$') + if winnum != -1 + exe winnum . 'wincmd w' + else + if g:MRU_Auto_Close == 1 && g:MRU_Use_Current_Window == 0 + " Jump to the window from which the MRU window was opened + if exists('s:MRU_last_buffer') + let last_winnr = bufwinnr(s:MRU_last_buffer) + if last_winnr != -1 && last_winnr != winnr() + exe last_winnr . 'wincmd w' + endif + endif + else + if g:MRU_Use_Current_Window == 0 + " Goto the previous window + " If MRU_Use_Current_Window is set to one, then the + " current window is used to open the file + wincmd p + endif + endif + + let split_window = 0 + + if &modified || &previewwindow || a:multi + " Current buffer has unsaved changes or is the preview window + " or the user is opening multiple files + " So open the file in a new window + let split_window = 1 + endif + + if &buftype != '' + " Current buffer is a special buffer (maybe used by a plugin) + if g:MRU_Use_Current_Window == 0 || + \ bufnr('%') != bufnr('__MRU_Files__') + let split_window = 1 + endif + endif + + " Edit the file + if split_window + " Current buffer has unsaved changes or is a special buffer or + " is the preview window. So open the file in a new window + if a:edit_type ==# 'edit' + exe 'split ' . esc_fname + else + exe 'sview ' . esc_fname + endif + else + if a:edit_type ==# 'edit' + exe 'edit ' . esc_fname + else + exe 'view ' . esc_fname + endif + endif + endif + endif +endfunction + +" MRU_Select_File_Cmd {{{1 +" Open a file selected from the MRU window +" +" 'opt' has two values separated by comma. The first value specifies how to +" edit the file and can be either 'edit' or 'view'. The second value +" specifies where to open the file. It can take one of the following values: +" 'useopen' to open file in the previous window +" 'newwin_horiz' to open the file in a new horizontal split window +" 'newwin_vert' to open the file in a new vertical split window. +" 'newtab' to open the file in a new tab. +" If multiple file names are selected using visual mode, then open multiple +" files (either in split windows or tabs) +function! s:MRU_Select_File_Cmd(opt) range + let [edit_type, open_type] = split(a:opt, ',') + + let fnames = getline(a:firstline, a:lastline) + + if g:MRU_Auto_Close == 1 && g:MRU_Use_Current_Window == 0 + " Automatically close the window if the file window is + " not used to display the MRU list. + silent! close + endif + + let multi = 0 + + for f in fnames + if f == '' + continue + endif + + " The text in the MRU window contains the filename in parenthesis + let file = matchstr(f, g:MRU_Filename_Format.parser) + + call s:MRU_Window_Edit_File(file, multi, edit_type, open_type) + + if a:firstline != a:lastline + " Opening multiple files + let multi = 1 + endif + endfor +endfunction + +" MRU_Warn_Msg {{{1 +" Display a warning message +function! s:MRU_Warn_Msg(msg) + echohl WarningMsg + echo a:msg + echohl None +endfunction + +" MRU_Open_Window {{{1 +" Display the Most Recently Used file list in a temporary window. +" If the optional argument is supplied, then it specifies the pattern of files +" to selectively display in the MRU window. +function! s:MRU_Open_Window(...) + + " Load the latest MRU file list + call s:MRU_LoadList() + + " Check for empty MRU list + if empty(s:MRU_files) + call s:MRU_Warn_Msg('MRU file list is empty') + return + endif + + " Save the current buffer number. This is used later to open a file when a + " entry is selected from the MRU window. The window number is not saved, + " as the window number will change when new windows are opened. + let s:MRU_last_buffer = bufnr('%') + + let bname = '__MRU_Files__' + + " If the window is already open, jump to it + let winnum = bufwinnr(bname) + if winnum != -1 + if winnr() != winnum + " If not already in the window, jump to it + exe winnum . 'wincmd w' + endif + + " Delete the contents of the buffer to the black-hole register + silent! %delete _ + else + if g:MRU_Use_Current_Window + " Reuse the current window + " + " If the __MRU_Files__ buffer exists, then reuse it. Otherwise open + " a new buffer + let bufnum = bufnr(bname) + if bufnum == -1 + let cmd = 'edit ' . bname + else + let cmd = 'buffer ' . bufnum + endif + + exe cmd + + if bufnr('%') != bufnr(bname) + " Failed to edit the MRU buffer + return + endif + else + " Open a new window at the bottom + + " If the __MRU_Files__ buffer exists, then reuse it. Otherwise open + " a new buffer + let bufnum = bufnr(bname) + if bufnum == -1 + let wcmd = bname + else + let wcmd = '+buffer' . bufnum + endif + + exe 'silent! botright ' . g:MRU_Window_Height . 'split ' . wcmd + endif + endif + + setlocal modifiable + + " Mark the buffer as scratch + setlocal buftype=nofile + setlocal bufhidden=delete + setlocal noswapfile + setlocal nowrap + setlocal nobuflisted + " Set the 'filetype' to 'mru'. This allows the user to apply custom + " syntax highlighting or other changes to the MRU bufer. + setlocal filetype=mru + " Use fixed height for the MRU window + setlocal winfixheight + + " Setup the cpoptions properly for the maps to work + let old_cpoptions = &cpoptions + set cpoptions&vim + + " Create mappings to select and edit a file from the MRU list + nnoremap + \ :call MRU_Select_File_Cmd('edit,useopen') + vnoremap + \ :call MRU_Select_File_Cmd('edit,useopen') + nnoremap o + \ :call MRU_Select_File_Cmd('edit,newwin_horiz') + vnoremap o + \ :call MRU_Select_File_Cmd('edit,newwin_horiz') + nnoremap + \ :call MRU_Select_File_Cmd('edit,newwin_horiz') + vnoremap + \ :call MRU_Select_File_Cmd('edit,newwin_horiz') + nnoremap O + \ :call MRU_Select_File_Cmd('edit,newwin_vert') + vnoremap O + \ :call MRU_Select_File_Cmd('edit,newwin_vert') + nnoremap t + \ :call MRU_Select_File_Cmd('edit,newtab') + vnoremap t + \ :call MRU_Select_File_Cmd('edit,newtab') + nnoremap v + \ :call MRU_Select_File_Cmd('view,useopen') + nnoremap p + \ :call MRU_Select_File_Cmd('view,preview') + vnoremap p + \ :if line("'<") == line("'>") + \ call MRU_Select_File_Cmd('open,preview') + \ else + \ echoerr "Only a single file can be previewed" + \ endif + nnoremap u :MRU + nnoremap <2-LeftMouse> + \ :call MRU_Select_File_Cmd('edit,useopen') + nnoremap q :close + nnoremap :close + + " Restore the previous cpoptions settings + let &cpoptions = old_cpoptions + + " Display the MRU list + if a:0 == 0 + " No search pattern specified. Display the complete list + let m = copy(s:MRU_files) + else + " Display only the entries matching the specified pattern + " First try using it as a literal pattern + let m = filter(copy(s:MRU_files), 'stridx(v:val, a:1) != -1') + if len(m) == 0 + " No match. Try using it as a regular expression + let m = filter(copy(s:MRU_files), 'v:val =~# a:1') + endif + endif + + " Get the tail part of the file name (without the directory) and display + " it along with the full path in parenthesis. + let output = map(m, g:MRU_Filename_Format.formatter) + silent! 0put =output + + " Delete the empty line at the end of the buffer + silent! $delete _ + + " Move the cursor to the beginning of the file + normal! gg + + " Add syntax highlighting for the file names + syntax match MRUFileName '^.\{-}\ze(' + highlight default link MRUFileName Identifier + + setlocal nomodifiable +endfunction + +" MRU_Complete {{{1 +" Command-line completion function used by :MRU command +function! s:MRU_Complete(ArgLead, CmdLine, CursorPos) + if a:ArgLead == '' + " Return the complete list of MRU files + return s:MRU_files + else + " Return only the files matching the specified pattern + return filter(copy(s:MRU_files), 'v:val =~? a:ArgLead') + endif +endfunction + +" MRU_Cmd {{{1 +" Function to handle the MRU command +" pat - File name pattern passed to the MRU command +function! s:MRU_Cmd(pat) + if a:pat == '' + " No arguments specified. Open the MRU window + call s:MRU_Open_Window() + return + endif + + " Load the latest MRU file + call s:MRU_LoadList() + + " Empty MRU list + if empty(s:MRU_files) + call s:MRU_Warn_Msg('MRU file list is empty') + return + endif + + " First use the specified string as a literal string and search for + " filenames containing the string. If only one filename is found, + " then edit it (unless the user wants to open the MRU window always) + let m = filter(copy(s:MRU_files), 'stridx(v:val, a:pat) != -1') + if len(m) > 0 + if len(m) == 1 && !g:MRU_Window_Open_Always + call s:MRU_Edit_File(m[0], 0) + return + endif + + " More than one file matches. Try find an accurate match + let new_m = filter(m, 'v:val ==# a:pat') + if len(new_m) == 1 && !g:MRU_Window_Open_Always + call s:MRU_Edit_File(new_m[0], 0) + return + endif + + " Couldn't find an exact match, open the MRU window with all the + " files matching the pattern. + call s:MRU_Open_Window(a:pat) + return + endif + + " Use the specified string as a regular expression pattern and search + " for filenames matching the pattern + let m = filter(copy(s:MRU_files), 'v:val =~? a:pat') + + if len(m) == 0 + " If an existing file (not present in the MRU list) is specified, + " then open the file. + if filereadable(a:pat) + call s:MRU_Edit_File(a:pat, 0) + return + endif + + " No filenames matching the specified pattern are found + call s:MRU_Warn_Msg("MRU file list doesn't contain " . + \ "files matching " . a:pat) + return + endif + + if len(m) == 1 && !g:MRU_Window_Open_Always + call s:MRU_Edit_File(m[0], 0) + return + endif + + call s:MRU_Open_Window(a:pat) +endfunction + +" MRU_add_files_to_menu {{{1 +" Adds a list of files to the "Recent Files" sub menu under the "File" menu. +" prefix - Prefix to use for each of the menu entries +" file_list - List of file names to add to the menu +function! s:MRU_add_files_to_menu(prefix, file_list) + for fname in a:file_list + " Escape special characters in the filename + let esc_fname = escape(fnamemodify(fname, ':t'), ".\\" . + \ s:esc_filename_chars) + let esc_fname = substitute(esc_fname, '&', '&&', 'g') + + " Truncate the directory name if it is long + let dir_name = fnamemodify(fname, ':h') + let len = strlen(dir_name) + " Shorten long file names by adding only few characters from + " the beginning and end. + if len > 30 + let dir_name = strpart(dir_name, 0, 10) . + \ '...' . + \ strpart(dir_name, len - 20) + endif + let esc_dir_name = escape(dir_name, ".\\" . s:esc_filename_chars) + let esc_dir_name = substitute(esc_dir_name, '&', '&&', 'g') + + let menu_path = '&File.&Recent\ Files.' . a:prefix . esc_fname . + \ '\ (' . esc_dir_name . ')' + let esc_mfname = s:MRU_escape_filename(fname) + exe 'anoremenu ' . menu_path . + \ " :call MRU_Edit_File('" . esc_mfname . "', 1)" + exe 'tmenu ' . menu_path . ' Edit file ' . esc_mfname + endfor +endfunction + +" MRU_Refresh_Menu {{{1 +" Refresh the MRU menu +function! s:MRU_Refresh_Menu() + if !has('menu') || !g:MRU_Add_Menu + " No support for menus + return + endif + + " Setup the cpoptions properly for the maps to work + let old_cpoptions = &cpoptions + set cpoptions&vim + + " Remove the MRU menu + " To retain the teared-off MRU menu, we need to add a dummy entry + silent! unmenu &File.&Recent\ Files + " The menu priority of the File menu is 10. If the MRU plugin runs + " first before menu.vim, the File menu order may not be correct. + " So specify the priority of the File menu here. + 10noremenu &File.&Recent\ Files.Dummy + silent! unmenu! &File.&Recent\ Files + + anoremenu &File.&Recent\ Files.Refresh\ list + \ :call MRU_LoadList() + exe 'tmenu File.&Recent\ Files.Refresh\ list Reload the MRU file list from ' + \ . s:MRU_escape_filename(g:MRU_File) + anoremenu File.&Recent\ Files.-SEP1- : + + " Add the filenames in the MRU list to the menu + let entry_cnt = len(s:MRU_files) + if entry_cnt > g:MRU_Max_Menu_Entries + " Show only MRU_Max_Menu_Entries file names in the menu + let mru_list = s:MRU_files[0 : g:MRU_Max_Menu_Entries - 1] + let entry_cnt = g:MRU_Max_Menu_Entries + else + let mru_list = s:MRU_files + endif + if entry_cnt > g:MRU_Max_Submenu_Entries + " Split the MRU menu into sub-menus + for start_idx in range(0, entry_cnt, g:MRU_Max_Submenu_Entries) + let last_idx = start_idx + g:MRU_Max_Submenu_Entries - 1 + if last_idx >= entry_cnt + let last_idx = entry_cnt - 1 + endif + let prefix = 'Files\ (' . (start_idx + 1) . '\.\.\.' . + \ (last_idx + 1) . ').' + call s:MRU_add_files_to_menu(prefix, + \ mru_list[start_idx : last_idx]) + endfor + else + call s:MRU_add_files_to_menu('', mru_list) + endif + + " Remove the dummy menu entry + unmenu &File.&Recent\ Files.Dummy + + " Restore the previous cpoptions settings + let &cpoptions = old_cpoptions +endfunction + +" Load the MRU list on plugin startup +call s:MRU_LoadList() + +" MRU autocommands {{{1 +" Autocommands to detect the most recently used files +autocmd BufRead * call s:MRU_AddFile(expand('')) +autocmd BufNewFile * call s:MRU_AddFile(expand('')) +autocmd BufWritePost * call s:MRU_AddFile(expand('')) + +" The ':vimgrep' command adds all the files searched to the buffer list. +" This also modifies the MRU list, even though the user didn't edit the +" files. Use the following autocmds to prevent this. +autocmd QuickFixCmdPre *vimgrep* let s:mru_list_locked = 1 +autocmd QuickFixCmdPost *vimgrep* let s:mru_list_locked = 0 + +" Command to open the MRU window +command! -nargs=? -complete=customlist,s:MRU_Complete MRU + \ call s:MRU_Cmd() +command! -nargs=? -complete=customlist,s:MRU_Complete Mru + \ call s:MRU_Cmd() + +" }}} + +" restore 'cpo' +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:set foldenable foldmethod=marker: diff --git a/etc/soft/nvim/+plugins/ansible-vim/LICENSE b/etc/soft/nvim/+plugins/ansible-vim/LICENSE new file mode 100644 index 0000000..c0c8abe --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Dave Honneffer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/etc/soft/nvim/+plugins/ansible-vim/README.md b/etc/soft/nvim/+plugins/ansible-vim/README.md new file mode 100644 index 0000000..e1cc3f8 --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/README.md @@ -0,0 +1,135 @@ +## introduction + +This is a vim syntax plugin for Ansible 2.x, it supports YAML playbooks, Jinja2 templates, and Ansible's `hosts` files. + +- YAML playbooks are detected if: + - they are in the `group_vars` or `host_vars` folder + - they are in the `tasks`, `roles`, or `handlers` folder and have either a *.yml* or *.yaml* suffix + - they are named `playbook.y(a)ml`, `site.y(a)ml`, or `main.y(a)ml` +- Jinja2 templates are detected if they have a *.j2* suffix +- Files named `hosts` will be treated as Ansible hosts files + +You can also set the filetype to `yaml.ansible`, `*.jinja2`, or `ansible_hosts` if auto-detection does not work (e.g. `:set ft=yaml.ansible` or `:set ft=ruby.jinja2`). **Note**: If you want to detect a custom pattern of your own, you can easily add this in your `.vimrc` using something like this: + +```vim +au BufRead,BufNewFile */playbooks/*.yml set filetype=yaml.ansible +``` + +If you want to override the default file type detection you can easily do this in your `.vimrc`. For example if you use YAML syntax for `hosts` include something like this: + +```vim +augroup ansible_vim_fthosts + autocmd! + autocmd BufNewFile,BufRead hosts setfiletype yaml.ansible +augroup END +``` + +This plugin should be quite reliable, as it sources the original formats and simply modifies the highlights as appropriate. This also enables a focus on simplicity and configurability instead of patching bad syntax detection. + +##### examples (with [solarized](https://github.com/altercation/vim-colors-solarized) colorscheme) + +Bright (and selective highlight) | Dim +:-----------------------------------:|:-------------------------: +![](http://i.imgur.com/whBOZZK.png) | ![](http://i.imgur.com/XS0T00e.png) + +##### installation + +Use your favorite plugin manager, or try [vim-plug](https://github.com/junegunn/vim-plug) if you're looking for a really nice one! + +**vim-plug:** `Plug 'pearofducks/ansible-vim'` + +**vim-plug with post-update hook:** `Plug 'pearofducks/ansible-vim', { 'do': +'cd ./UltiSnips; ./generate.py' }` + +*Note: `generate.py` requires Ansible 2.4 or later.* + +**vundle:** `Plugin 'pearofducks/ansible-vim'` + +**pathogen:** `git clone https://github.com/pearofducks/ansible-vim ~/.vim/bundle/ansible-vim` + +**Arch Linux:** Package [ansible-vim-git](https://aur.archlinux.org/packages/ansible-vim-git/) available on AUR + +## options + +##### g:ansible_unindent_after_newline + +`let g:ansible_unindent_after_newline = 1` + +When this variable is set, indentation will completely reset (unindent to column 0) after two newlines in insert-mode. The normal behavior of YAML is to always keep the previous indentation, even across multiple newlines with no content. + +##### g:ansible_yamlKeyName + +`let g:ansible_yamlKeyName = 'yamlKey'` + +This option exists to provide additional compatibility with [stephpy/vim-yaml](https://github.com/stephpy/vim-yaml). + +##### g:ansible_attribute_highlight +`let g:ansible_attribute_highlight = "ob"` + +Ansible modules use a `key=value` format for specifying module-attributes in playbooks. This highlights those as specified. This highlight option is also used when highlighting key/value pairs in `hosts` files. + +Available flags (bold are defaults): + +- **a**: highlight *all* instances of `key=` +- o: highlight *only* instances of `key=` found on newlines +- **d**: *dim* the instances of `key=` found +- b: *brighten* the instances of `key=` found +- n: turn this highlight off completely + +##### g:ansible_name_highlight +`let g:ansible_name_highlight = 'd'` + +Ansible modules commonly start with a `name:` key for self-documentation of playbooks. This option enables/changes highlight of this. + +Available flags (this feature is off by default): + +- d: *dim* the instances of `name:` found +- b: *brighten* the instances of `name:` found + +##### g:ansible_extra_keywords_highlight +`let g:ansible_extra_keywords_highlight = 1` + +*Note:* This option is enabled when set, and disabled when not set. + +Highlight the following additional keywords in playbooks: `register always_run changed_when failed_when no_log args vars delegate_to ignore_errors` + +By default we only highlight: `include until retries delay when only_if become become_user block rescue always notify` + +##### g:ansible_normal_keywords_highlight +`let g:ansible_normal_keywords_highlight = 'Constant'` + +Accepts any syntax group name from `:help E669` - e.g. _Comment_, _Constant_, and _Identifier_ + +*Note:* Defaults to 'Statement' when not set. + +This option change the highlight of the following common keywords in playbooks: `include until retries delay when only_if become become_user block rescue always notify` + +##### g:ansible_with_keywords_highlight +`let g:ansible_with_keywords_highlight = 'Constant'` + +Accepts any syntax group-name from `:help E669` - e.g. _Comment_, _Constant_, and _Identifier_ + +*Note:* Defaults to 'Statement' when not set. + +This option changes the highlight of all `with_.+` keywords in playbooks. + +##### g:ansible_template_syntaxes +`let g:ansible_template_syntaxes = { '*.rb.j2': 'ruby' }` + +Accepts a dictionary in the form of `'regex-for-file': 'filetype'`. +- _regex-for-file_ will receive the full filepath, so directory matching can be done. +- _filetype_ is the root filetype to be applied, `jinja2` will be automatically appended + +All files ending in `*.j2` that aren't matched will simply get the `jinja2` filetype. + +## bugs, suggestions/requests, & contributions + +##### bugs + +It's unlikely that there will be bugs in highlighting that don't exist in the core format. Where appropriate these will be fixed in this plugin, but if the problem is with the original syntax we should probably focus on fixing that instead. + +Indenting a full document - e.g with `gg=G` - will not be supported and is not a goal of this plugin (unless someone else develops it!). Please do not file a bug report on this. + +##### suggestions/requests + +Suggestions for improvements are welcome, pull-requests with completed features even more so. :) diff --git a/etc/soft/nvim/+plugins/ansible-vim/UltiSnips/.gitignore b/etc/soft/nvim/+plugins/ansible-vim/UltiSnips/.gitignore new file mode 100644 index 0000000..a36c622 --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/UltiSnips/.gitignore @@ -0,0 +1 @@ +ansible.snippets diff --git a/etc/soft/nvim/+plugins/ansible-vim/UltiSnips/README.md b/etc/soft/nvim/+plugins/ansible-vim/UltiSnips/README.md new file mode 100644 index 0000000..079ec90 --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/UltiSnips/README.md @@ -0,0 +1,35 @@ +Generate Snippets Based on Ansible Modules +========================================== + +A script to generate `UltiSnips` based on ansible code on the fly. + +**Note:** Requires Ansible 2.4 or later. + +Script parameters +----------------- +There are a couple of optional arguments for the script. + + * --output: Output filename (Default: ansible.snippets) + * --style: YAML formatting style for snippets + Choices: multiline (default), dictionary + * --sort: Whether to sort module arguments (default: no) + +For Users +--------- +We display option description somewhere, however, there are some special formatters in it. +For your reference, we list them here and you can find them under `/ansible/repo/hacking/module_formatter.py`: + + * I: Italic + * B: Bold + * M: Module + * U: URL + * C: Const + +For Developers +-------------- +* `pip install ansible` first + +Thanks +------ +* Based on (ansible)[https://github.com/ansible/ansible] Awesome Documentation +* Inspired by [bleader/ansible_snippet_generator](https://github.com/bleader/ansible_snippet_generator) diff --git a/etc/soft/nvim/+plugins/ansible-vim/UltiSnips/generate.py b/etc/soft/nvim/+plugins/ansible-vim/UltiSnips/generate.py new file mode 100755 index 0000000..2d10b5b --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/UltiSnips/generate.py @@ -0,0 +1,109 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import argparse +import os +import os.path +import ansible.modules +from ansible.utils.plugin_docs import get_docstring +from ansible.plugins.loader import fragment_loader + + +def get_documents(): + for root, dirs, files in os.walk(os.path.dirname(ansible.modules.__file__)): + for f in files: + if f == '__init__.py' or not f.endswith('py'): + continue + documentation = get_docstring(os.path.join(root, f), fragment_loader)[0] + if documentation is None: + continue + yield documentation + + +def to_snippet(document): + snippet = [] + if 'options' in document: + options = document['options'].items() + if args.sort: + options = sorted(options, key=lambda x: x[0]) + + options = sorted(options, key=lambda x: x[1].get('required', False), reverse=True) + + for index, (name, option) in enumerate(options, 1): + if 'choices' in option: + default = option.get('default') + if isinstance(default, list): + prefix = lambda x: '#' if x in default else '' + suffix = lambda x: "'%s'" % x if isinstance(x, str) else x + value = '[' + ', '.join("%s%s" % (prefix(choice), suffix(choice)) for choice in option['choices']) + else: + prefix = lambda x: '#' if x == default else '' + value = '|'.join('%s%s' % (prefix(choice), choice) for choice in option['choices']) + elif option.get('default') is not None and option['default'] != 'None': + value = option['default'] + if isinstance(value, bool): + value = 'yes' if value else 'no' + else: + value = "# " + option.get('description', [''])[0] + if args.style == 'dictionary': + delim = ': ' + else: + delim = '=' + + if name == 'free_form': # special for command/shell + snippet.append('\t${%d:%s%s%s}' % (index, name, delim, value)) + else: + snippet.append('\t%s%s${%d:%s}' % (name, delim, index, value)) + + # insert a line to seperate required/non-required fields + for index, (_, option) in enumerate(options): + if not option.get("required"): + if index != 0: + snippet.insert(index, '') + break + + if args.style == 'dictionary': + snippet.insert(0, '%s:' % (document['module'])) + else: + snippet.insert(0, '%s:%s' % (document['module'], ' >' if len(snippet) else '')) + snippet.insert(0, 'snippet %s "%s" b' % (document['module'], document['short_description'])) + snippet.append('') + snippet.append('endsnippet') + return "\n".join(snippet) + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser() + parser.add_argument( + '--output', + help='output filename', + default='ansible.snippets' + ) + parser.add_argument( + '--style', + help='yaml format to use for snippets', + choices=['multiline', 'dictionary'], + default='multiline' + ) + parser.add_argument( + '--sort', + help='sort module arguments', + action='store_true', + default=False + ) + + args = parser.parse_args() + + with open(args.output, "w") as f: + f.writelines(["priority -50\n", "\n", "# THIS FILE IS AUTOMATED GENERATED, PLEASE DON'T MODIFY BY HAND\n", "\n"]) + for document in get_documents(): + if 'deprecated' in document: + continue + snippet = to_snippet(document) + if not isinstance(snippet, str): + # python2 compatibility + snippet = snippet.encode('utf-8') + f.write(snippet) + f.write("\n\n") diff --git a/etc/soft/nvim/+plugins/ansible-vim/ftdetect/ansible.vim b/etc/soft/nvim/+plugins/ansible-vim/ftdetect/ansible.vim new file mode 100644 index 0000000..6cec3de --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/ftdetect/ansible.vim @@ -0,0 +1,40 @@ +function! s:isAnsible() + let filepath = expand("%:p") + let filename = expand("%:t") + if filepath =~ '\v/(defaults|tasks|roles|handlers|meta|vars)/.*\.ya?ml$' | return 1 | en + if filepath =~ '\v/(group|host)_vars/' | return 1 | en + if filename =~ '\v(playbook|site|main|local)\.ya?ml$' | return 1 | en + + let shebang = getline(1) + if shebang =~# '^#!.*/bin/env\s\+ansible-playbook\>' | return 1 | en + if shebang =~# '^#!.*/bin/ansible-playbook\>' | return 1 | en + + return 0 +endfunction + +function! s:setupTemplate() + if exists("g:ansible_template_syntaxes") + let filepath = expand("%:p") + for syntax_name in items(g:ansible_template_syntaxes) + let s:syntax_string = '\v/'.syntax_name[0] + if filepath =~ s:syntax_string + execute 'set ft='.syntax_name[1].'.jinja2' + return + endif + endfor + endif + set ft=jinja2 +endfunction + +augroup ansible_vim_ftyaml_ansible + au! + au BufNewFile,BufRead * if s:isAnsible() | set ft=yaml.ansible | en +augroup END +augroup ansible_vim_ftjinja2 + au! + au BufNewFile,BufRead *.j2 call s:setupTemplate() +augroup END +augroup ansible_vim_fthosts + au! + au BufNewFile,BufRead inventory* set ft=ansible_hosts +augroup END diff --git a/etc/soft/nvim/+plugins/ansible-vim/ftplugin/ansible.vim b/etc/soft/nvim/+plugins/ansible-vim/ftplugin/ansible.vim new file mode 100644 index 0000000..52201af --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/ftplugin/ansible.vim @@ -0,0 +1,6 @@ +" Slow yaml highlighting workaround +if exists('+regexpengine') && ('®expengine' == 0) + setlocal regexpengine=1 +endif +set isfname+=@-@ +set path+=./../templates,./../files,templates,files diff --git a/etc/soft/nvim/+plugins/ansible-vim/ftplugin/ansible_hosts.vim b/etc/soft/nvim/+plugins/ansible-vim/ftplugin/ansible_hosts.vim new file mode 100644 index 0000000..393583b --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/ftplugin/ansible_hosts.vim @@ -0,0 +1,9 @@ +if exists("b:did_ftplugin") + finish +else + let b:did_ftplugin = 1 +endif + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions-=c + +let b:undo_ftplugin = "setl comments< commentstring< formatoptions<" diff --git a/etc/soft/nvim/+plugins/ansible-vim/indent/ansible.vim b/etc/soft/nvim/+plugins/ansible-vim/indent/ansible.vim new file mode 100644 index 0000000..6f40e38 --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/indent/ansible.vim @@ -0,0 +1,59 @@ +let s:save_cpo = &cpo +set cpo&vim + +setlocal indentexpr=GetAnsibleIndent(v:lnum) +setlocal indentkeys=!^F,o,O,0#,0},0],<:>,-,* +setlocal nosmartindent +setlocal expandtab +setlocal softtabstop=2 +setlocal shiftwidth=2 +setlocal commentstring=#%s +setlocal formatoptions+=cl +" c -> wrap long comments, including # +" l -> do not wrap long lines + +let s:comment = '\v^\s*#' " # comment +let s:array_entry = '\v^\s*-\s' " - foo +let s:named_module_entry = '\v^\s*-\s*(name|hosts|role):\s*\S' " - name: 'do stuff' +let s:dictionary_entry = '\v^\s*[^:-]+:\s*$' " with_items: +let s:key_value = '\v^\s*[^:-]+:\s*\S' " apt: name=package +let s:scalar_value = '\v:\s*[>|\|]\s*$' " shell: > + +if exists('*GetAnsibleIndent') + finish +endif + +function GetAnsibleIndent(lnum) + if a:lnum == 1 || !prevnonblank(a:lnum-1) + return 0 + endif + if exists("g:ansible_unindent_after_newline") + if (a:lnum -1) != prevnonblank(a:lnum - 1) + return 0 + endif + endif + let prevlnum = prevnonblank(a:lnum - 1) + let maintain = indent(prevlnum) + let increase = maintain + &sw + + let line = getline(prevlnum) + if line =~ s:array_entry + if line =~ s:named_module_entry + return increase + else + return maintain + endif + elseif line =~ s:dictionary_entry + return increase + elseif line =~ s:key_value + if line =~ s:scalar_value + return increase + else + return maintain + endif + else + return maintain + endif +endfunction + +let &cpo = s:save_cpo diff --git a/etc/soft/nvim/+plugins/ansible-vim/syntax/ansible.vim b/etc/soft/nvim/+plugins/ansible-vim/syntax/ansible.vim new file mode 100644 index 0000000..cd9393d --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/syntax/ansible.vim @@ -0,0 +1,104 @@ +" Vim syntax file +" Language: Ansible YAML/Jinja templates +" Maintainer: Dave Honneffer +" Last Change: 2018.02.08 + +if !exists("main_syntax") + let main_syntax = 'yaml' +endif + +if exists('b:current_syntax') + let s:current_syntax=b:current_syntax + unlet b:current_syntax +endif + +syntax include @Jinja syntax/jinja2.vim + +if exists('s:current_syntax') + let b:current_syntax=s:current_syntax +endif + +" Jinja +" ================================ + +syn cluster jinjaSLSBlocks add=jinjaTagBlock,jinjaVarBlock,jinjaComment +" https://github.com/mitsuhiko/jinja2/blob/6b7c0c23/ext/Vim/jinja.vim +syn region jinjaTagBlock matchgroup=jinjaTagDelim start=/{%-\?/ end=/-\?%}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment,@jinjaSLSBlocks +syn region jinjaVarBlock matchgroup=jinjaVarDelim start=/{{-\?/ end=/-\?}}/ containedin=ALLBUT,yamlComment,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment,@jinjaSLSBlocks +syn region jinjaComment matchgroup=jinjaCommentDelim start="{#" end="#}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString,@jinjaSLSBlocks +highlight link jinjaVariable Constant +highlight link jinjaVarDelim Delimiter + +" YAML +" ================================ + +if exists("g:ansible_yamlKeyName") + let s:yamlKey = g:ansible_yamlKeyName +else + let s:yamlKey = "yamlBlockMappingKey" +endif + +" Reset some YAML to plain styling +" the number 80 in Ansible isn't any more important than the word root +highlight link yamlInteger NONE +highlight link yamlBool NONE +highlight link yamlFlowString NONE +" but it does make sense we visualize quotes easily +highlight link yamlFlowStringDelimiter Delimiter +" This is only found in stephypy/vim-yaml, since it's one line it isn't worth +" making conditional +highlight link yamlConstant NONE + +fun! s:attribute_highlight(attributes) + if a:attributes =~ 'a' + syn match ansible_attributes "\v\w+\=" containedin=yamlPlainScalar + else + syn match ansible_attributes "\v^\s*\w+\=" containedin=yamlPlainScalar + endif + if a:attributes =~ 'n' + highlight link ansible_attributes NONE + elseif a:attributes =~ 'd' + highlight link ansible_attributes Comment + else + highlight link ansible_attributes Structure + endif +endfun + +if exists("g:ansible_attribute_highlight") + call s:attribute_highlight(g:ansible_attribute_highlight) +else + call s:attribute_highlight('ad') +endif + +if exists("g:ansible_name_highlight") + execute 'syn keyword ansible_name name containedin='.s:yamlKey.' contained' + if g:ansible_name_highlight =~ 'd' + highlight link ansible_name Comment + else + highlight link ansible_name Underlined + endif +endif + +execute 'syn keyword ansible_debug_keywords debug containedin='.s:yamlKey.' contained' +highlight link ansible_debug_keywords Debug + +if exists("g:ansible_extra_keywords_highlight") + execute 'syn keyword ansible_extra_special_keywords register always_run changed_when failed_when no_log args vars delegate_to ignore_errors containedin='.s:yamlKey.' contained' + highlight link ansible_extra_special_keywords Statement +endif + +execute 'syn keyword ansible_normal_keywords include include_tasks import_tasks until retries delay when only_if become become_user block rescue always notify containedin='.s:yamlKey.' contained' +if exists("g:ansible_normal_keywords_highlight") + execute 'highlight link ansible_normal_keywords '.g:ansible_normal_keywords_highlight +else + highlight link ansible_normal_keywords Statement +endif + +execute 'syn match ansible_with_keywords "\vwith_.+" containedin='.s:yamlKey.' contained' +if exists("g:ansible_with_keywords_highlight") + execute 'highlight link ansible_with_keywords '.g:ansible_with_keywords_highlight +else + highlight link ansible_with_keywords Statement +endif + +let b:current_syntax = "ansible" diff --git a/etc/soft/nvim/+plugins/ansible-vim/syntax/ansible_hosts.vim b/etc/soft/nvim/+plugins/ansible-vim/syntax/ansible_hosts.vim new file mode 100644 index 0000000..5ecc4da --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/syntax/ansible_hosts.vim @@ -0,0 +1,31 @@ +" Vim syntax file +" Language: Ansible hosts files +" Maintainer: Dave Honneffer +" Last Change: 2015.09.23 + +if exists("b:current_syntax") + finish +endif + +syn case ignore +syn match hostsFirstWord "\v^\S+" +syn match hostsAttributes "\v\S*\=" +syn region hostsHeader start="\v^\s*\[" end="\v\]" +syn keyword hostsHeaderSpecials children vars containedin=hostsHeader contained +syn match hostsComment "\v^[#;].*$" + +highlight link hostsFirstWord Label +highlight link hostsHeader Define +highlight link hostsComment Comment +highlight link hostsHeaderSpecials Identifier +highlight link hostsAttributes Structure + +if exists("g:ansible_attribute_highlight") + if g:ansible_attribute_highlight =~ 'n' + highlight link hostsAttributes NONE + elseif g:ansible_attribute_highlight =~ 'd' + highlight link hostsAttributes Comment + endif +endif + +let b:current_syntax = "ansible_hosts" diff --git a/etc/soft/nvim/+plugins/ansible-vim/syntax/jinja2.vim b/etc/soft/nvim/+plugins/ansible-vim/syntax/jinja2.vim new file mode 100644 index 0000000..4b8e35c --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/syntax/jinja2.vim @@ -0,0 +1,97 @@ +" Vim syntax file +" Language: Jinja2 - with special modifications for compound-filetype +" compatibility +" Maintainer: Dave Honneffer +" Last Change: 2018.02.11 + +if !exists("main_syntax") + let main_syntax = 'jinja2' +endif + +let b:current_syntax = '' +unlet b:current_syntax + +syntax case match + +" Jinja template built-in tags and parameters (without filter, macro, is and raw, they +" have special threatment) +syn keyword jinjaStatement containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained and if else in not or recursive as import + +syn keyword jinjaStatement containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained is filter skipwhite nextgroup=jinjaFilter +syn keyword jinjaStatement containedin=jinjaTagBlock contained macro skipwhite nextgroup=jinjaFunction +syn keyword jinjaStatement containedin=jinjaTagBlock contained block skipwhite nextgroup=jinjaBlockName + +" Variable Names +syn match jinjaVariable containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[a-zA-Z_][a-zA-Z0-9_]*/ +syn keyword jinjaSpecial containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained false true none False True None loop super caller varargs kwargs + +" Filters +syn match jinjaOperator "|" containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained skipwhite nextgroup=jinjaFilter +syn match jinjaFilter contained /[a-zA-Z_][a-zA-Z0-9_]*/ +syn match jinjaFunction contained /[a-zA-Z_][a-zA-Z0-9_]*/ +syn match jinjaBlockName contained /[a-zA-Z_][a-zA-Z0-9_]*/ + +" Jinja template constants +syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/"/ skip=/\(\\\)\@\)*\\"/ end=/"/ +syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/'/ skip=/\(\\\)\@\)*\\'/ end=/'/ +syn match jinjaNumber containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[0-9]\+\(\.[0-9]\+\)\?/ + +" Operators +syn match jinjaOperator containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[+\-*\/<>=!,:]/ +syn match jinjaPunctuation containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[()\[\]]/ +syn match jinjaOperator containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /\./ nextgroup=jinjaAttribute +syn match jinjaAttribute contained /[a-zA-Z_][a-zA-Z0-9_]*/ + +" Jinja template tag and variable blocks +syn region jinjaNested matchgroup=jinjaOperator start="(" end=")" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained +syn region jinjaNested matchgroup=jinjaOperator start="\[" end="\]" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained +syn region jinjaNested matchgroup=jinjaOperator start="{" end="}" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained +syn region jinjaTagBlock matchgroup=jinjaTagDelim start=/{%-\?/ end=/-\?%}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment + +syn region jinjaVarBlock matchgroup=jinjaVarDelim start=/{{-\?/ end=/-\?}}/ containedin=ALLBUT,yamlComment,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment + +" Jinja template 'raw' tag +syn region jinjaRaw matchgroup=jinjaRawDelim start="{%\s*raw\s*%}" end="{%\s*endraw\s*%}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString,jinjaComment + +" Jinja comments +syn region jinjaComment matchgroup=jinjaCommentDelim start="{#" end="#}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString + +" Block start keywords. A bit tricker. We only highlight at the start of a +" tag block and only if the name is not followed by a comma or equals sign +" which usually means that we have to deal with an assignment. +syn match jinjaStatement containedin=jinjaTagBlock contained /\({%-\?\s*\)\@<=\<[a-zA-Z_][a-zA-Z0-9_]*\>\(\s*[,=]\)\@!/ + +" and context modifiers +syn match jinjaStatement containedin=jinjaTagBlock contained /\/ + + +" Define the default highlighting. +if !exists("did_jinja_syn_inits") + command -nargs=+ HiLink hi def link + + HiLink jinjaPunctuation jinjaOperator + HiLink jinjaAttribute jinjaVariable + HiLink jinjaFunction jinjaFilter + + HiLink jinjaTagDelim jinjaTagBlock + HiLink jinjaVarDelim jinjaVarBlock + HiLink jinjaCommentDelim jinjaComment + HiLink jinjaRawDelim jinja + + HiLink jinjaSpecial Special + HiLink jinjaOperator Normal + HiLink jinjaRaw Normal + HiLink jinjaTagBlock PreProc + HiLink jinjaVarBlock PreProc + HiLink jinjaStatement Statement + HiLink jinjaFilter Function + HiLink jinjaBlockName Function + HiLink jinjaVariable Identifier + HiLink jinjaString Constant + HiLink jinjaNumber Constant + HiLink jinjaComment Comment + + delcommand HiLink +endif + +let b:current_syntax = "jinja2" diff --git a/etc/soft/nvim/+plugins/ansible-vim/syntax/jinja2.vim_LICENSE b/etc/soft/nvim/+plugins/ansible-vim/syntax/jinja2.vim_LICENSE new file mode 100644 index 0000000..31bf900 --- /dev/null +++ b/etc/soft/nvim/+plugins/ansible-vim/syntax/jinja2.vim_LICENSE @@ -0,0 +1,31 @@ +Copyright (c) 2009 by the Jinja Team, see AUTHORS for more details. + +Some rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * The names of the contributors may not be used to endorse or + promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/etc/soft/nvim/+plugins/autoloadTemplate/plugin/autoloadTemplate.vim b/etc/soft/nvim/+plugins/autoloadTemplate/plugin/autoloadTemplate.vim new file mode 100644 index 0000000..bd47eac --- /dev/null +++ b/etc/soft/nvim/+plugins/autoloadTemplate/plugin/autoloadTemplate.vim @@ -0,0 +1,62 @@ +" {{{1 Documentation +" Version: $Id: autoloadTemplate.vim,v 1.2 2007/02/06 05:22:55 alanc Exp $ +" File: autoloadTemplate.vim +" Maintainer: Alan Che +" Last Change:2007/02/06 +" +" {{{2 Decription: +" +" Load template file from a specific directory according their filetype while +" starting to edit a new file. if the file does not exist, skip it! +" +" +" {{{2 INSTALL: +" Here is the way to install this script to your site: +" 1. extract this file to ~/.vim/plugin +" 2. create a directory ~/.vim/template +" 3. create your template files in that directory, where the file name follow +" th rule: +" .vim +" where is the filetype of this template will apply to, such +" as: verilog.vim, tcl.vim and so on. +" +" +" {{{1 Source code + + + +let g:TemplatePath="~/.vim/template" + +augroup loadTemplate + autocmd! + au FileType * call Template() + + function! Template() + if ! exists("b:IsNewFile") + return + endif + + if exists("b:Template_loaded") + return + endif + let b:Template_loaded=1 + + let b:ThisFileType=expand("") + let b:TemplatePath=g:TemplatePath ."/". b:ThisFileType . ".vim" + let TemplateFullName = expand(b:TemplatePath) + + if filereadable(TemplateFullName) + let $TemplateFullName=TemplateFullName + 0r $TemplateFullName + unlet TemplateFullName + normal G + endif + endfunction + +augroup END + +au BufNewFile * execute "let b:IsNewFile=1" +au BufNewFile * execute "doau loadTemplate FileType" + + +" vim: set ft=vim foldmethod=marker sw=4 ts=8: \ No newline at end of file diff --git a/etc/soft/nvim/+plugins/calendar/autoload/calendar.vim b/etc/soft/nvim/+plugins/calendar/autoload/calendar.vim new file mode 100644 index 0000000..8d3abab --- /dev/null +++ b/etc/soft/nvim/+plugins/calendar/autoload/calendar.vim @@ -0,0 +1,988 @@ +if !exists("g:calendar_action") + let g:calendar_action = "calendar#diary" +endif +if !exists("g:calendar_sign") + let g:calendar_sign = "calendar#sign" +endif +if !exists("g:calendar_mark") + \|| (g:calendar_mark != 'left' + \&& g:calendar_mark != 'left-fit' + \&& g:calendar_mark != 'right') + let g:calendar_mark = 'left' +endif +if !exists("g:calendar_navi") + \|| (g:calendar_navi != 'top' + \&& g:calendar_navi != 'bottom' + \&& g:calendar_navi != 'both' + \&& g:calendar_navi != '') + let g:calendar_navi = 'top' +endif +if !exists("g:calendar_navi_label") + let g:calendar_navi_label = "Prev,Today,Next" +endif +if !exists("g:calendar_diary") + let g:calendar_diary = "~/diary" +endif +if !exists("g:calendar_focus_today") + let g:calendar_focus_today = 0 +endif +if !exists("g:calendar_datetime") + \|| (g:calendar_datetime != '' + \&& g:calendar_datetime != 'title' + \&& g:calendar_datetime != 'statusline') + let g:calendar_datetime = 'title' +endif +if !exists("g:calendar_options") + let g:calendar_options = "fdc=0 nonu" + if has("+relativenumber") + let g:calendar_options .= " nornu" + endif +endif + +"***************************************************************** +"* Default Calendar key bindings +"***************************************************************** +let s:calendar_keys = { +\ 'close' : 'q', +\ 'do_action' : '', +\ 'goto_today' : 't', +\ 'show_help' : '?', +\ 'redisplay' : 'r', +\ 'goto_next_month' : '', +\ 'goto_prev_month' : '', +\ 'goto_next_year' : '', +\ 'goto_prev_year' : '', +\} + +if exists("g:calendar_keys") && type(g:calendar_keys) == 4 + let s:calendar_keys = extend(s:calendar_keys, g:calendar_keys) +end + +"***************************************************************** +"* CalendarDoAction : call the action handler function +"*---------------------------------------------------------------- +"***************************************************************** +function! calendar#action(...) + " for navi + if exists('g:calendar_navi') + let navi = (a:0 > 0)? a:1 : expand("") + let curl = line(".") + if navi == '<' . get(split(g:calendar_navi_label, ','), 0, '') + if b:CalendarMonth > 1 + call calendar#show(b:CalendarDir, b:CalendarYear, b:CalendarMonth-1) + else + call calendar#show(b:CalendarDir, b:CalendarYear-1, 12) + endif + elseif navi == get(split(g:calendar_navi_label, ','), 2, '') . '>' + if b:CalendarMonth < 12 + call calendar#show(b:CalendarDir, b:CalendarYear, b:CalendarMonth+1) + else + call calendar#show(b:CalendarDir, b:CalendarYear+1, 1) + endif + elseif navi == get(split(g:calendar_navi_label, ','), 1, '') + call calendar#show(b:CalendarDir) + if exists('g:calendar_today') + exe "call " . g:calendar_today . "()" + endif + else + let navi = '' + endif + if navi != '' + if g:calendar_focus_today == 1 && search("\*","w") > 0 + silent execute "normal! gg/\*\" + return + else + if curl < line('$')/2 + silent execute "normal! gg0/".navi."\" + else + silent execute "normal! G$?".navi."\" + endif + return + endif + endif + endif + + " if no action defined return + if !exists("g:calendar_action") || g:calendar_action == "" + return + endif + + if b:CalendarDir + let dir = 'H' + if exists('g:calendar_weeknm') + let cnr = col('.') - (col('.')%(24+5)) + 1 + else + let cnr = col('.') - (col('.')%(24)) + 1 + endif + let week = ((col(".") - cnr - 1 + cnr/49) / 3) + else + let dir = 'V' + let cnr = 1 + let week = ((col(".")+1) / 3) - 1 + endif + let lnr = 1 + let hdr = 1 + while 1 + if lnr > line('.') + break + endif + let sline = getline(lnr) + if sline =~ '^\s*$' + let hdr = lnr + 1 + endif + let lnr = lnr + 1 + endwhile + let lnr = line('.') + if(exists('g:calendar_monday')) + let week = week + 1 + elseif(week == 0) + let week = 7 + endif + if lnr-hdr < 2 + return + endif + let sline = substitute(strpart(getline(hdr),cnr,21),'\s*\(.*\)\s*','\1','') + if (col(".")-cnr) > 21 + return + endif + + " extract day + if g:calendar_mark == 'right' && col('.') > 1 + normal! h + let day = matchstr(expand(""), '[^0].*') + normal! l + else + let day = matchstr(expand(""), '[^0].*') + endif + if day == 0 + return + endif + " extract year and month + if exists('g:calendar_erafmt') && g:calendar_erafmt !~ "^\s*$" + let year = matchstr(substitute(sline, '/.*', '', ''), '\d\+') + let month = matchstr(substitute(sline, '.*/\(\d\d\=\).*', '\1', ""), '[^0].*') + if g:calendar_erafmt =~ '.*,[+-]*\d\+' + let veranum = substitute(g:calendar_erafmt,'.*,\([+-]*\d\+\)','\1','') + if year-veranum > 0 + let year = year-veranum + endif + endif + else + let year = matchstr(substitute(sline, '/.*', '', ''), '[^0].*') + let month = matchstr(substitute(sline, '\d*/\(\d\d\=\).*', '\1', ""), '[^0].*') + endif + " call the action function + exe "call " . g:calendar_action . "(day, month, year, week, dir)" +endfunc + +"***************************************************************** +"* Calendar : build calendar +"*---------------------------------------------------------------- +"* a1 : direction +"* a2 : month(if given a3, it's year) +"* a3 : if given, it's month +"***************************************************************** +function! calendar#show(...) + + "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + "+++ ready for build + "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + " remember today + " divide strftime('%d') by 1 so as to get "1,2,3 .. 9" instead of "01, 02, 03 .. 09" + let vtoday = strftime('%Y').strftime('%m').strftime('%d') + + " get arguments + if a:0 == 0 + let dir = 0 + let vyear = strftime('%Y') + let vmnth = matchstr(strftime('%m'), '[^0].*') + elseif a:0 == 1 + let dir = a:1 + let vyear = strftime('%Y') + let vmnth = matchstr(strftime('%m'), '[^0].*') + elseif a:0 == 2 + let dir = a:1 + let vyear = strftime('%Y') + let vmnth = matchstr(a:2, '^[^0].*') + else + let dir = a:1 + let vyear = a:2 + let vmnth = matchstr(a:3, '^[^0].*') + endif + + " remember constant + let vmnth_org = vmnth + let vyear_org = vyear + + " start with last month + let vmnth = vmnth - 1 + if vmnth < 1 + let vmnth = 12 + let vyear = vyear - 1 + endif + + " reset display variables + let vdisplay1 = '' + let vheight = 1 + let vmcnt = 0 + + "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + "+++ build display + "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + if exists("g:calendar_begin") + exe "call " . g:calendar_begin . "()" + endif + while vmcnt < 3 + let vcolumn = 22 + let vnweek = -1 + "-------------------------------------------------------------- + "--- calculating + "-------------------------------------------------------------- + " set boundary of the month + if vmnth == 1 + let vmdays = 31 + let vparam = 1 + let vsmnth = 'Jan' + elseif vmnth == 2 + let vmdays = 28 + let vparam = 32 + let vsmnth = 'Feb' + elseif vmnth == 3 + let vmdays = 31 + let vparam = 60 + let vsmnth = 'Mar' + elseif vmnth == 4 + let vmdays = 30 + let vparam = 91 + let vsmnth = 'Apr' + elseif vmnth == 5 + let vmdays = 31 + let vparam = 121 + let vsmnth = 'May' + elseif vmnth == 6 + let vmdays = 30 + let vparam = 152 + let vsmnth = 'Jun' + elseif vmnth == 7 + let vmdays = 31 + let vparam = 182 + let vsmnth = 'Jul' + elseif vmnth == 8 + let vmdays = 31 + let vparam = 213 + let vsmnth = 'Aug' + elseif vmnth == 9 + let vmdays = 30 + let vparam = 244 + let vsmnth = 'Sep' + elseif vmnth == 10 + let vmdays = 31 + let vparam = 274 + let vsmnth = 'Oct' + elseif vmnth == 11 + let vmdays = 30 + let vparam = 305 + let vsmnth = 'Nov' + elseif vmnth == 12 + let vmdays = 31 + let vparam = 335 + let vsmnth = 'Dec' + else + echo 'Invalid Year or Month' + return + endif + if vyear % 400 == 0 + if vmnth == 2 + let vmdays = 29 + elseif vmnth >= 3 + let vparam = vparam + 1 + endif + elseif vyear % 100 == 0 + if vmnth == 2 + let vmdays = 28 + endif + elseif vyear % 4 == 0 + if vmnth == 2 + let vmdays = 29 + elseif vmnth >= 3 + let vparam = vparam + 1 + endif + endif + + " calc vnweek of the day + if vnweek == -1 + let vnweek = ( vyear * 365 ) + vparam + let vnweek = vnweek + ( vyear/4 ) - ( vyear/100 ) + ( vyear/400 ) + if vyear % 4 == 0 + if vyear % 100 != 0 || vyear % 400 == 0 + let vnweek = vnweek - 1 + endif + endif + let vnweek = vnweek - 1 + endif + + " fix Gregorian + if vyear <= 1752 + let vnweek = vnweek - 3 + endif + + let vnweek = vnweek % 7 + + if exists('g:calendar_monday') + " if given g:calendar_monday, the week start with monday + if vnweek == 0 + let vnweek = 7 + endif + let vnweek = vnweek - 1 + endif + + if exists('g:calendar_weeknm') + " if given g:calendar_weeknm, show week number(ref:ISO8601) + + "vparam <= 1. day of month + "vnweek <= 1. weekday of month (0-6) + "viweek <= number of week + "vfweek <= 1. day of year + + " mo di mi do fr sa so + " 6 5 4 3 2 1 0 vfweek + " 0 1 2 3 4 5 6 vnweek + + let vfweek =((vparam % 7) -vnweek+ 14-2) % 7 + let viweek = (vparam - vfweek-2+7 ) / 7 +1 + + if vfweek < 3 + let viweek = viweek - 1 + endif + + "vfweekl <=year length + let vfweekl = 52 + if (vfweek == 3) + let vfweekl = 53 + endif + + if viweek == 0 + let viweek = 52 + if ((vfweek == 2) && (((vyear-1) % 4) != 0)) + \ || ((vfweek == 1) && (((vyear-1) % 4) == 0)) + let viweek = 53 + endif + endif + + let vcolumn = vcolumn + 5 + if g:calendar_weeknm == 5 + let vcolumn = vcolumn - 2 + endif + endif + + "-------------------------------------------------------------- + "--- displaying + "-------------------------------------------------------------- + " build header + if exists('g:calendar_erafmt') && g:calendar_erafmt !~ "^\s*$" + if g:calendar_erafmt =~ '.*,[+-]*\d\+' + let veranum = substitute(g:calendar_erafmt,'.*,\([+-]*\d\+\)','\1','') + if vyear+veranum > 0 + let vdisplay2 = substitute(g:calendar_erafmt,'\(.*\),.*','\1','') + let vdisplay2 = vdisplay2.(vyear+veranum).'/'.vmnth.'(' + else + let vdisplay2 = vyear.'/'.vmnth.'(' + endif + else + let vdisplay2 = vyear.'/'.vmnth.'(' + endif + let vdisplay2 = strpart(" ", + \ 1,(vcolumn-strlen(vdisplay2))/2-2).vdisplay2 + else + let vdisplay2 = vyear.'/'.vmnth.'(' + let vdisplay2 = strpart(" ", + \ 1,(vcolumn-strlen(vdisplay2))/2-2).vdisplay2 + endif + if exists('g:calendar_mruler') && g:calendar_mruler !~ "^\s*$" + let vdisplay2 = vdisplay2 . get(split(g:calendar_mruler, ','), vmnth-1, '').')'."\n" + else + let vdisplay2 = vdisplay2 . vsmnth.')'."\n" + endif + let vwruler = "Su Mo Tu We Th Fr Sa" + if exists('g:calendar_wruler') && g:calendar_wruler !~ "^\s*$" + let vwruler = g:calendar_wruler + endif + if exists('g:calendar_monday') + let vwruler = strpart(vwruler,stridx(vwruler, ' ') + 1).' '.strpart(vwruler,0,stridx(vwruler, ' ')) + endif + let vdisplay2 = vdisplay2.' '.vwruler."\n" + if g:calendar_mark == 'right' + let vdisplay2 = vdisplay2.' ' + endif + + " build calendar + let vinpcur = 0 + while (vinpcur < vnweek) + let vdisplay2 = vdisplay2.' ' + let vinpcur = vinpcur + 1 + endwhile + let vdaycur = 1 + while (vdaycur <= vmdays) + if vmnth < 10 + let vtarget = vyear."0".vmnth + else + let vtarget = vyear.vmnth + endif + if vdaycur < 10 + let vtarget = vtarget."0".vdaycur + else + let vtarget = vtarget.vdaycur + endif + if exists("g:calendar_sign") && g:calendar_sign != "" + exe "let vsign = " . g:calendar_sign . "(vdaycur, vmnth, vyear)" + if vsign != "" + let vsign = vsign[0] + if vsign !~ "[+!#$%&@?]" + let vsign = "+" + endif + endif + else + let vsign = '' + endif + + " show mark + if g:calendar_mark == 'right' + if vdaycur < 10 + let vdisplay2 = vdisplay2.' ' + endif + let vdisplay2 = vdisplay2.vdaycur + elseif g:calendar_mark == 'left-fit' + if vdaycur < 10 + let vdisplay2 = vdisplay2.' ' + endif + endif + if vtarget == vtoday + let vdisplay2 = vdisplay2.'*' + elseif vsign != '' + let vdisplay2 = vdisplay2.vsign + else + let vdisplay2 = vdisplay2.' ' + endif + if g:calendar_mark == 'left' + if vdaycur < 10 + let vdisplay2 = vdisplay2.' ' + endif + let vdisplay2 = vdisplay2.vdaycur + endif + if g:calendar_mark == 'left-fit' + let vdisplay2 = vdisplay2.vdaycur + endif + let vdaycur = vdaycur + 1 + + " fix Gregorian + if vyear == 1752 && vmnth == 9 && vdaycur == 3 + let vdaycur = 14 + endif + + let vinpcur = vinpcur + 1 + if vinpcur % 7 == 0 + if exists('g:calendar_weeknm') + if g:calendar_mark != 'right' + let vdisplay2 = vdisplay2.' ' + endif + " if given g:calendar_weeknm, show week number + if viweek < 10 + if g:calendar_weeknm == 1 + let vdisplay2 = vdisplay2.'WK0'.viweek + elseif g:calendar_weeknm == 2 + let vdisplay2 = vdisplay2.'WK '.viweek + elseif g:calendar_weeknm == 3 + let vdisplay2 = vdisplay2.'KW0'.viweek + elseif g:calendar_weeknm == 4 + let vdisplay2 = vdisplay2.'KW '.viweek + elseif g:calendar_weeknm == 5 + let vdisplay2 = vdisplay2.' '.viweek + endif + else + if g:calendar_weeknm <= 2 + let vdisplay2 = vdisplay2.'WK'.viweek + elseif g:calendar_weeknm == 3 || g:calendar_weeknm == 4 + let vdisplay2 = vdisplay2.'KW'.viweek + elseif g:calendar_weeknm == 5 + let vdisplay2 = vdisplay2.viweek + endif + endif + let viweek = viweek + 1 + + if viweek > vfweekl + let viweek = 1 + endif + + endif + let vdisplay2 = vdisplay2."\n" + if g:calendar_mark == 'right' + let vdisplay2 = vdisplay2.' ' + endif + endif + endwhile + + " if it is needed, fill with space + if vinpcur % 7 + while (vinpcur % 7 != 0) + let vdisplay2 = vdisplay2.' ' + let vinpcur = vinpcur + 1 + endwhile + if exists('g:calendar_weeknm') + if g:calendar_mark != 'right' + let vdisplay2 = vdisplay2.' ' + endif + if viweek < 10 + if g:calendar_weeknm == 1 + let vdisplay2 = vdisplay2.'WK0'.viweek + elseif g:calendar_weeknm == 2 + let vdisplay2 = vdisplay2.'WK '.viweek + elseif g:calendar_weeknm == 3 + let vdisplay2 = vdisplay2.'KW0'.viweek + elseif g:calendar_weeknm == 4 + let vdisplay2 = vdisplay2.'KW '.viweek + elseif g:calendar_weeknm == 5 + let vdisplay2 = vdisplay2.' '.viweek + endif + else + if g:calendar_weeknm <= 2 + let vdisplay2 = vdisplay2.'WK'.viweek + elseif g:calendar_weeknm == 3 || g:calendar_weeknm == 4 + let vdisplay2 = vdisplay2.'KW'.viweek + elseif g:calendar_weeknm == 5 + let vdisplay2 = vdisplay2.viweek + endif + endif + endif + endif + + " build display + let vstrline = '' + if dir + " for horizontal + "-------------------------------------------------------------- + " +---+ +---+ +------+ + " | | | | | | + " | 1 | + | 2 | = | 1' | + " | | | | | | + " +---+ +---+ +------+ + "-------------------------------------------------------------- + let vtokline = 1 + while 1 + let vtoken1 = get(split(vdisplay1, "\n"), vtokline-1, '') + let vtoken2 = get(split(vdisplay2, "\n"), vtokline-1, '') + if vtoken1 == '' && vtoken2 == '' + break + endif + while strlen(vtoken1) < (vcolumn+1)*vmcnt + if strlen(vtoken1) % (vcolumn+1) == 0 + let vtoken1 = vtoken1.'|' + else + let vtoken1 = vtoken1.' ' + endif + endwhile + let vstrline = vstrline.vtoken1.'|'.vtoken2.' '."\n" + let vtokline = vtokline + 1 + endwhile + let vdisplay1 = vstrline + let vheight = vtokline-1 + else + " for virtical + "-------------------------------------------------------------- + " +---+ +---+ +---+ + " | 1 | + | 2 | = | | + " +---+ +---+ | 1'| + " | | + " +---+ + "-------------------------------------------------------------- + let vtokline = 1 + while 1 + let vtoken1 = get(split(vdisplay1, "\n"), vtokline-1, '') + if vtoken1 == '' + break + endif + let vstrline = vstrline.vtoken1."\n" + let vtokline = vtokline + 1 + let vheight = vheight + 1 + endwhile + if vstrline != '' + let vstrline = vstrline.' '."\n" + let vheight = vheight + 1 + endif + let vtokline = 1 + while 1 + let vtoken2 = get(split(vdisplay2, "\n"), vtokline-1, '') + if vtoken2 == '' + break + endif + while strlen(vtoken2) < vcolumn + let vtoken2 = vtoken2.' ' + endwhile + let vstrline = vstrline.vtoken2."\n" + let vtokline = vtokline + 1 + let vheight = vtokline + 1 + endwhile + let vdisplay1 = vstrline + endif + let vmnth = vmnth + 1 + let vmcnt = vmcnt + 1 + if vmnth > 12 + let vmnth = 1 + let vyear = vyear + 1 + endif + endwhile + if exists("g:calendar_end") + exe "call " . g:calendar_end . "()" + endif + if a:0 == 0 + return vdisplay1 + endif + + "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + "+++ build window + "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + " make window + let vwinnum = bufnr('__Calendar') + if getbufvar(vwinnum, 'Calendar') == 'Calendar' + let vwinnum = bufwinnr(vwinnum) + else + let vwinnum = -1 + endif + + if vwinnum >= 0 + " if already exist + if vwinnum != bufwinnr('%') + exe vwinnum . 'wincmd w' + endif + setlocal modifiable + silent %d _ + else + " make title + if g:calendar_datetime == "title" && (!exists('s:bufautocommandsset')) + auto BufEnter *Calendar let b:sav_titlestring = &titlestring | let &titlestring = '%{strftime("%c")}' + auto BufLeave *Calendar let &titlestring = b:sav_titlestring + let s:bufautocommandsset = 1 + endif + + if exists('g:calendar_navi') && dir + if g:calendar_navi == 'both' + let vheight = vheight + 4 + else + let vheight = vheight + 2 + endif + endif + + " or not + if dir + silent execute 'bo '.vheight.'split __Calendar' + setlocal winfixheight + else + silent execute 'to '.vcolumn.'vsplit __Calendar' + setlocal winfixwidth + endif + call s:CalendarBuildKeymap(dir, vyear, vmnth) + setlocal noswapfile + setlocal buftype=nofile + setlocal bufhidden=delete + silent! exe "setlocal " . g:calendar_options + let nontext_columns = &foldcolumn + &nu * &numberwidth + if has("+relativenumber") + let nontext_columns += &rnu * &numberwidth + endif + " Without this, the 'sidescrolloff' setting may cause the left side of the + " calendar to disappear if the last inserted element is near the right + " window border. + setlocal nowrap + setlocal norightleft + setlocal modifiable + setlocal nolist + let b:Calendar = 'Calendar' + setlocal filetype=calendar + " is this a vertical (0) or a horizontal (1) split? + exe vcolumn + nontext_columns . "wincmd |" + endif + if g:calendar_datetime == "statusline" + setlocal statusline=%{strftime('%c')} + endif + let b:CalendarDir = dir + let b:CalendarYear = vyear_org + let b:CalendarMonth = vmnth_org + + " navi + if exists('g:calendar_navi') + let navi_label = '<' + \.get(split(g:calendar_navi_label, ','), 0, '').' ' + \.get(split(g:calendar_navi_label, ','), 1, '').' ' + \.get(split(g:calendar_navi_label, ','), 2, '').'>' + if dir + let navcol = vcolumn + (vcolumn-strlen(navi_label)+2)/2 + else + let navcol = (vcolumn-strlen(navi_label)+2)/2 + endif + if navcol < 3 + let navcol = 3 + endif + + if g:calendar_navi == 'top' + execute "normal gg".navcol."i " + silent exec "normal! a".navi_label."\\" + silent put! =vdisplay1 + endif + if g:calendar_navi == 'bottom' + silent put! =vdisplay1 + silent exec "normal! Gi\" + execute "normal ".navcol."i " + silent exec "normal! a".navi_label + endif + if g:calendar_navi == 'both' + execute "normal gg".navcol."i " + silent exec "normal! a".navi_label."\\" + silent put! =vdisplay1 + silent exec "normal! Gi\" + execute "normal ".navcol."i " + silent exec "normal! a".navi_label + endif + else + silent put! =vdisplay1 + endif + + setlocal nomodifiable + " In case we've gotten here from insert mode (via :Calendar)... + stopinsert + + let vyear = vyear_org + let vmnth = vmnth_org + + "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + "+++ build highlight + "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + " today + syn clear + if g:calendar_mark =~ 'left-fit' + syn match CalToday display "\s*\*\d*" + syn match CalMemo display "\s*[+!#$%&@?]\d*" + elseif g:calendar_mark =~ 'right' + syn match CalToday display "\d*\*\s*" + syn match CalMemo display "\d*[+!#$%&@?]\s*" + else + syn match CalToday display "\*\s*\d*" + syn match CalMemo display "[+!#$%&@?]\s*\d*" + endif + " header + syn match CalHeader display "[^ ]*\d\+\/\d\+([^)]*)" + + " navi + if exists('g:calendar_navi') + exec "silent! syn match CalNavi display \"\\(<" + \.get(split(g:calendar_navi_label, ','), 0, '')."\\|" + \.get(split(g:calendar_navi_label, ','), 2, '').">\\)\"" + exec "silent! syn match CalNavi display \"\\s" + \.get(split(g:calendar_navi_label, ','), 1, '')."\\s\"hs=s+1,he=e-1" + endif + + " saturday, sunday + + if exists('g:calendar_monday') + if dir + syn match CalSaturday display /|.\{15}\s\([0-9\ ]\d\)/hs=e-1 contains=ALL + syn match CalSunday display /|.\{18}\s\([0-9\ ]\d\)/hs=e-1 contains=ALL + else + syn match CalSaturday display /^.\{15}\s\([0-9\ ]\d\)/hs=e-1 contains=ALL + syn match CalSunday display /^.\{18}\s\([0-9\ ]\d\)/hs=e-1 contains=ALL + endif + else + if dir + syn match CalSaturday display /|.\{18}\s\([0-9\ ]\d\)/hs=e-1 contains=ALL + syn match CalSunday display /|\s\([0-9\ ]\d\)/hs=e-1 contains=ALL + else + syn match CalSaturday display /^.\{18}\s\([0-9\ ]\d\)/hs=e-1 contains=ALL + syn match CalSunday display /^\s\([0-9\ ]\d\)/hs=e-1 contains=ALL + endif + endif + + " week number + if !exists('g:calendar_weeknm') || g:calendar_weeknm <= 2 + syn match CalWeeknm display "WK[0-9\ ]\d" + else + syn match CalWeeknm display "KW[0-9\ ]\d" + endif + + " ruler + execute 'syn match CalRuler "'.vwruler.'"' + + if search("\*","w") > 0 + silent execute "normal! gg/\*\" + endif + + return '' +endfunction + +"***************************************************************** +"* make_dir : make directory +"*---------------------------------------------------------------- +"* dir : directory +"***************************************************************** +function! s:make_dir(dir) + if(has("unix")) + call system("mkdir " . a:dir) + let rc = v:shell_error + elseif(has("win16") || has("win32") || has("win95") || + \has("dos16") || has("dos32") || has("os2")) + call system("mkdir \"" . a:dir . "\"") + let rc = v:shell_error + else + let rc = 1 + endif + if rc != 0 + call confirm("can't create directory : " . a:dir, "&OK") + endif + return rc +endfunc + +"***************************************************************** +"* diary : calendar hook function +"*---------------------------------------------------------------- +"* day : day you actioned +"* month : month you actioned +"* year : year you actioned +"***************************************************************** +function! calendar#diary(day, month, year, week, dir) + " build the file name and create directories as needed + if !isdirectory(expand(g:calendar_diary)) + call confirm("please create diary directory : ".g:calendar_diary, 'OK') + return + endif + let sfile = expand(g:calendar_diary) . "/" . a:year + if isdirectory(sfile) == 0 + if s:make_dir(sfile) != 0 + return + endif + endif + let sfile = sfile . "/" . a:month + if isdirectory(sfile) == 0 + if s:make_dir(sfile) != 0 + return + endif + endif + let sfile = expand(sfile) . "/" . a:day . ".md" + let sfile = substitute(sfile, ' ', '\\ ', 'g') + let vbufnr = bufnr('__Calendar') + + " load the file + exe "wincmd w" + exe "edit " . sfile + let dir = getbufvar(vbufnr, "CalendarDir") + let vyear = getbufvar(vbufnr, "CalendarYear") + let vmnth = getbufvar(vbufnr, "CalendarMonth") + exe "auto BufDelete ".escape(sfile, ' \\')." call calendar#show(" . dir . "," . vyear . "," . vmnth . ")" +endfunc + +"***************************************************************** +"* sign : calendar sign function +"*---------------------------------------------------------------- +"* day : day of sign +"* month : month of sign +"* year : year of sign +"***************************************************************** +function! calendar#sign(day, month, year) + let sfile = g:calendar_diary."/".a:year."/".a:month."/".a:day.".md" + return filereadable(expand(sfile)) +endfunction + +"***************************************************************** +"* CalendarVar : get variable +"*---------------------------------------------------------------- +"***************************************************************** +function! s:CalendarVar(var) + if !exists(a:var) + return '' + endif + exec 'return ' . a:var +endfunction + +"***************************************************************** +"* CalendarBuildKeymap : build keymap +"*---------------------------------------------------------------- +"***************************************************************** +function! s:CalendarBuildKeymap(dir, vyear, vmnth) + " make keymap + nnoremap CalendarDoAction :call calendar#action() + nnoremap CalendarDoAction :call calendar#action() + nnoremap CalendarGotoToday :call calendar#show(b:CalendarDir) + nnoremap CalendarShowHelp :call CalendarHelp() + execute 'nnoremap CalendarReDisplay :call calendar#show(' . a:dir . ',' . a:vyear . ',' . a:vmnth . ')' + let pnav = get(split(g:calendar_navi_label, ','), 0, '') + let nnav = get(split(g:calendar_navi_label, ','), 2, '') + execute 'nnoremap CalendarGotoPrevMonth :call calendar#action("<' . pnav . '")' + execute 'nnoremap CalendarGotoNextMonth :call calendar#action("' . nnav . '>")' + execute 'nnoremap CalendarGotoPrevYear :call calendar#show('.a:dir.','.(a:vyear-1).','.a:vmnth.')' + execute 'nnoremap CalendarGotoNextYear :call calendar#show('.a:dir.','.(a:vyear+1).','.a:vmnth.')' + + nmap <2-LeftMouse> CalendarDoAction + + execute 'nmap ' . s:calendar_keys['close'] . ' c' + execute 'nmap ' . s:calendar_keys['do_action'] . ' CalendarDoAction' + execute 'nmap ' . s:calendar_keys['goto_today'] . ' CalendarGotoToday' + execute 'nmap ' . s:calendar_keys['show_help'] . ' CalendarShowHelp' + execute 'nmap ' . s:calendar_keys['redisplay'] . ' CalendarRedisplay' + + execute 'nmap ' . s:calendar_keys['goto_next_month'] . ' CalendarGotoNextMonth' + execute 'nmap ' . s:calendar_keys['goto_prev_month'] . ' CalendarGotoPrevMonth' + execute 'nmap ' . s:calendar_keys['goto_next_year'] . ' CalendarGotoNextYear' + execute 'nmap ' . s:calendar_keys['goto_prev_year'] . ' CalendarGotoPrevYear' +endfunction + +"***************************************************************** +"* CalendarHelp : show help for Calendar +"*---------------------------------------------------------------- +"***************************************************************** +function! s:CalendarHelp() + let ck = s:calendar_keys + let max_width = max(map(values(ck), 'len(v:val)')) + let offsets = map(copy(ck), '1 + max_width - len(v:val)') + + echohl SpecialKey + echo ck['goto_prev_month'] . repeat(' ', offsets['goto_prev_month']) . ': goto prev month' + echo ck['goto_next_month'] . repeat(' ', offsets['goto_next_month']) . ': goto next month' + echo ck['goto_prev_year'] . repeat(' ', offsets['goto_prev_year']) . ': goto prev year' + echo ck['goto_next_year'] . repeat(' ', offsets['goto_next_year']) . ': goto next year' + echo ck['goto_today'] . repeat(' ', offsets['goto_today']) . ': goto today' + echo ck['close'] . repeat(' ', offsets['close']) . ': close window' + echo ck['redisplay'] . repeat(' ', offsets['redisplay']) . ': re-display window' + echo ck['show_help'] . repeat(' ', offsets['show_help']) . ': show this help' + if g:calendar_action == "calendar#diary" + echo ck['do_action'] . repeat(' ', offsets['do_action']) . ': show diary' + endif + echo '' + echohl Question + + let vk = [ + \ 'calendar_erafmt', + \ 'calendar_mruler', + \ 'calendar_wruler', + \ 'calendar_weeknm', + \ 'calendar_navi_label', + \ 'calendar_diary', + \ 'calendar_mark', + \ 'calendar_navi', + \] + let max_width = max(map(copy(vk), 'len(v:val)')) + + for _ in vk + let v = get(g:, _, '') + echo _ . repeat(' ', max_width - len(_)) . ' = ' . v + endfor + echohl MoreMsg + echo "[Hit any key]" + echohl None + call getchar() + redraw! +endfunction + +hi def link CalNavi Search +hi def link CalSaturday Statement +hi def link CalSunday Type +hi def link CalRuler StatusLine +hi def link CalWeeknm Comment +hi def link CalToday Directory +hi def link CalHeader Special +hi def link CalMemo Identifier diff --git a/etc/soft/nvim/+plugins/calendar/doc/calendar.txt b/etc/soft/nvim/+plugins/calendar/doc/calendar.txt new file mode 100644 index 0000000..e960712 --- /dev/null +++ b/etc/soft/nvim/+plugins/calendar/doc/calendar.txt @@ -0,0 +1,195 @@ +*calendar.txt* Calendar utility for vim + +Author: Yasuhiro Matsumoto + +INTRODUCTION *calendar* + +This script creates a calendar window in vim. It does not rely on any +external program, such as cal, etc. + +COMMANDS *calendar-commands* + +calendar.vim makes the following commands available: + + *calendar-:Calendar* +:Calendar [[year] month] Show calendar at this year and this month in a + vertical split. When [year] is omitted, the + calendar will show the given month in the current + year. When both [year] and [month] are omitted, the + calendar will show the current month. + + *calendar-:CalendarH* +:CalendarH [[year] month] Show calendar at this year and this month in a + horizontal split. When [year] is omitted, the + calendar will show the given month in the current + year. When both [year] and [month] are omitted, the + calendar will show the current month. + +MAPPINGS *calendar-mappings* + +calendar.vim makes the following normal mode mappings available: + + *calendar-cal* +cal Brings up the calendar in a vertical split. + Equivalent to calling |:Calendar|. + + *calendar-caL* +caL Brings up the calendar in a horizontal split. + Equivalent to calling |:CalendarH|. + +SETTINGS *calendar-settings* + +calendar.vim can be configured using the following settings: + + *g:calendar_focus_today* +Keeps focus when moving to next or previous calendar: > + let g:calendar_focus_today = 1 +< + + *g:calendar_keys* +To change the key bindings in the calendar window, add entries to this +dictionary. Possible keys, the action bound to the keycode given in the +respective value for this key and the default binding are listed below. +'close' Closes calendar window. 'q' +'do_action' Executes |calendar_action|. '' +'goto_today' Executes |calendar_today|. 't' +'show_help' Displays a short help message. '?' +'redisplay' Redraws calendar window. 'r' +'goto_next_month' Jumps to the next month. '' +'goto_prev_month' Jumps to the previous month. '' +'goto_next_year' Jumps to the next month. '' +'goto_prev_year' Jumps to the previous month. '' +An example in your .vimrc might look like this: > + let g:calendar_keys = { 'goto_next_month':', 'goto_prev_month':''} +< + + *g:calendar_mark* +Place a '*' or '+' mark after the day. Acceptable values are 'left', +'left-fit', and 'right': > + let g:calendar_mark = 'right' +< + + *g:calendar_navi* +To control the calendar navigator, set this variable. Acceptable values are +'top', 'bottom', or 'both'. > + let g:calendar_navi = '' +< + + *g:calendar_navi_label* +To set the labels for the calendar navigator, for example to change the +language, use this variable. Entries should be comma separated. > + let g:calendar_navi_label = 'Prev,Today,Next' +< + + *g:calendar_erafmt* +To change the dating system, set the following variable. Include the name of +the dating system and its offset from the Georgian calendar (A.D.). For +example, to use the current Japanese era (Heisei), you would set: > + let g:calendar_erafmt = 'Heisei,-1988' +< + + *g:calendar_mruler* +To change the month names for the calendar headings, set this variable. The +value is expected to be a comma-separated list of twelve values, starting with +Janurary: > + let g:calendar_mruler = 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec' +< + + *g:calendar_wruler* +To change the week names for the calendar headings, set this variable. The +value is expected to be a space-separated list of seven values, starting with +Sunday: > + let g:calendar_wruler = 'Su Mo Tu We Th Fr Sa' +< + + *g:calendar_monday* +To make the week start on Monday rather than Sunday, set this variable. Note +that the value of |g:calendar_wruler| is not affected by this; it should +always begin with Sunday: > + let g:calendar_monday = 1 +< + + *g:calendar_weeknm* +To show the week number, set this variable. There are four valid settings: > + let g:calendar_weeknm = 1 " WK01 + let g:calendar_weeknm = 2 " WK 1 + let g:calendar_weeknm = 3 " KW01 + let g:calendar_weeknm = 4 " KW 1 + let g:calendar_weeknm = 5 " 1 +< + + *g:calendar_datetime* +To control display of the current date and time, set this variable. +Acceptable values are 'title', 'statusline', and '': > + let g:calendar_datetime = 'title' +< + +HOOKS *calendar-hooks* + +calendar.vim provides a number of hooks which allow you to run custom code on +certain events. These are documented below. + + *calendar_action* +The function declared in the calendar_action variable is run when the user +presses enter on a date. Implement and set your function as follows: > + function MyCalAction(day,month,year,week,dir) + " day : day you actioned + " month : month you actioned + " year : year you actioned + " week : day of week (Mo=1 ... Su=7) + " dir : direction of calendar + endfunction + let calendar_action = 'MyCalAction' +< + + *calendar_begin* +The function declared in the calendar_begin variable is run just before the +calendar is displayed. Implement and set your function as follows: > + function MyCalActionBegin() + endfunction + let calendar_begin = 'MyCalActionBegin' +< + + *calendar_end* +The function declared in the calendar_end variable is run just after the +calendar is displayed. Implement and set your function as follows: > + function MyCalActionEnd() + endfunction + let calendar_end = 'MyCalActionEnd' +< + + *calendar_sign* +The function declared in the calendar_sign variable can be used to set a mark +next to certain dates. Implement and set your function as follows: > + function MyCalSign(day,month,year) + " day : day you actioned + " month : month you actioned + " year : year you actioned + if a:day == 1 && a:month == 1 + return 1 " happy new year + else + return 0 " or not + endif + endfunction + let calendar_sign = 'MyCalSign' +< + + *calendar_today* +The function declared in the calendar_today variable is run when the user +presses 'today'. Implement and set your function as follows: > + function MyCalToday() + endfunction + let calendar_today = 'MyCalToday' +< + +ABOUT *calendar-about* + +calendar.vim is available on GitHub: + + http://github.com/mattn/calendar.vim + +and also on VimScripts: + + http://www.vim.org/scripts/script.php?script_id=52 + +vim:tw=78:et:ft=help:norl: diff --git a/etc/soft/nvim/+plugins/calendar/plugin/calendar.vim b/etc/soft/nvim/+plugins/calendar/plugin/calendar.vim new file mode 100644 index 0000000..efa6a5c --- /dev/null +++ b/etc/soft/nvim/+plugins/calendar/plugin/calendar.vim @@ -0,0 +1,229 @@ +"============================================================================= +" What Is This: Calendar +" File: calendar.vim +" Author: Yasuhiro Matsumoto +" Last Change: 2013 Mar 19 +" Version: 2.9 +" Thanks: +" Tobias Columbus : customizable key bindings +" Daniel P. Wright : doc/calendar.txt +" SethMilliken : gave a hint for 2.4 +" bw1 : bug fix, new weeknm format +" Ingo Karkat : bug fix +" Thinca : bug report, bug fix +" Yu Pei : bug report +" Per Winkvist : bug fix +" Serge (gentoosiast) Koksharov : bug fix +" Vitor Antunes : bug fix +" Olivier Mengue : bug fix +" Noel Henson : today action +" Per Winkvist : bug report +" Peter Findeisen : bug fix +" Chip Campbell : gave a hint for 1.3z +" PAN Shizhu : gave a hint for 1.3y +" Eric Wald : bug fix +" Sascha Wuestemann : advise +" Linas Vasiliauskas : bug report +" Per Winkvist : bug report +" Ronald Hoelwarth : gave a hint for 1.3s +" Vikas Agnihotri : bug report +" Steve Hall : gave a hint for 1.3q +" James Devenish : bug fix +" Carl Mueller : gave a hint for 1.3o +" Klaus Fabritius : bug fix +" Stucki : gave a hint for 1.3m +" Rosta : bug report +" Richard Bair : bug report +" Yin Hao Liew : bug report +" Bill McCarthy : bug fix and gave a hint +" Srinath Avadhanula : bug fix +" Ronald Hoellwarth : few advices +" Juan Orlandini : added higlighting of days with data +" Ray : bug fix +" Ralf.Schandl : gave a hint for 1.3 +" Bhaskar Karambelkar : bug fix +" Suresh Govindachar : gave a hint for 1.2, bug fix +" Michael Geddes : bug fix +" Leif Wickland : bug fix +" ChangeLog: +" 2.8 : bug fix +" 2.7 : vim7ish, customizable key bindings +" 2.6 : new week number format +" 2.5 : bug fix, 7.2 don't have relativenumber. +" 2.4 : added g:calendar_options. +" 2.3 : week number like ISO8601 +" g:calendar_monday and g:calendar_weeknm work together +" 2.2 : http://gist.github.com/355513#file_customizable_keymap.diff +" http://gist.github.com/355513#file_winfixwidth.diff +" 2.1 : bug fix, set filetype 'calendar'. +" 2.0 : bug fix, many bug fix and enhancements. +" 1.9 : bug fix, use nnoremap. +" 1.8 : bug fix, E382 when close diary. +" 1.7 : bug fix, week number was broken on 2008. +" 1.6 : added calendar_begin action. +" added calendar_end action. +" 1.5 : bug fix, fixed ruler formating with strpart. +" bug fix, using winfixheight. +" 1.4a : bug fix, week number was broken on 2005. +" added calendar_today action. +" bug fix, about wrapscan. +" bug fix, about today mark. +" bug fix, about today navigation. +" 1.4 : bug fix, and one improvement. +" bug 1: +" when marking the current date, there is not distinguished e.g. between +" 20041103 and 20040113, both dates are marked as today +" bug 2: +" the navigation mark "today" doesn't work +" improvement: +" the mapping t worked only when today was displayed, now it works always +" and redisplays the cuurent month and today +" 1.3z : few changes +" asign , for navigation. +" set ws for search navigation. +" add tag for GetLatestVimScripts(AutoInstall) +" 1.3y : bug fix, few changes +" changed color syntax name. (ex. CalNavi, see bottom of this) +" changed a map CalendarV for cal +" changed a map CalendarH for caL +" (competitive map for cvscommand.vim) +" the date on the right-hand side didn't work correctoly. +" make a map to rebuild Calendar window(r). +" 1.3x : bug fix +" viweek can't refer when not set calendar_weeknm. +" 1.3w : bug fix +" on leap year, week number decreases. +" 1.3v : bug fix +" add nowrapscan +" use s:bufautocommandsset for making title +" don't focus to navi when doubleclick bottom next>. +" 1.3u : bug fix +" when enter diary first time, +" it don't warn that you don't have diary directory. +" 1.3t : bug fix +" make sure the variables for help +" 1.3s : bug fix +" make a map CalendarV for ca +" add option calendar_navi_label +" see Additional: +" add option calendar_focus_today +" see Additional: +" add map ? for help +" 1.3r : bug fix +" if clicked navigator, cursor go to strange position. +" 1.3q : bug fix +" coundn't set calendar_navi +" in its horizontal direction +" 1.3p : bug fix +" coundn't edit diary when the calendar is +" in its horizontal direction +" 1.3o : add option calendar_mark, and delete calendar_rmark +" see Additional: +" add option calendar_navi +" see Additional: +" 1.3n : bug fix +" s:CalendarSign() should use filereadable(expand(sfile)). +" 1.3m : tuning +" using topleft or botright for opening Calendar. +" use filereadable for s:CalendarSign(). +" 1.3l : bug fix +" if set calendar_monday, it can see that Sep 1st is Sat +" as well as Aug 31st. +" 1.3k : bug fix +" it didn't escape the file name on calendar. +" 1.3j : support for fixed Gregorian +" added the part of Sep 1752. +" 1.3i : bug fix +" Calculation mistake for week number. +" 1.3h : add option for position of displaying '*' or '+'. +" see Additional: +" 1.3g : centering header +" add option for show name of era. +" see Additional: +" bug fix +" ca didn't show current month. +" 1.3f : bug fix +" there was yet another bug of today's sign. +" 1.3e : added usage for +" support handler for sign. +" see Additional: +" 1.3d : added higlighting of days that have calendar data associated +" with it. +" bug fix for calculates date. +" 1.3c : bug fix for MakeDir() +" if CalendarMakeDir(sfile) != 0 +" v +" if s:CalendarMakeDir(sfile) != 0 +" 1.3b : bug fix for calendar_monday. +" it didn't work g:calendar_monday correctly. +" add g:calendar_version. +" add argument on action handler. +" see Additional: +" 1.3a : bug fix for MakeDir(). +" it was not able to make directory. +" 1.3 : support handler for action. +" see Additional: +" 1.2g : bug fix for today's sign. +" it could not display today's sign correctly. +" 1.2f : bug fix for current Date. +" vtoday variable calculates date as 'YYYYMMDD' +" while the loop calculates date as 'YYYYMMD' i.e just 1 digit +" for date if < 10 so if current date is < 10 , the if condiction +" to check for current date fails and current date is not +" highlighted. +" simple solution changed vtoday calculation line divide the +" current-date by 1 so as to get 1 digit date. +" 1.2e : change the way for setting title. +" auto configuration for g:calendar_wruler with g:calendar_monday +" 1.2d : add option for show week number. +" let g:calendar_weeknm = 1 +" add separator if horizontal. +" change all option's name +" g:calendar_mnth -> g:calendar_mruler +" g:calendar_week -> g:calendar_wruler +" g:calendar_smnd -> g:calendar_monday +" 1.2c : add option for that the week starts with monday. +" let g:calendar_smnd = 1 +" 1.2b : bug fix for modifiable. +" setlocal nomodifiable (was set) +" 1.2a : add default options. +" nonumber,foldcolumn=0,nowrap... as making gap +" 1.2 : support wide display. +" add a command CalendarH +" add map +" 1.1c : extra. +" add a titlestring for today. +" 1.1b : bug fix by Michael Geddes. +" it happend when do ':Calender' twice +" 1.1a : fix misspell. +" Calender -> Calendar +" 1.1 : bug fix. +" it"s about strftime("%m") +" 1.0a : bug fix by Leif Wickland. +" it"s about strftime("%w") +" 1.0 : first release. +" TODO: +" add the option for diary which is separate or single file. +" GetLatestVimScripts: 52 1 :AutoInstall: calendar.vim + +if &compatible + finish +endif +"***************************************************************** +"* Calendar commands +"***************************************************************** +command! -nargs=* Calendar call calendar#show(0,) +command! -nargs=* CalendarH call calendar#show(1,) + +if !get(g:, 'calendar_no_mappings', 0) + if !hasmapto('CalendarV') + nmap cal CalendarV + endif + if !hasmapto('CalendarH') + nmap caL CalendarH + endif +endif +nnoremap CalendarV :cal calendar#show(0) +nnoremap CalendarH :cal calendar#show(1) + +" vi: et sw=2 ts=2 diff --git a/etc/soft/nvim/+plugins/cheat.sh-vim/Licence.txt b/etc/soft/nvim/+plugins/cheat.sh-vim/Licence.txt new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/etc/soft/nvim/+plugins/cheat.sh-vim/Licence.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/etc/soft/nvim/+plugins/cheat.sh-vim/Readme.md b/etc/soft/nvim/+plugins/cheat.sh-vim/Readme.md new file mode 100644 index 0000000..3f79c2a --- /dev/null +++ b/etc/soft/nvim/+plugins/cheat.sh-vim/Readme.md @@ -0,0 +1,355 @@ +*This repository is a mirror, for developpement and issues, please go to [gitlab](https://gitlab.com/dbeniamine/cheat.sh-vim/)* + +# Vim Cheat.sh + +This is a highly configurable vim plugin to browse cheat sheet from +[cheat.sh](https://github.com/chubin/cheat.sh) directly from vim. + +## Demo + + + +There is a demo of most important features of the cheat.sh Vim plugin (5 Min), +courtesy of @chubin, CC-SA. + +** Note :** In the video, @chubin uses the `space` key as a ``, by +default vim `` is `backslash`. + +

+ +

+ +Or, if you want to scroll and/or pause, the same on YouTube: + +

+ cheat.sh-vim: Using cheat.sh from vim +

+ +## Features + ++ Browse existing cheat sheets from cheat.sh directly from vim ++ Get answers on any programming question directly on your vim with simple mappings ++ Answers depends of your current filetype or framework ++ Send compilation / syntax error to cht.sh and get answers ++ Manage session id to replay last query from other cht.sh clients ++ Quick navigation through answers ++ Everything is configurable + +### How to use it + +The easiest way to use this plugin is to use one of the following mappings : + ++ `K` get answer on the word under the cursor or the selection on a pager (this +feature requires vim >= 7.4.1833, you can check if have the right version with : +`:echo has("patch-7.4.1833")`) ++ `KK` same as `K` but works on lines or visual selection (not working +on neovim, because they killed interactive commands with `:!`) ++ `KB` get the answer on a special buffer ++ `KR` Replace your question by the answer ++ `KP` Past the answer below your question ++ `KC` Replay last query, toggling comments ++ `KE` Send first error to cht.sh ++ `C` Toggle showing comments by default see [configuration](#configuration) ++ `KL` Replay last query + +The plugins also provides four main commands : + + :Cheat + :CheatReplace + :CheatPast + :CheatPager + ++ These commands takes 0 or 1 argument. ++ If you give no argument, it will send the language of the current buffer and +the visual selection (or the current line / word in `normal` mode) as a plus +query to cheat.sh and show the answer in a new buffer (`:Cheat`), in place of +your question (`:CheatReplace`) or in a pager (`:CheatPager`). ++ If one argument is given, you can complete it from a list of available cheat +sheets or write your own [query](https://github.com/chubin/cheat.sh#search). ++ They also take a `bang` that make same transform the query into a plus query: +for instance : `:Cheat! factory` is the same as `:Cheat &ft/factory+`. + +#### HowIn + +The `:HowIn` command takes exaclty one argument. + +If the argument is one word, it is interpreted as a filetype (language), and +the current line (or word, depending on |cheat.sh-configuration|) is sent as a +query for this given language. +Else the first word of the query should be a filetype. + +Examples : + +```python +# Current postion in the buffer : +with open('foo') as f: +``` +```viml +:HowIn javascript +``` +Or +```viml +:Howin javascript open file +``` + +#### Frameworks + +#### Ids + +When you open a buffer, cheat.sh-vim will try to guess if you are using a +framework and if a framework is found, it will send queries using your +framework instead of your filetype. + +There are also some mappings to change the current framework : + + + `Kt` : Use filetype instead of framework + + `KT` : Use autodetected framework + + `Kf` : Use next defined framework for current filetype + + `KF` : Use previous defined framework for current filetype + +The available Frameworks can be overriden with the following code (adapt to +your needs) : +```viml + let g:CheatSheetFrameworks = { + \ 'python' : ['python', 'django', ], + \ 'javascript' : ['javascript', 'node', 'angular', 'jquery'], + \ 'php' : ['php', 'symphony', 'yii', 'zend'], + \} +``` + +As you can see the list is far from being exhaustive, please contribute if you +modify it (see below). + +##### Frameworks Detection + +This functionnality is in early stage and help is wanted to improve it. +To detect framework, the plugin go through the list of defined framework for +the current filetype. The following dictionnary tells the plugin how to detect +a few frameworks. +```viml + let g:CheatSheetFrameworkDetectionMethods = { + \'django' : { 'type' : 'file', 'value' : 'manage.py' }, + \'symfony' : { 'type' : 'file', 'value' : 'symfony.phar' }, + \'jquery' : {'type' :'search', 'value' : 'jquery.*\.js'}, + \} +``` + +This dictionnary can be overriden by the user. + +There are three types of detections : + +1. 'file' : 'value' is an argument for the `find` command to locate a file +`find . -name "value"` +2. 'search', 'value' is a pattern that should be present in the current file +3. 'func' : 'value' is the name of a user defined function which should return +something true if the framework is detected. The function takes one argument +which is the name of the framework we are currently testing for. + +Please report any contribution on [this +issue](https://gitlab.com/dbeniamine/cheat.sh-vim/issues/51#note_95268282), or +do MR (PR) on gitlab (resp github) : + + +The `:CheatId` command can be used to manage ids : + + :Cheat[!] [newid] " Generates a new id or set id to newid + " Id will not be overwritten if ! is not given + :Cheat remove " Completely removes the id + +#### Errors + +Cheat.sh-vim can directly send the syntaxt and compilation errors / warning to +cht.sh. To do so, hit `KE` or run `:CheatError`. + +By default, the answer will be displayed on the cheat buffer, to change this +behavior : + + let g:CheatSheetDefaultMode = x + +Where x is : + ++ 0 : Cheat buffer (default) ++ 1 : Replace current line (sounds like a very bad idea) ++ 2 : Use the pager ++ 3 : Append answer below current line (sounds like a bad idea) + +##### Error providers + +Currently errors are search from the quickfix, then from syntastic errors. +To change this order : + + let g:CheatSheetProviders = ['syntastic', 'quickfix'] + +You can easily add an error provider in 5 steps : + +1. Copy the file `cheat.sh/autoload/cheat/providers/quickfix.vim` to +`cheat.sh/autoload/cheat/providers/myprovider.vim` +2. Adapt and rename the function (only change quickfix in the name), it must +return the error string without special chars or an empty string if there are +no errors / warning +3. Add your provider name (filename) to the `CheatSheatProvider` list in +`cheat.sh/autoload/cheat/providers.vim` +4. Test it +5. Do a merge request on [gitlab](https://gitlab.com/dbeniamine/cheat.sh-vim/) + +##### Syntastic hooks + +Cheat.sh-vim uses syntastic hooks to retrieve the error list, if you also need +to use synstastic hook, make sure that your function calls ours with the initial +error list : + + function SyntasticCheckHook(errors) + call cheat#providers#syntastic#Hook(a:errors) + " Do whatever you want to do + endfunction + +#### Navigate + +Once you have called on of these commands, you can navigate through questions, +answers and related with the following mappings : + ++ `KQN` Next Question ++ `KAN` Next Answer ++ `KSN` Next "See also" ++ `KHN` Next in history ++ `KQP` Previous Question ++ `KAP` Previous Answer ++ `KSP` Previous "See also" ++ `KHP` Previous in history + +In the cheat buffer, the following mappings are also available : + ++ `h` Previous Answer ++ `j` Next Question ++ `k` Previous Question ++ `l` Next Answer ++ `H` Previous history ++ `J` Next "See also" ++ `K` Previous "See also" ++ `L` Next history + + +You can also directly use the function : + + :call cheat#navigate(delta, type) + +Where delta is a numeric value for moving (1, or -1 for next or previous) And +type is one of : `'Q'`, `'A'`, `'S'`, `H` (history), and `C` (replay last +query, toggling comments). + +For instance : + + :call cheat#navigate(-3, 'A') + +goes back three answers before the current + +When navigating, the same mode (pager, buffer, replace) is used as for the last +request. + +#### Notes + ++ `` is usually '\'. ++ **This plugin is still in beta, Replace mode might remove some of your code, +use with caution.** ++ For more info on cheat sheet sources, see +[cheat.sh](https://github.com/chubin/cheat.sh). + +## Install + +### Vizardry + +If you have [Vizardry](https://github.com/dbeniamine/vizardry) installed, you +can run from vim: + + :Invoke -u dbeniamine cheat.sh-vim + +### Vundle + +Add the following to your Vundle Plugin list (not tested, but should work) : + + Plugin 'dbeniamine/cheat.sh-vim' + +### Pathogen install + + git clone https://github.com/dbeniamine/cheat.sh-vim.git ~/.vim/bundle/cheat.sh-vim + +### Quick install + + git clone https://github.com/dbeniamine/cheat.sh-vim.git + cd cheat.sh-vim/ + cp -r ./* ~/.vim + +## Configuration + +Every parameter used to retrieve and display the cheat sheet can be changed, to +do so, just put the following in you vimrc and ajust to your needs (these are +the default values that will be used if you do not change them) : + + " Vim command used to open new buffer + let g:CheatSheetReaderCmd='new"' + + " Cheat sheet file type + let g:CheatSheetFt='markdown' + + " Program used to retrieve cheat sheet with its arguments + let g:CheatSheetUrlGetter='curl --silent' + + " Flag to add cookie file to the query + let g:CheatSheetUrlGetterIdFlag='-b' + + " cheat sheet base url + let g:CheatSheetBaseUrl='https://cht.sh' + + " cheat sheet settings do not include style settings neiter comments, + " see other options below + let g:CheatSheetUrlSettings='q' + + " cheat sheet pager + let g:CheatPager='less -R' + + " pygmentize theme used for pager output, see :CheatPager :styles-demo + let g:CheatSheetPagerStyle=rrt + + " Show comments in answers by default + " (setting this to 0 means giving ?Q to the server) + let g:CheatSheetShowCommentsByDefault=1 + + " cheat sheet buffer name + let g:CheatSheetBufferName="_cheat" + + " Default selection in normal mode (line for whole line, word for word under cursor) + let g:CheatSheetDefaultSelection="line" + + " Default query mode + " 0 => buffer + " 1 => replace (do not use or you might loose some lines of code) + " 2 => pager + " 3 => paste after query + " 4 => paste before query + let g:CheatSheetDefaultMode=0 + + Path to cheat sheet cookie + let g:CheatSheetIdPath=expand('~/.cht.sh/id') + + + +You can also disable the mappings (see plugin/cheat.vim to redo the mappings +manually) + + let g:CheatSheetDoNotMap=1 + +To disable the replacement of man by cheat sheets : + + Let g:CheatDoNotReplaceKeywordPrg=1 + +## License + +This plugin is distributed under GPL Licence v3.0, see +https://www.gnu.org/licenses/gpl.txt + +The demo are creative Commons, CC-SA Igor Chubin. diff --git a/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat.vim b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat.vim new file mode 100644 index 0000000..0ee84e8 --- /dev/null +++ b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat.vim @@ -0,0 +1,408 @@ +" Vim plugin for accessing cheat sheets from cheat.sh. +" Maintainer: David Beniamine +" +" Copyright (C) 2018 David Beniamine. All rights reserved. +" +" This program is free software: you can redistribute it and/or modify +" it under the terms of the GNU General Public License as published by +" the Free Software Foundation, either version 3 of the License, or +" (at your option) any later version. +" +" This program is distributed in the hope that it will be useful, +" but WITHOUT ANY WARRANTY; without even the implied warranty of +" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +" GNU General Public License for more details. +" +" You should have received a copy of the GNU General Public License +" along with this program. If not, see . + +let save_cpo = &cpo +set cpo&vim + +" Vim command used to open new buffer +if(!exists("g:CheatSheetReaderCmd")) + let g:CheatSheetReaderCmd='new' +endif + +" Cheat sheet file type +if(!exists("g:CheatSheetFt")) + let g:CheatSheetFt='markdown' +endif + +" Program used to retrieve cheat sheet with its arguments +if(!exists("g:CheatSheetUrlGetter")) + let g:CheatSheetUrlGetter='curl --silent' +endif + +" cheat sheet settings +if(!exists("g:CheatSheetUrlSettings")) + let g:CheatSheetUrlSettings='q' +endif + +" cheat sheet pager +if(!exists("g:CheatPager")) + let g:CheatPager='less -R' +endif + +" cheat sheet buffer name +if(!exists("g:CheatSheetBufferName")) + let g:CheatSheetBufferName="_cheat" +endif + +" Default selection (lines or word) +if(!exists("g:CheatSheetDefaultSelection")) + let g:CheatSheetDefaultSelection="line" +endif + +" Show comments in answers by default +if(!exists("g:CheatSheetShowCommentsByDefault")) + let g:CheatSheetShowCommentsByDefault=1 +endif + +if(!exists("s:isNeovim")) + redir => ver + silent version + redir END + let s:isNeovim = (match(ver, 'NVIM')!=-1) +endif + +let s:history=[] +let s:histPos=-1 + + +" Returns the url to query +function! s:getUrl(query, asList) + let url=g:CheatSheetBaseUrl.'/'.a:query + let getter=g:CheatSheetUrlGetter." ".cheat#session#urloptions() + if(a:asList==0) + return getter." ".shellescape(url) + endif + return add(split(getter),url) +endfunction + +" Print nice messages +function! cheat#echo(msg,type) + if a:type=='e' + let group='ErrorMsg' + elseif a:type=='w' + let group='WarningMsg' + elseif a:type=='q' + let group='Question' + elseif a:type=='s' + let group='Define' + elseif a:type=='D' + if !exists("g:CheatDebug") + return + else + let group='WarningMsg' + endif + else + let group='Normal' + endif + execute 'echohl '.group + echo a:msg + echohl None +endfunction + +" Returns the list of available options +function! cheat#completeargs(A, L, P) + call cheat#echo('Retrieving list of available cheat sheets', 'S') + if(match(a:A, '.*/.*$')!=-1) + let cat=substitute(a:A, '\(.*/\).*', '\1', '') + let url=cat.':list' + else + let url=':list' + let cat='' + endif + silent return substitute(system(s:getUrl(url, 0)), + \'\(\n\|^\)\(\S\)', '\1'.cat.'\2', 'g') +endfunction + +function! s:lastRequest() + return s:history[s:histPos] +endfunction + +" Lookup for previous or next answer (+- a:delta) +function! cheat#navigate(delta, type) + if (! (a:delta =~# '^-\?\d\+$')) + call cheat#echo('Delta must be a number', 'e') + return + endif + + if(s:histPos <0 || empty(s:lastRequest())) + call cheat#echo('You must first call :Cheat or :CheatReplace', 'e') + return + endif + + " Move in history if required + if(a:type=='H') + let nextPos=s:histPos+a:delta + if(nextPos<0) + call cheat#echo('Cannot go into the future', 'e') + return + elseif(nextPos>=len(s:history)) + call cheat#echo('No more history', 'e') + return + endif + let s:histPos=nextPos + " Work directly on request from history, no copy + let s:isInHistory=1 + let request = s:lastRequest() + else + " Retrieve request + let s:isInHistory=0 + let request = copy(s:lastRequest()) + endif + + + if(request.isCheatSheet == 1) + call cheat#echo('Navigation is not implemented for cheat sheets', 'e') + return + endif + + " Change parameters + if(a:type == 'Q') + let request.q=max([0,request.q+a:delta]) + let request.a=0 + let request.s=0 + elseif(a:type == 'A') + let request.a=max([0,request.a+a:delta]) + let request.s=0 + elseif(a:type == 'S') + let request.s=max([0,request.s+a:delta]) + elseif(a:type == 'C') + let request.comments=(request.comments+1)%2 + elseif(a:type !='H') + call cheat#echo('Unknown navigation type "'.a:type.'"', 'e') + return + endif + + " Remove previously replaced lines + if(request.mode == 1 || request.mode == 3 || request.mode == 4) + let pos=request.appendpos+1 + execute ':'.pos + execute 'd'.request.numLines + endif + + let request.numLines=0 + call s:handleRequest(request) +endfunction + +" Handle a cheat query +" Args : +" query : the text query +" froml : the first line (if no queries) +" tol : the last line (if no queries) +" range : the number of selected words in visual mode +" mode : the output mode : 0=> buffer, 1=> replace, 2=>pager, +" 3=> paste after, 4 => paste before, 5 => error +" isplusquery : should we do a Ft query +function! cheat#cheat(query, froml, tol, range, mode, isplusquery) range + if(a:mode ==2 && s:isNeovim == 1) + call cheat#echo('Pager mode does not work with neovim'. + \' use KB instead', 'e') + return + endif + if(a:mode == 5 ) + let query=cheat#providers#GetError() + if(query == "") + call cheat#echo("No error dectected, have you saved your buffer ?", 'w') + return "" + endif + else + if(a:query == "") + let query=s:get_visual_selection(a:froml,a:tol, a:range) + else + let query=a:query + endif + endif + + " Reactivate history if required + let s:isInHistory=0 + call s:handleRequest(cheat#requests#init(query,a:mode, a:isplusquery != '!')) +endfunction + +function! cheat#howin(query, froml, tol, range) + let mode=g:CheatSheetDefaultMode + if(mode ==2 && s:isNeovim == 1) + call cheat#echo('Pager mode does not work with neovim'. + \' use KB instead', 'e') + return + endif + let query = split(a:query) + let ft=query[0] + if(len(query) == 1) + let query=s:get_visual_selection(a:froml,a:tol, a:range) + else + let query=join(query[1:], ' ') + endif + " Reactivate history if required + let s:isInHistory=0 + let req=cheat#requests#init(query,mode,0) + let req.ft=ft + call s:handleRequest(req) +endfunction + +" Prints a message about the query to be prossessed +function! s:displayRequestMessage(request) + if(a:request.isCheatSheet == 1) + let message='Looking for cheat sheet: "'.a:request.query.'" from '. + \g:CheatSheetBaseUrl + else + let message='Sending query : "'.a:request.query.'" to '. + \g:CheatSheetBaseUrl + let more='' + if(a:request.s!=0) + let more.=", related number: ".a:request.s + endif + if(a:request.a!=0) + let more.=", answer number: ".a:request.a + endif + if(a:request.q!=0) + let more.=", question number: ".a:request.q + endif + if(more != '') + let message.=" Requesting (".substitute(more, + \'^, ', '', '').")" + endif + endif + call cheat#echo(message. " this may take some time", 'S') +endfunction + +function! cheat#createOrSwitchToBuffer() + let winnr = bufwinnr('^'.g:CheatSheetBufferName.'$') + " Retrieve buffer or create it + if ( winnr >= 0 ) + execute winnr . 'wincmd w' + else + execute ':'.g:CheatSheetReaderCmd. + \ ' +set\ bt=nofile\ bufhidden=wipe '. + \g:CheatSheetBufferName + if(!exists("g:CheatSheetDoNotMap") || g:CheatSheetDoNotMap ==0) + nnoremap h :call cheat#navigate(-1,'A') + nnoremap j :call cheat#navigate(1,'Q') + nnoremap k :call cheat#navigate(-1,'Q') + nnoremap l :call cheat#navigate(1,'A') + + nnoremap H :call cheat#navigate(-1,'H') + nnoremap J :call cheat#navigate(1,'S') + nnoremap K :call cheat#navigate(-1,'S') + nnoremap L :call cheat#navigate(1,'H') + + endif + endif +endfunction + +" Add request to history if not already in +function! s:saveRequest(request) + if(s:isInHistory == 0 ) + let s:histPos+=1 + if(s:histPos < len(s:history)) + " We are back in history, remove meaning less nexts + call remove(s:history, s:histPos, -1) + endif + call insert(s:history, a:request, s:histPos) + endif +endfunction + +" Launch the request with jobs if available +function! s:handleRequest(request) + call s:saveRequest(a:request) + let s:oldbuf=winnr() + let query=cheat#requests#toquery(a:request) + + if(a:request.mode == 2) + " Pager + let curl=s:getUrl(query, 0) + execute ":silent !".curl.' | '.g:CheatPager + redraw! + return + elseif(a:request.mode == 0) + " Prepare buffer + call cheat#createOrSwitchToBuffer() + execute 'normal ggdG' + " Update ft + let ft=a:request.ft + execute ': set ft='.ft + execute s:oldbuf . 'wincmd w' + redraw! + endif + + call s:displayRequestMessage(a:request) + let s:lines = [] + let has_job=has('job') + let curl=s:getUrl(query, has_job) + if(has_job) + " Asynchronous curl + let s:job = job_start(curl, + \ {"callback": "cheat#handleRequestOutput", + \ "close_cb": "cheat#printAnswer"}) + else + " Synchronous curl + let s:lines=systemlist(curl) + call cheat#printAnswer(0) + redraw! + endif +endfunction + +function! cheat#printAnswer(channel) + let request=s:lastRequest() + if(request.mode == 0) + call cheat#createOrSwitchToBuffer() + endif + call append(request.appendpos, s:lines) + let request.numLines=len(s:lines) + execute ':'.request.appendpos + if(request.mode == 0) + normal Gddgg + endif + execute s:oldbuf . 'wincmd w' + " Clean stuff + if(exists('s:job')) + call job_stop(s:job) + unlet s:job + endif + unlet s:lines +endfunction + +" Read answer line by line +function! cheat#handleRequestOutput(channel, msg) + if(a:msg == "DETACH") + return + endif + call add(s:lines, a:msg) +endfunction + +" Returns the text that is currently selected +function! s:get_visual_selection(froml, tol, range) + " Why is this not a built-in Vim script function?! + if(a:range<=0) + if(g:CheatSheetDefaultSelection == "line") + let ret=getline(a:froml) + else + let ret=expand("") + endif + else + "visual mode + let [line_start, column_start] = getpos("'<")[1:2] + let [line_end, column_end] = getpos("'>")[1:2] + let lines = getline(line_start, line_end) + if len(lines) == 0 + return '' + endif + let lines[-1] = lines[-1][: column_end - (&selection == 'inclusive' ? 1 : 2)] + let lines[0] = lines[0][column_start - 1:] + let ret= join(lines, " ") + endif + return substitute(ret,'^\s*', '', '') +endfunction + +function! cheat#toggleComments() + let g:CheatSheetShowCommentsByDefault=( + \g:CheatSheetShowCommentsByDefault+1)%2 + call cheat#echo('Setting comments to : '.g:CheatSheetShowCommentsByDefault, + \ 'S') +endfunction + +let cpo=save_cpo +" vim:set et sw=4: diff --git a/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/frameworks.vim b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/frameworks.vim new file mode 100644 index 0000000..6e8c053 --- /dev/null +++ b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/frameworks.vim @@ -0,0 +1,128 @@ +" Vim plugin for accessing cheat sheets from cheat.sh. +" Maintainer: David Beniamine +" +" Copyright (C) 2018 David Beniamine. All rights reserved. +" +" This program is free software: you can redistribute it and/or modify +" it under the terms of the GNU General Public License as published by +" the Free Software Foundation, either version 3 of the License, or +" (at your option) any later version. +" +" This program is distributed in the hope that it will be useful, +" but WITHOUT ANY WARRANTY; without even the implied warranty of +" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +" GNU General Public License for more details. +" +" You should have received a copy of the GNU General Public License +" along with this program. If not, see . + +let save_cpo = &cpo +set cpo&vim + +if(!exists("g:CheatSheetFrameworks")) + let g:CheatSheetFrameworks = { + \ 'python' : [ 'python', 'django', ], + \ 'javascript' : ['javascript', 'node', 'angular', 'jquery'], + \ 'php' : ['php', 'symfony', 'yii', 'zend'], + \} +endif + +if(!exists("g:CheatSheetFrameworkDetectionMethods")) + let g:CheatSheetFrameworkDetectionMethods = { + \'django' : { 'type' : 'file', 'value' : 'manage.py' }, + \'symfony' : { 'type' : 'file', 'value' : 'symfony.phar' }, + \'jquery' : {'type' :'search', 'value' : 'jquery.*\.js'}, + \} +endif + +if(!exists("b:CheatSheetCurrentFramework")) + let b:CheatSheetCurrentFramework = 0 +endif + +function! s:Detectfromfile(value, fm) + let dir=expand('%:p:h') + " Forward search + silent let ret=system('find '.shellescape(dir).' -name '. + \shellescape(a:value).' 2>/dev/null') + " Backward search + if ret == "" + let dirs="" + let parent=substitute(dir, '/[^/]*$', '', '') + while parent != "" + let dirs.=" ".shellescape(parent) + let parent=substitute(parent, '/[^/]*$', '', '') + endwhile + silent let ret=system('find '.dirs.' -maxdepth 1 -name '. + \shellescape(a:value).' 2>/dev/null') + endif + return ret != "" +endfunction + +function! s:Detectfromsearch(value, fm) + return search(a:value, 'cnw') +endfunction + +function! s:Detectfromfunc(value, fm) + return function(a:value)(a:fm) +endfunction + +function! cheat#frameworks#autodetect(print) + if(!has_key(g:CheatSheetFrameworks, &ft)) + return + endif + let framework = &ft + " Try autodetect + for fm in g:CheatSheetFrameworks[&ft] + if(has_key(g:CheatSheetFrameworkDetectionMethods, fm) && + \ function("s:Detectfrom". + \g:CheatSheetFrameworkDetectionMethods[fm].type)( + \g:CheatSheetFrameworkDetectionMethods[fm].value, fm) + \) + let framework=fm + break + endif + endfor + " Set framework + let b:CheatSheetCurrentFramework = index(g:CheatSheetFrameworks[&ft], + \framework) + + if(a:print) + call cheat#echo('Language for cheat queries changed to : "'. + \cheat#frameworks#getFt().'"', 's') + endif +endfunction + +" Try to use a framework if defined or return current filetype +function! cheat#frameworks#getFt() + try + let ft=g:CheatSheetFrameworks[&ft][b:CheatSheetCurrentFramework] + catch + let ft=&ft + endtry + return ft +endfunction + +" Switch to next filetype +function! cheat#frameworks#cycle(num) + if(!has_key(g:CheatSheetFrameworks, &ft)) + call cheat#echo('No frameworks define for "'.&ft. + \'", see :help cheat.sh-frameworks', 'E') + return + endif + + if(a:num == 0) + " Reset + let b:CheatSheetCurrentFramework = 0 + else + if(abs(b:CheatSheetCurrentFramework) >= len(g:CheatSheetFrameworks[&ft])) + let b:CheatSheetCurrentFramework = 0 + endif + let b:CheatSheetCurrentFramework += a:num + endif + + call cheat#echo('Language for cheat queries changed to : "'. + \cheat#frameworks#getFt().'"', 's') +endfunction + +let cpo=save_cpo +" vim:set et sw=4: diff --git a/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/providers.vim b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/providers.vim new file mode 100644 index 0000000..6dadfd8 --- /dev/null +++ b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/providers.vim @@ -0,0 +1,80 @@ +" Vim plugin for accessing cheat sheets from cheat.sh. +" Maintainer: David Beniamine +" +" Copyright (C) 2018 David Beniamine. All rights reserved. +" +" This program is free software: you can redistribute it and/or modify +" it under the terms of the GNU General Public License as published by +" the Free Software Foundation, either version 3 of the License, or +" (at your option) any later version. +" +" This program is distributed in the hope that it will be useful, +" but WITHOUT ANY WARRANTY; without even the implied warranty of +" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +" GNU General Public License for more details. +" +" You should have received a copy of the GNU General Public License +" along with this program. If not, see . + +let save_cpo = &cpo +set cpo&vim + +" Providers +if(!exists("g:CheatSheetProviders")) + let g:CheatSheetProviders=['quickfix', 'syntastic'] +endif + +" Returns the first error on the current buffer +function! cheat#providers#GetErrorFromList(errors) + if(empty(a:errors)) + return '' + endif + let line=getpos('.')[1] + let firstErr="" + let error="" + for err in a:errors + if(error == "" && (err.type ==? "E" || + \ err.type=='' && match(err.text, 'ERROR\c')!=-1)) + " Save first error + let error = err.text + endif + if(err.lnum == line) + " Found something on currentline + let error=err.text + break + endif + endfor + if(error == "") + " Default to first line of errors + let error=a:errors[0].text + endif + return error +endfunction + +function! s:PrepareQuery(text) + " Remove ending [blabla], replace space by plus, sanitize, trim + + return substitute(substitute(substitute(substitute(a:text, + \'\[[^\]]*\]$\|([^)]*)', '', 'g'), + \'\s\s*', '+', 'g'), + \ "‘\\|’\\|\\[\\|\\]\\|\"\\|'\\|(\\|)", '', 'g'), + \'^+*\|+*$', '', 'g') +endfunction + +function! cheat#providers#GetError() + for provider in g:CheatSheetProviders + let query=function('cheat#providers#'.provider.'#GetError')() + if(query != "") + return s:PrepareQuery(query) + endif + endfor + return "" +endfunction + +function! cheat#providers#TestPrepareQuery() + let text="'bla' bli (remove) b‘lo’ [blu] \"plop\" (remove) [also to remove]" + echo text + echo s:PrepareQuery(text) +endfunction + +let cpo=save_cpo +" vim:set et sw=4: diff --git a/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/providers/quickfix.vim b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/providers/quickfix.vim new file mode 100644 index 0000000..b6c4a2d --- /dev/null +++ b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/providers/quickfix.vim @@ -0,0 +1,27 @@ +" Vim plugin for accessing cheat sheets from cheat.sh. +" Maintainer: David Beniamine +" +" Copyright (C) 2018 David Beniamine. All rights reserved. +" +" This program is free software: you can redistribute it and/or modify +" it under the terms of the GNU General Public License as published by +" the Free Software Foundation, either version 3 of the License, or +" (at your option) any later version. +" +" This program is distributed in the hope that it will be useful, +" but WITHOUT ANY WARRANTY; without even the implied warranty of +" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +" GNU General Public License for more details. +" +" You should have received a copy of the GNU General Public License +" along with this program. If not, see . + +let save_cpo = &cpo +set cpo&vim + +function! cheat#providers#quickfix#GetError() + return cheat#providers#GetErrorFromList(getqflist()) +endfunction + +let cpo=save_cpo +" vim:set et sw=4: diff --git a/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/providers/syntastic.vim b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/providers/syntastic.vim new file mode 100644 index 0000000..e77eb30 --- /dev/null +++ b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/providers/syntastic.vim @@ -0,0 +1,32 @@ +" Vim plugin for accessing cheat sheets from cheat.sh. +" Maintainer: David Beniamine +" +" Copyright (C) 2018 David Beniamine. All rights reserved. +" +" This program is free software: you can redistribute it and/or modify +" it under the terms of the GNU General Public License as published by +" the Free Software Foundation, either version 3 of the License, or +" (at your option) any later version. +" +" This program is distributed in the hope that it will be useful, +" but WITHOUT ANY WARRANTY; without even the implied warranty of +" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +" GNU General Public License for more details. +" +" You should have received a copy of the GNU General Public License +" along with this program. If not, see . + +let g:save_cpo = &cpo +set cpo&vim + +let s:errors=[] + +function! cheat#providers#syntastic#GetError() + return cheat#providers#GetErrorFromList(s:errors) +endfunction + +function! cheat#providers#syntastic#Hook(errors) + let s:errors=a:errors +endfunction + +" vim:set et sw=4: diff --git a/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/requests.vim b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/requests.vim new file mode 100644 index 0000000..8f77dd3 --- /dev/null +++ b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/requests.vim @@ -0,0 +1,129 @@ +" Vim plugin for accessing cheat sheets from cheat.sh. +" Maintainer: David Beniamine +" +" Copyright (C) 2018 David Beniamine. All rights reserved. +" +" This program is free software: you can redistribute it and/or modify +" it under the terms of the GNU General Public License as published by +" the Free Software Foundation, either version 3 of the License, or +" (at your option) any later version. +" +" This program is distributed in the hope that it will be useful, +" but WITHOUT ANY WARRANTY; without even the implied warranty of +" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +" GNU General Public License for more details. +" +" You should have received a copy of the GNU General Public License +" along with this program. If not, see . + +let save_cpo = &cpo +set cpo&vim + +" Transforms a high level request into a query ready to be processed by cht.sh +function! cheat#requests#toquery(request) + if(a:request.useFt == 1) + let query='vim:'.a:request.ft.'/' + else + let query='' + endif + if(a:request.isCheatSheet == 0) + let query.=substitute(a:request.query, ' ', '+', 'g') + " There must be a + in the query + if(match(query, '+') == -1) + let query.='+' + endif + let query.='/'.a:request.q.'/'.a:request.a.','.a:request.s + else + let query.=a:request.query + endif + let query.='?' + let query.=g:CheatSheetUrlSettings + " Color pager requests + if(a:request.mode!=2) + let query.='T' + endif + if(a:request.comments==0) + let query.='Q' + endif + if(exists("g:CheatSheetPagerStyle") && a:request.mode==2) + let query.="&style=".g:CheatSheetPagerStyle + endif + return query +endfunction + +" Parse the query to update the given request +function! s:parseQuery(query, request) + let opts=split(a:query, '/') + if(len(opts) >= 2) + let a:request.ft=opts[0] + let a:request.query=opts[1] + else + let a:request.ft=g:CheatSheetFt + let a:request.query=opts[0] + let a:request.useFt = 0 + endif + if(len(opts) >=3) + let a:request.q=opts[2] + else + let a:request.q=0 + endif + if(len(opts) >=4) + " Remove see related if present + let a:request.a=substitute(opts[3], '\(.*\),\+.*$', '\1', '') + else + let a:request.a=0 + endif + " Remove see related uses , not / + if(match(a:query, ',\d\+$')!=-1) + let a:request.s=substitute(a:query, '^.*,\(\d\+\)$', '\1', '') + else + let a:request.s=0 + endif + if(match(a:query,'+')!=-1) + let a:request.isCheatSheet=0 + let a:request.useFt = 1 + else + let a:request.isCheatSheet=1 + endif + return a:request +endfunction + + +" Prepare an empty request +function! cheat#requests#init(query, mode, parseQuery) + let request={ + \'a' : 0, + \'q' : 0, + \'s' : 0, + \'comments' : g:CheatSheetShowCommentsByDefault, + \'ft' : cheat#frameworks#getFt(), + \'isCheatSheet' : 0, + \'appendpos' : 0, + \'numLines' : 0, + \'mode' : g:CheatSheetDefaultMode, + \'useFt' : 1, + \'query' : a:query, + \} + if(a:mode != 5) + let request.mode=a:mode + endif + + " Set append pos / remove query if required + if(request.mode == 1) + call cheat#echo('removing lines', 'e') + normal dd + let request.appendpos=getcurpos()[1]-1 + elseif(request.mode == 3) + let request.appendpos=getcurpos()[1] + elseif(request.mode == 4) + let request.appendpos=getcurpos()[1]-1 + endif + + if(a:parseQuery) + call s:parseQuery(a:query, request) + endif + return request +endfunction + +let cpo=save_cpo +" vim:set et sw=4: diff --git a/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/session.vim b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/session.vim new file mode 100644 index 0000000..b0c60d7 --- /dev/null +++ b/etc/soft/nvim/+plugins/cheat.sh-vim/autoload/cheat/session.vim @@ -0,0 +1,115 @@ +" Vim plugin for accessing cheat sheets from cheat.sh. +" Maintainer: David Beniamine +" +" Copyright (C) 2018 David Beniamine. All rights reserved. +" +" This program is free software: you can redistribute it and/or modify +" it under the terms of the GNU General Public License as published by +" the Free Software Foundation, either version 3 of the License, or +" (at your option) any later version. +" +" This program is distributed in the hope that it will be useful, +" but WITHOUT ANY WARRANTY; without even the implied warranty of +" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +" GNU General Public License for more details. +" +" You should have received a copy of the GNU General Public License +" along with this program. If not, see . + +let save_cpo = &cpo +set cpo&vim + +" Flag to add cookie file to the query +if(!exists("g:CheatSheetUrlGetterIdFlag")) + let g:CheatSheetUrlGetterIdFlag='-b' +endif + +" Path to cheat sheet cookie +if(!exists("g:CheatSheetIdPath")) + let g:CheatSheetIdPath=expand('~/.cht.sh/id') +endif + +" Retrieve id from cookie +function! s:setIdFromCookie() + try + let s:id=substitute(join(readfile(g:CheatSheetIdPath), ' '), + \'^.*\s\s*\(\S\S*\)$', '\1', '') + catch /^Vim\%((\a\+)\)\=:E484/ + let s:id="" + endtry +endfunction + +" Save cookie file +function! s:writeCookie() + let dir=fnamemodify(g:CheatSheetIdPath, ':p:h') + if( !isdirectory(dir)) + if(s:id == "") + return + endif + call mkdir(dir, 'p') + endif + if(s:id == "") + let lines = [] + else + let url=substitute(g:CheatSheetBaseUrl, '^https*://', '', '') + let lines = [ '#', '', + \'.'.url.' TRUE / TRUE 0 id '.s:id ] + endif + call writefile(lines, g:CheatSheetIdPath) +endfunction + +" Local id +if(!exists("s:id") || s:id == "") + call s:setIdFromCookie() +endif + +" Random 64 bytes id +function! s:generateId() + return system('hexdump -e \"%x\" /dev/urandom | head -c 64') +endfunction + +" Add / set session id +function! cheat#session#id(id, bang) + if(s:id != "" && a:bang == "" && a:id != "remove") + call cheat#echo('Id is already set', 'W') + call cheat#echo('To erase id use :CheatId! [newid]', 'W') + call cheat#echo('To remove id use :Cheat remove', 'W') + endif + if(a:id == "") + if(s:id == "" || a:bang == "!") + let s:id=s:generateId() + endif + else + if(match(a:id, '^[a-fA-F0-9]\{64}$') ==0 && + \ (s:id=="" || a:bang == "!")) + let s:id=a:id + elseif(a:id == "remove") + let s:id="" + else + call cheat#echo("Id should be 64 hexadecimal chars", 'E') + return + endif + endif + call cheat#echo("Id : ".s:id, 's') + call s:writeCookie() +endfunction + +" Replay last query +function! cheat#session#last() + if(s:id != "") + call cheat#cheat(':last', -1, -1, -1, g:CheatSheetDefaultMode, '0') + else + call cheat#navigate('0', 'H') + endif +endfunction + +" Generate id options for urlgetter +function! cheat#session#urloptions() + if(s:id != "") + return g:CheatSheetUrlGetterIdFlag.' '.g:CheatSheetIdPath + endif + return "" +endfunction + +let cpo=save_cpo +" vim:set et sw=4: diff --git a/etc/soft/nvim/+plugins/cheat.sh-vim/doc/cheat.txt b/etc/soft/nvim/+plugins/cheat.sh-vim/doc/cheat.txt new file mode 100644 index 0000000..b728a69 --- /dev/null +++ b/etc/soft/nvim/+plugins/cheat.sh-vim/doc/cheat.txt @@ -0,0 +1,314 @@ +*cheat.sh-vim* ~ + +This is a vim plugin to browse cheat sheet from +cheat.sh (https://github.com/chubin/cheat.sh) directly from vim. + +=============================================================================== +Features *cheat.sh-features* ~ + + ++ Browse existing cheat sheets from cheat.sh directly from vim ++ Get answers on any programming question directly on your vim with simple mappings ++ Answers depends of your current filetype or framework see |cheat.sh-frameworks| ++ Send compilation / syntax error to cht.sh and get answers ++ Quick navigation through answers ++ Everything is configurable + +How to use it *cheat.sh-how-to-use* ~ + +The easiest way to use this plugin is to use one of the following mappings : +The easiest way to use this plugin is to use one of the following mappings : + ++ `K` get answer on the word under the cursor or the selection on a pager (this +feature requires vim >= 7.4.1833, you can check if have the right version with : +`:echo has("patch-7.4.1833")`) ++ `KK` same as `K` but works on lines or visual selection (not working +on neovim, because they killed interactive commands with `:!`) ++ `KB` get the answer on a special buffer ++ `KR` Replace your question by the answer ++ `KP` Past the answer below your question ++ `KC` Replay last query, toggling comments ++ `KE` Send first error to cht.sh ++ `C` Toggle showing comments by default see |cheat.sh-configuration| ++ `KL` Replay last query + +The plugins also provides four main commands : +> + :Cheat + :CheatReplace + :CheatPast + :CheatPager +< ++ These commands takes 0 or 1 argument. ++ If you give no argument, it will send the language of the current buffer and +the visual selection (or the current line / word in `normal` mode) as a plus +query to cheat.sh and show the answer in a new buffer (`:Cheat`), in place of +your question (`:CheatReplace`) or in a pager (`:CheatPager`). ++ If one argument is given, you can complete it from a list of available cheat +sheets or write your own [query](https://github.com/chubin/cheat.sh#search). ++ They also take a `bang` that make same transform the query into a plus query: +for instance : `:Cheat! factory` is the same as `:Cheat &ft/factory+`. + +HowIn *cheat.sh-howin* ~ + +The `:HowIn` command takes exaclty one argument. + +If the argument is one word, it is interpreted as a filetype (language), and +the current line (or word, depending on |cheat.sh-configuration|) is sent as a +query for this given language. +Else the first word of the query should be a filetype. + +Examples : + +> + # Current postion in the buffer : + with open('foo') as f: + :HowIn javascript +< +Or +> + :Howin javascript open file +< + + +Frameworks *cheat.sh-frameworks* ~ + +When you open a buffer, cheat.sh-vim will try to guess if you are using a +framework (see |cheat.sh-framework-detection|) and if a framework is found, it +will send queries using your framework instead of your filetype. + +There are also some mappings to change the current framework : + + + `Kt` : Use filetype instead of framework + + `KT` : Use autodetected framework + + `Kf` : Use next defined framework for current filetype + + `KF` : Use previous defined framework for current filetype + +The available Frameworks can be overriden with the following code (adapt to +your needs) : +> + let g:CheatSheetFrameworks = { + \ 'python' : ['python', 'django', ], + \ 'javascript' : ['javascript', 'node', 'angular', 'jquery'], + \ 'php' : ['php', 'symphony', 'yii', 'zend'], + \} + +As you can see the list is far from being exhaustive, please contribute if you +modify it (see below). + + *cheat.sh-frameworks-detection* + +This functionnality is in early stage and help is wanted to improve it. +To detect framework, the plugin go through the list of defined framework for +the current filetype. The following dictionnary tells the plugin how to detect +a few frameworks. +> + let g:CheatSheetFrameworkDetectionMethods = { + \'django' : { 'type' : 'file', 'value' : 'manage.py' }, + \'symfony' : { 'type' : 'file', 'value' : 'symfony.phar' }, + \'jquery' : {'type' :'search', 'value' : 'jquery.*\.js'}, + \} + +This dictionnary can be overriden by the user. + +There are three types of detections : + +1. 'file' : 'value' is an argument for the `find` command to locate a file +`find . -name "value"` +2. 'search', 'value' is a pattern that should be present in the current file +3. 'func' : 'value' is the name of a user defined function which should return +something true if the framework is detected. The function takes one argument +which is the name of the framework we are currently testing for. + +Please report any contribution on the followin issue, or do MR (PR) on gitlab +(resp github). + +https://gitlab.com/dbeniamine/cheat.sh-vim/issues/51#note_95268282 + +KE` or run `:CheatError`. + +By default, the answer will be displayed on the cheat buffer, to change this +behavior : +> + let g:CheatSheetDefaultMode = x +< +Where x is : + ++ 0 : Cheat buffer (default) ++ 1 : Replace current line (sounds like a very bad idea) ++ 2 : Use the pager ++ 3 : Append answer below current line (sounds like a bad idea) + +Error providers *cheat.sh-errors-providers* ~ + +Currently errors are search from the quickfix, then from syntastic errors. +To change this order : +> + let g:CheatSheetProviders = ['syntastic', 'quickfix'] +< + +You can easily add an error provider in 5 steps : + +1. Copy the file `cheat.sh/autoload/cheat/providers/quickfix.vim` to +`cheat.sh/autoload/cheat/providers/myprovider.vim` +2. Adapt and rename the function (only change quickfix in the name), it must +return the error string without special chars or an empty string if there are +no errors / warning +3. Add your provider name (filename) to the `CheatSheatProvider` list in +`cheat.sh/autoload/cheat/providers.vim` +4. Test it +5. Do a merge request on [gitlab](https://gitlab.com/dbeniamine/cheat.sh-vim/) + +Syntastic hooks *cheat.sh-syntastic-hook* ~ + +Cheat.sh-vim uses syntastic hooks to retrieve the error list, if you also need +to use synstastic hook, make sure that your function calls ours with the initial +error list : + + function SyntasticCheckHook(errors) + call cheat#providers#syntastic#Hook(a:errors) + " Do whatever you want to do + endfunction + + + +Navigate *cheat.sh-navigate* ~ + +Once you have called on of these commands, you can navigate through questions, +answers and related with the following mappings : + ++ `KQN` Next Question ++ `KAN` Next Answer ++ `KSN` Next "See also" ++ `KHN` Next in history ++ `KQP` Previous Question ++ `KAP` Previous Answer ++ `KSP` Previous "See also" ++ `KHP` Previous in history + +In the cheat buffer, the following mappings are available : + ++ `h` Previous Answer ++ `j` Next Question ++ `k` Previous Question ++ `l` Next Answer ++ `H` Previous history ++ `J` Next "See also" ++ `K` Previous "See also" ++ `L` Next history + +You can also directly use the function : +> + :call cheat#navigate(delta, type) +< +Where delta is a numeric value for moving (1, or -1 for next or previous) And +type is one of : `'Q'`, `'A'`, `'S'`, `H` (history), and `C` (replay last +query, toggling comments). + +For instance : +> + :call cheat#navigate(-3, 'A') +< +goes back three answers before the current + +When navigating, the same mode (pager, buffer, replace) is used as for the last +request. + +Notes *cheat.sh-notes* ~ + ++ `` is usually '\', see || ++ **This plugin is still in beta, Replace mode might remove some of your code, +use with caution.** ++ For more info on cheat sheet sources, see +[cheat.sh](https://github.com/chubin/cheat.sh). + + +This plugin provides a `:Cheat` command to browse cheat sheets from vim. This +command takes one argument : a Cheat.sh +query (https://github.com/chubin/cheat.sh#search), and supports completion. + +For more info on cheat sheet source, see +cheat.sh (https://github.com/chubin/cheat.sh). + +============================================================================== +Configuration *cheat.sh-configuration* ~ + +Every parameter used to retrieve and display the cheat sheet can be changed, +to do so, just put the following in you vimrc and ajust to your needs (these +are the default values that will be used if you do not change them) : +> + " Vim command used to open new buffer + let g:CheatSheetReaderCmd='new"' + + " Cheat sheet file type + let g:CheatSheetFt='markdown' + + " Program used to retrieve cheat sheet with its arguments + let g:CheatSheetUrlGetter='curl --silent' + + " Flag to add cookie file to the query + let g:CheatSheetUrlGetterIdFlag='-b' + + " cheat sheet base url + let g:CheatSheetBaseUrl='https://cht.sh' + + " cheat sheet settings do not include style settings neiter comments, + " see other options below + let g:CheatSheetUrlSettings='q' + + " cheat sheet pager + let g:CheatPager='less -R' + + " pygmentize theme used for pager output, see :CheatPager :styles-demo + let g:CheatSheetPagerStyle=rrt + + " Show comments in answers by default + " (setting this to 0 means giving ?Q to the server) + let g:CheatSheetShowCommentsByDefault=1 + + " cheat sheet buffer name + let g:CheatSheetBufferName="_cheat" + + " Default selection in normal mode (line for whole line, word for word under cursor) + let g:CheatSheetDefaultSelection="line" + + " Default query mode + " 0 => buffer + " 1 => replace (do not use or you might loose some lines of code) + " 2 => pager + " 3 => paste after query + " 4 => paste before query + let g:CheatSheetDefaultMode=0 + + Path to cheat sheet cookie + let g:CheatSheetIdPath=expand('~/.cht.sh/id') + +< +You can also disable the mappings (see plugin/cheat.vim to redo the mappings +manually) +> + let g:CheatSheetDoNotMap=1 +< +To disable the replacement of man by cheat sheets : +> + Let g:CheatDoNotReplaceKeywordPrg=1 +< + +============================================================================== +Licence *cheat.sh-licence* ~ + +This plugin is distributed under GPL Licence v3.0, see +https://www.gnu.org/licenses/gpl.txt diff --git a/etc/soft/nvim/+plugins/cheat.sh-vim/plugin/cheat.vim b/etc/soft/nvim/+plugins/cheat.sh-vim/plugin/cheat.vim new file mode 100644 index 0000000..3012a44 --- /dev/null +++ b/etc/soft/nvim/+plugins/cheat.sh-vim/plugin/cheat.vim @@ -0,0 +1,174 @@ +" Vim plugin for accessing cheat sheets from cheat.sh. +" Maintainer: David Beniamine +" +" Copyright (C) 2018 David Beniamine. All rights reserved. +" +" This program is free software: you can redistribute it and/or modify +" it under the terms of the GNU General Public License as published by +" the Free Software Foundation, either version 3 of the License, or +" (at your option) any later version. +" +" This program is distributed in the hope that it will be useful, +" but WITHOUT ANY WARRANTY; without even the implied warranty of +" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +" GNU General Public License for more details. +" +" You should have received a copy of the GNU General Public License +" along with this program. If not, see . + +if exists("g:loaded_cheat_sh") + finish +endif + +let save_cpo = &cpo +set cpo&vim + +let g:loaded_cheat_sh = "v0.2" + +" Default query mode +if(!exists("g:CheatSheetDefaultMode")) + let g:CheatSheetDefaultMode=0 +endif + +" cheat sheet base url +if(!exists("g:CheatSheetBaseUrl")) + let g:CheatSheetBaseUrl='https://cht.sh' +endif + +" command definition +command! -nargs=? -bang -count -complete=custom,cheat#completeargs Cheat + \ call cheat#cheat(, , , , 0, "") + +command! -nargs=? -count CheatError + \ call cheat#cheat('', -1, -1, -1, 4, '!') + +command! -nargs=? -bang -count -complete=custom,cheat#completeargs CheatReplace + \ call cheat#cheat(, , , , 1, "") + +command! -nargs=? -bang -count -complete=custom,cheat#completeargs CheatPager + \ call cheat#cheat(, , , , 2, "") + +command! -nargs=? -bang -count -complete=custom,cheat#completeargs CheatPaste + \ call cheat#cheat(, , , , 3, "") + +command! -nargs=1 CheatNavigateQuestions call cheat#navigate(, 'Q') +command! -nargs=1 CheatNavigateAnswers call cheat#navigate(, 'A') +command! -nargs=1 CheatSeeAlso call cheat#navigate(, 'S') +command! -nargs=1 CheatHistory call cheat#navigate(, 'H') +command! -nargs=? -bang CheatId call cheat#session#id(, "") + + +command! -nargs=1 -bang -count -complete=custom,cheat#completeargs HowIn + \ call cheat#howin(, , , ) + +if((!exists("g:CheatDoNotReplaceKeywordPrg") || + \ g:CheatDoNotReplaceKeywordPrg ==0)) + if(has("patch-7.4.1833")) + set keywordprg=:CheatPager! + else + exe 'set keywordprg='.expand(':p:h').'/../scripts/chtpager.sh' + endif +endif + +if(!exists("g:CheatSheetDoNotMap") || g:CheatSheetDoNotMap ==0) + nnoremap ', '', 'g') + let res = '' + let max = 0 + let mx = '\(]\{-}>\)\|\(<\/td>\)\|\(]\{-}>\)\|\(<\/div>\)' + let m = split(buf, mx) + for str in m + let c = split(str, '<[^>]*?>') + let str = substitute(str, '<[^>]\{-}>', ' ', 'g') + let str = substitute(str, '>', '>', 'g') + let str = substitute(str, '<', '<', 'g') + let str = substitute(str, '"', '"', 'g') + let str = substitute(str, ''', '''', 'g') + let str = substitute(str, ' ', ' ', 'g') + let str = substitute(str, '¥', '\¥', 'g') + let str = substitute(str, '&', '\&', 'g') + let str = substitute(str, '^\s*\(.*\)\s*$', '\1', '') + let str = substitute(str, '\s\+', ' ', 'g') + let l = len(str) + if l > threshold_len + let per = (l+0.0) / len(c) + if max < l && per > threshold_per + let max = l + let res = str + endif + endif + endfor + let res = substitute(res, '^\s*\(.*\)\s*$', '\1', 'g') + return res +endfunction + +function! emmet#util#getImageSize(fn) abort + let fn = a:fn + + if emmet#util#isImageMagickInstalled() + return emmet#util#imageSizeWithImageMagick(fn) + endif + + if filereadable(fn) + let hex = substitute(system('xxd -p "'.fn.'"'), '\n', '', 'g') + else + if fn !~# '^\w\+://' + let path = fnamemodify(expand('%'), ':p:gs?\\?/?') + if has('win32') || has('win64') | + let path = tolower(path) + endif + for k in keys(g:emmet_docroot) + let root = fnamemodify(k, ':p:gs?\\?/?') + if has('win32') || has('win64') | + let root = tolower(root) + endif + if stridx(path, root) == 0 + let v = g:emmet_docroot[k] + let fn = (len(v) == 0 ? k : v) . fn + break + endif + endfor + endif + let hex = substitute(system(g:emmet_curl_command.' "'.fn.'" | xxd -p'), '\n', '', 'g') + endif + + let [width, height] = [-1, -1] + if hex =~# '^89504e470d0a1a0a' + let width = eval('0x'.hex[32:39]) + let height = eval('0x'.hex[40:47]) + endif + if hex =~# '^ffd8' + let pos = 4 + while pos < len(hex) + let bs = hex[pos+0:pos+3] + let pos += 4 + if bs ==# 'ffc0' || bs ==# 'ffc2' + let pos += 6 + let height = eval('0x'.hex[pos+0:pos+1])*256 + eval('0x'.hex[pos+2:pos+3]) + let pos += 4 + let width = eval('0x'.hex[pos+0:pos+1])*256 + eval('0x'.hex[pos+2:pos+3]) + break + elseif bs =~# 'ffd[9a]' + break + elseif bs =~# 'ff\(e[0-9a-e]\|fe\|db\|dd\|c4\)' + let pos += (eval('0x'.hex[pos+0:pos+1])*256 + eval('0x'.hex[pos+2:pos+3])) * 2 + endif + endwhile + endif + if hex =~# '^47494638' + let width = eval('0x'.hex[14:15].hex[12:13]) + let height = eval('0x'.hex[18:19].hex[16:17]) + endif + + return [width, height] +endfunction + +function! emmet#util#imageSizeWithImageMagick(fn) abort + let img_info = system('identify -format "%wx%h" "'.a:fn.'"') + let img_size = split(substitute(img_info, '\n', '', ''), 'x') + if len(img_size) != 2 + return [-1, -1] + endif + return img_size +endfunction + +function! emmet#util#isImageMagickInstalled() abort + if !get(g:, 'emmet_use_identify', 1) + return 0 + endif + return executable('identify') +endfunction + +function! emmet#util#unique(arr) abort + let m = {} + let r = [] + for i in a:arr + if !has_key(m, i) + let m[i] = 1 + call add(r, i) + endif + endfor + return r +endfunction + +let s:seed = localtime() +function! emmet#util#srand(seed) abort + let s:seed = a:seed +endfunction + +function! emmet#util#rand() abort + let s:seed = s:seed * 214013 + 2531011 + return (s:seed < 0 ? s:seed - 0x80000000 : s:seed) / 0x10000 % 0x8000 +endfunction + +function! emmet#util#cache(name, ...) abort + let content = get(a:000, 0, '') + let dir = expand('~/.emmet/cache') + if !isdirectory(dir) + call mkdir(dir, 'p', 0700) + endif + let file = dir . '/' . substitute(a:name, '\W', '_', 'g') + if len(content) == 0 + if !filereadable(file) + return '' + endif + return join(readfile(file), "\n") + endif + call writefile(split(content, "\n"), file) +endfunction + +function! emmet#util#getcurpos() abort + let pos = getpos('.') + if mode(0) ==# 'i' && pos[2] > 0 + let pos[2] -=1 + endif + return pos +endfunction + +function! emmet#util#closePopup() abort + return pumvisible() ? "\" : '' +endfunction diff --git a/etc/soft/nvim/+plugins/vim-emmet/doc/emmet.txt b/etc/soft/nvim/+plugins/vim-emmet/doc/emmet.txt new file mode 100644 index 0000000..4e7672a --- /dev/null +++ b/etc/soft/nvim/+plugins/vim-emmet/doc/emmet.txt @@ -0,0 +1,1773 @@ +*emmet.txt* *Emmet* for Vim + + ------------------------------------------------------- + Emmet: vim plugins for HTML and CSS hi-speed coding + ------------------------------------------------------- + +Author: Yasuhiro Matsumoto +WebSite: http://mattn.kaoriya.net/ +Repository: https://github.com/mattn/emmet-vim +Site: https://mattn.github.com/emmet-vim +License: BSD style license + +============================================================================== +CONTENTS *emmet-contents* + +Introduction |emmet-introduction| +Install |emmet-install| +Tutorial |emmet-tutorial| + 1. Expand abbreviation |emmet-expand-abbr| |,| + 2. Expand word |emmet-expand-word| |;| + 3. Update tag |emmet-update-tag| |u| + 4. Wrap with abbreviation |emmet-wrap-with-abbreviation| |v_,| + 5. Balance tag inward |emmet-balance-tag-inward| |d| + 6. Balance tag outward |emmet-balance-tag-outward| |D| + 7. Go to next edit point |emmet-goto-next-point| |n| + 8. Go to previous edit point |emmet-goto-previous-point| |N| + 9. Add and update size |emmet-update-image-size| |i| + 10. Merge lines |emmet-merge-lines| |m| + 11. Remove tag |emmet-remove-tag| |k| + 12. Split/join tag |emmet-split-join-tag| |j| + 13. Toggle comment |emmet-toggle-comment| |/| + 14. Make anchor from URL |emmet-make-anchor-url| |a| + 15. Make quoted text from URL |emmet-quoted-text-url| |A| + 16. Code pretty |emmet-code-pretty| |c| + 17. Lorem ipsum |emmet-lorem-ipsum| +HTML expression syntax |emmet-html-expression-syntax| + 1. Elements |emmet-html-syntax-elements| + 2. Nesting operators |emmet-html-syntax-nesting-operators| + 2.1. Child |emmet->| + 2.2. Sibling |emmet-+| + 2.3. Climb-up |emmet-^| + 2.4. Multiplication |emmet-star| + 2.5. Grouping |emmet-()| + 3. Attribute operators |emmet-html-syntax-attribute-operators| + 3.1. ID and CLASS |emmet-.| |emmet-#| + 3.2. Custom attributes |emmet-[]| + 3.3. Item numbering |emmet-$| + 3.3.1. Changing numbering origin and direction |emmet-@| + 3.4. Quote character |emmet-html-attr-quote-char| + 4. Text |emmet-{}| + 5. Implicit tag names |emmet-html-implicit-tag-names| + 6. Notes on abbreviation formatting |emmet-html-syntax-notes| + 7. Choose position to insert text when wrap abbreviation |emmet-$#| +CSS expression syntax |emmet-css-expression-syntax| + 1. Properties |emmet-css-properties| + 2. Values |emmet-css-values| + 3. Units |emmet-css-units| + 4. Vendor prefixes |emmet-css-vendor-prefixes| +Commands |emmet-commands| + :Emmet |:Emmet| + :EmmetInstall |:EmmetInstall| +Variables |emmet-variables| + g:emmet_html5 |g:emmet_html5| + g:emmet_docroot |g:emmet_docroot| + g:emmet_curl_command |g:emmet_curl_command| + g:user_emmet_complete_tag |g:user_emmet_complete_tag| + g:user_emmet_leader_key |g:user_emmet_leader_key| + g:user_emmet_install_global |g:user_emmet_install_global| + g:user_emmet_install_command |g:user_emmet_install_command| + g:user_emmet_settings |g:user_emmet_settings| + g:user_emmet_mode |g:user_emmet_mode| +Customize |emmet-customize| + 1. Key mappings |emmet-customize-key-mappings| + 2. Indent size |emmet-indent-size| + 3. Define tag's behavior |emmet-define-tags-behavior| + 4. Adding custom snippets |emmet-custom-snippets| +Filters |emmet-filters-list| + Escapes XML-unsafe characters |emmet-filter-e| + Add comments around 'important tags' |emmet-filter-c| + Outputs as a single line |emmet-filter-s| + Trim list markers |emmet-filter-t| +Links |emmet-links| +ToDo |emmet-todo| + +============================================================================== +INTRODUCTION *emmet-introduction* *emmet* + +Emmet is an editor plugin for high-speed HTML, XML, XSL (or any other +structured code format) coding and editing. The core of this plugin is a +powerful abbreviation engine which allows you to expand expressions, +similar to CSS selectors, into HTML code: +> + div#page>div.logo+ul#navigation>li*5>a +< +can be expanded into: +> +
+ + +
+< +Read more about current Emmet syntax + |emmet-html-expression-syntax| + |emmet-css-expression-syntax| + http://docs.emmet.io/abbreviations/ + +Abbreviation engine has a modular structure which allows you +to expand abbreviations into different languages. +Emmet currently supports CSS, HTML, XML/XSL and HAML, Slim languages +via filters (see |emmet-filter|). + +============================================================================== +INSTALL *emmet-install* + +Install the distributed files into Vim runtime directory which is usually +'~/.vim/', or '$HOME/vimfiles' on Windows. + +If you install pathogen (https://github.com/tpope/vim-pathogen) +that provided by Tim Pope, you should extract the +file into 'bundle' directory. + +============================================================================== +TUTORIAL *emmet-tutorial* + +If you are seeing this file as :help, then you can't edit this file. +You should copy this section and create new buffer, paste and write as +'emmet-tutor.txt'. Formally, open the file to start tutorial. + +1. Expand abbreviation *emmet-expand-abbr* *,* + + Type abbreviation as 'div>p#foo$*3>a' and type ','. +> +
+

+ +

+

+ +

+

+ +

+
+< +2. Expand abbreviation *emmet-expand-word* *;* + + When you want to expand word except html tokens like below, use this. +> + foo +< + This will be expanded like: +> + + +3. Update tag *emmet-update-tag* *u* + + The begining of tags '
' on below +> +
foo
+< + Type 'u' request 'Enter Abbreviation:'. Then type +> + .global +< + This will be expanded like: +> +
foo
+< +4. Wrap with abbreviation *emmet-wrap-with-abbreviation* *v_,* + + Write as below. +> + test1 + test2 + test3 +< + Then do visual select (line wise) and type ','. + If you request 'Tag:', then type +> + ul>li* +< + Result: +> +
    +
  • test1
  • +
  • test2
  • +
  • test3
  • +
+< + If you type tag name, for example +> + blockquote +< + then you'll see as following: +> +
+ test1 + test2 + test3 +
+< + See also: |emmet-filter-t|, |emmet-$#| + +5. Balance tag inward *emmet-balance-tag-inward* *d* + + To select inward of '
    ' tag, type 'd' in insert mode. +> +
      + *
    • +
    • +
    • +
    +< + If cursor is at '*', 'd' select from begin of '
      ' to end of '
    '. + If cursor is at first of '
  • ', it select '
  • '. + +6. Balance tag outward *emmet-balance-tag-outward* *D* + + To select outward of '
      ' tag type 'D' in insert mode. +> +
        + *
      • +
      • +
      • +
      +< + If cursor is at '*', 'D' select from next letter of '
        ' + to previous letter of '
      '. + If cursor is at first of '
    • ', it select '
    • '. + +7. Go to next edit point *emmet-goto-next-point* *n* + + To jump next point that need to edit, type 'n' in insert mode. +> + *
      foo
      +
      +< + If cursor is at '*', type 'n' to move a cursor + into attribute value of '
      ' specified id as 'foo'. + And type again 'n' to move a cursor + into inner of '
      ' specified id as 'bar'. + +8. Go to previous edit point *emmet-goto-previous-point* *N* + + To jump previous point that need to edit, type 'N' in insert mode. +> +
      foo
      +
      * +< + If cursor is at '*', type 'N' to move a cursor + into '
      ' specified id as 'bar'. + And type again 'N' to move a cursor + into attribute value of 'foo'. + +9. Add and update size *emmet-update-image-size* *i* + + To add or update 'width' and 'height' attributes of image, + type 'i' on '' tag +> + +< + Type 'i' on '' tag +> + +< + If you change image, then type it again. it will be following. +> + +< + Image size retrieved using 'identify' (ImageMagick.org) (if available) + or |xxd|. + +10. Merge lines *emmet-merge-lines* *m* + + To join multi line text like following, type |J|. +> +
        +
      • +
      • +
      • +
      +< + If you select part of line include '
    • ' and type |m|, + it will be following. +> +
        +
      • +
      +< +11. Remove tag *emmet-remove-tag* *k* + + To remove tag in the block, type 'k'. +> + +< + Type 'k' in insert mode, then +> +
      + +
      +< + And type 'k' in there again, then '
      ' will be removed. + +12. Split/join tag *emmet-split-join-tag* *j* + + To join block, type 'j'. +> +
      + cursor is here +
      +< + Type 'j' in insert mode. Then, +> +
      +< + And type 'j' in there again. +> +
      +
      +< +13. Toggle comment *emmet-toggle-comment* */* + + Move cursor to block +> +
      + hello world +
      +< + Type '/' in insert mode. +> + +< + Type '/' in there again. +> +
      + hello world +
      +< +14. Make anchor from URL *emmet-make-anchor-url* *a* + + Move cursor to URL +> + http://www.google.com/ +< + Type 'a' +> + Google +< + Text retrieved using command, specified by |g:emmet_curl_command|. + +15. Make quoted text from URL *emmet-quoted-text-url* *A* + + Move cursor to URL +> + https://github.com/ +< + Type 'A' +> +
      + Secure source code hosting and collaborative development - GitHub
      +

      How does it work? Get up and running in seconds by forking a project, pushing an existing repository...

      + https://github.com/ +
      +< + Text retrieved using command, specified by |g:emmet_curl_command|. + +16. Code pretty *emmet-code-pretty* *c* + + Select code block, for example select following code from 'int main()'. +> +

      Writing in C language

      + + int main() { + puts("hello world"); + } +< + Type 'c' +> + int main() {
      +   puts("hello world");
      + }
      +< + To convert text into html used command |:TOhtml|. + +17. Lorem ipsum *emmet-lorem-ipsum* + + To insert dummy text (30 words by default). +> + div>lorem +< + Type |,| +> +
      Adipisicing asperiores deleniti ipsum fuga deserunt perferendis + molestiae sunt excepturi aut quo nihil! Optio accusantium corporis molestiae + deserunt ab, veritatis commodi. Eius nobis ab deserunt magni iure quo + laboriosam laboriosam.
      +< + For japanese user, put like follow into your |g:user_emmet_settings|: +> + let g:user_emmet_settings = { + ... + + \ 'custom_expands1' : { + \ '^\%(lorem\|lipsum\)\(\d*\)$' : function('emmet#lorem#ja#expand'), + \ }, + + ... +< + You will get japanese dummy text. Text retrieved from url + 'http://www.aozora.gr.jp/cards/000081/files/470_15407.html' + using command, specified by |g:emmet_curl_command|. + + To insert 3 words of dummy text. +> + div>lorem3 +< + Type |,| +> +
      + Elit libero id. +
      +< +============================================================================== +HTML EXPRESSION SYNTAX *emmet-html-expression-syntax* + +Emmet uses syntax similar to CSS selectors for describing elements' positions +inside generated tree and elements' attributes. + +1. Elements *emmet-html-syntax-elements* + + You can use elements' names like 'div' or 'p' to generate HTML tags. +> + p ->

      + div ->
      +< + You can write any word and transform it into a tag: +> + foo -> + bar -> +< + Emmet knowns set of empty elements: +> + br ->
      or
      + meta -> or +< + To choose between HTML '>' and XHTML ' />' use |g:emmet_html5| or + |g:user_emmet_settings|: +> + let g:user_emmet_settings = { + \ ... + \ 'html': { + \ ... + \ 'empty_element_suffix': ' />', + \ ... + \ }, + \ ... + \} +< + Emmet will automatically insert some attributes: +> + a -> + link -> +< + Set of inserted attributes can be changed using |g:user_emmet_settings|: +> + let s:emmet_settings = { + \ ... + \ 'html': { + \ ... + \ 'default_attributes': { + \ ... + \ 'a': {'href': ''}, + \ 'ins': {'datetime': '${datetime}'}, + \ 'iframe': [{'src': ''}, {'frameborder': '0'}], + \ 'textarea': [{'name': ''}, {'id': ''}, {'cols': '30'}, {'rows': '10'}], + \ ... + \ }, + \ ... + \ }, + \ ... + \} +< +2. Nesting operators *emmet-html-syntax-nesting-operators* + + Nesting operators are used to position abbreviation elements + inside generated tree: whether it should be placed + inside or near the context element. + + Operator Description Link ~ + > Child |emmet->| + + Sibling |emmet-+| + ^ Climb-up |emmet-^| + * Multiplication |emmet-star| + () Grouping |emmet-()| + +2.1. Child *emmet->* + + You can use '>' operator to nest elements inside each other: +> + div>ul>li +< + will produce +> +
      +
        +
      • +
      +
      +< +2.2. Sibling *emmet-+* + + Use '+' operator to place elements near each other, on the same level: +> + div+p+bq +< + will output +> +
      +

      +
      +< +2.3. Climb-up *emmet-^* + + With '>' operator you're descending down the generated tree and + positions of all sibling elements will be resolved + against the most deepest element: +> + div+div>p>span+em +< + will be expanded to +> +
      +
      +

      + + +

      +
      +< + With '^' operator, you can climb one level up the tree and change context + where following elements should appear: +> + div+div>p>span+em^bq +< + outputs to +> +
      +
      +

      + + +

      +
      +
      +< + You can use as many '^' operators as you like, + each operator will move one level up: +> + div+div>p>span+em^^^bq +< + will output to +> +
      +
      +

      + + +

      +
      +
      +< +2.4. Multiplication *emmet-star* + + With '*' operator you can define how many times element should be outputted: +> + ul>li*5 +< + outputs to +> +
        +
      • +
      • +
      • +
      • +
      • +
      +< + Expression may contain several '*' operators: +> + tr*2>td*3 +< + become +> + + + + + + + + + + +< +2.5. Grouping *emmet-()* + + Parentheses '()' are used by Emmets' power users for grouping subtrees + in complex abbreviations: +> + div>(header>ul>li*2>a)+footer>p +< + expands to +> +
      +
      +
        +
      • +
      • +
      +
      +
      +

      +
      +
      +< + If you're working with browser's DOM, you may think of groups + as Document Fragments: each group contains abbreviation subtree and + all the following elements are inserted at the same level + as the first element of group. + + You can nest groups inside each other and + combine them with multiplication '*' operator: +> + (div>dl>(dt+dd)*3)+footer>p +< + produces +> +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +

      +
      +< + With groups, you can literally write full page mark-up + with a single abbreviation, but please don't do that. + +3. Attribute operators *emmet-html-syntax-attribute-operators* + + Attribute operators are used to modify attributes of outputted elements. + For example, in HTML and XML you can quickly add 'class' attribute + to generated element. + + Operator Description Link ~ + . Attribute 'class' |emmet-.| + # Attribute 'id' |emmet-#| + [] Custom attributes |emmet-[]| + $ Number |emmet-$| + @ Number origin and direction |emmet-@| + +3.1. ID and CLASS *emmet-.* *emmet-#* + + In CSS, you use 'elem#id' and 'elem.class' notation to reach the elements + with specified 'id' or 'class' attributes. + In Emmet, you can use the very same syntax to add these attributes + to specified element: +> + span.class1 -> + span.class1.class2 -> + div#wrapper ->
      + div#wrapper.content ->
      +< + More complex expression: +> + div#header+div.page+div#footer.class1.class2.class3 +< + will output +> + +
      + +< +3.2. Custom attributes *emmet-[]* + + You can use '[attr]' notation (as in CSS) + to add custom attributes to your element: +> + td[title="Hello world!" colspan=3] +< + outputs +> + +< + You can place as many attributes as you like inside square brackets. + + Attribute values may be omitted: +> + td[colspan title] +< + will produce +> + +< + You can use single or double quotes for quoting attribute values. +> + div[a='value1' b="value2"] +< + become +> +
      +< + You don't need to quote values if they don't contain spaces: +> + td[title=hello colspan=3] +< + will output +> + +< +3.3. Item numbering *emmet-$* + + With multiplication '*' operator you can repeat elements, + but with '$' you can number them. + Place '$' operator inside element's name, attribute's name or + attribute's value to output current number of repeated element: +> + ul>li.item_$*5 +< + outputs to +> +
        +
      • +
      • +
      • +
      • +
      • +
      +< + You can use multiple '$' in a row to pad number with zeroes: +> + ul>li.item_$$$*5 +< + outputs to +> +
        +
      • +
      • +
      • +
      • +
      • +
      +< + Also '$' can be used in element name and in text (|emmet-{}|): +> + h$[title=item$]{Header $}*3 +< + transformed to +> +

      Header 1

      +

      Header 2

      +

      Header 3

      +< +3.3.1. Changing numbering origin and direction *emmet-@* + + With '@' modifier, you can change + - numbering direction (ascending or descending) and + - origin (i. e. start value). + + For example, to change direction, add '@-' after '$': +> + ul>li.item_$@-*5 +< + outputs to +> +
        +
      • +
      • +
      • +
      • +
      • +
      +< + To change counter origin value, add '@N' modifier to '$': +> + ul>li.item_$@3*5 +< + transforms to +> +
        +
      • +
      • +
      • +
      • +
      • +
      +< + You can use these modifiers together: +> + ul>li.item_$@-3*5 +< + is transformed to +> +
        +
      • +
      • +
      • +
      • +
      • +
      +> +3.4. Quote character *emmet-html-attr-quote-char* + + |g:user_emmet_settings| may be used to change attribute quote character: +> + let g:user_emmet_settings = { + ... + \ 'html' : { + ... + \ 'quote_char': "'", + ... + \ }, + ... + \} +< + Then abbreviation +> + a[target=_blank] +< + will expand to +> + +< + instead of +> + +< + Default quote is '"'. + +4. Text *emmet-{}* + + You can use curly braces to add text to element: +> + a{Click me} +< + will produce +> + Click me +< + Note that '{text}' is used and parsed as a separate element + (like, 'div', 'p' etc), but has a special meaning + when written right after element. For example, +> + a{click} +< + and +> + a>{click} +< + will produce the same output, but +> + a{click}+b{here} +< + and +> + a>{click}+b{here} +< + won't: +> + + clickhere + + + clickhere +< + In second example the '' element is placed inside '' element. + And that's the difference: when '{text}' is written right after element, + it doesn't change parent context. + Here's more complex example showing why it is important: +> + p>{Click }+a{here}+{ to continue} +< + produces +> +

      Click here to continue

      +< + In this example, to write 'Click here to continue' inside '

      ' element + we have explicitly move down the tree with '>' operator after 'p', + but in case of 'a' element we don't have to, since we need '' element + with here word only, without changing parent context. + + For comparison, here's the same abbreviation + written without child '>' operator: +> + p{Click }+a{here}+{ to continue} +< + produces +> +

      Click

      + here to continue +< +5. Implicit tag names *emmet-html-implicit-tag-names* + + Even with such a powerful abbreviation engine, + which can expand large HTML structures from short abbreviation, + writing tag names may be very tedious. + + In many cases you can skip typing tag names and + Emmet will substitute it for you. + For example, instead of > + div.content +< you can simply write > + .content +< and expand it into > +
      +< + Other examples: +> + .wrapper ->
      + #popup -> +< + When you expand abbreviation, Emmet tries to grab parent context, + e. g. the HTML element, inside which you're expanding the abbreviation. + If the context was grabbed successfully, + Emmet uses its name to resolve implicit names. + Emmet looks at the parent tag name every time + you're expanding the abbreviation with an implicit name. + Here's how it resolves the names for some parent elements: + + Inserted element Parent elements ~ + li ul, ol + tr table, tbody, thead, tfoot + td tr + option select, optgroup + span Inline elements + div Block elements + + Take a look at some abbreviations equivalents + with implicit and explicit tag names: +> + .wrap>.content -> div.wrap>div.content + em>.info -> em>span.info + ul>.item*3 -> ul>li.item*3 + table>.row>.col -> table>tr.row>td.col + table>#row$*4>[colspan=2] -> table>tr#row$*4>td[colspan=2] +< +6. Notes on abbreviation formatting *emmet-html-syntax-notes* + + When you get familiar with Emmet's abbreviations syntax, + you may want to use some formatting to make your abbreviations more readable. + For example, use spaces between elements and operators, like this: +> + (header > ul.nav > li*5) + footer +< + But it won't work, because space is a stop symbol + where Emmet stops abbreviation parsing. + + Many users mistakenly think that each abbreviation + should be written in a new line, but they are wrong: + you can type and expand abbreviation anywhere in the text: + + This is why Emmet needs some indicators (like spaces) + where it should stop parsing to not expand anything that you don't need. + If you're still thinking that such formatting is required + for complex abbreviations to make them more readable: + - abbreviations are not a template language, + they don't have to be "readable", + they have to be "quickly expandable and removable"; + - you don't really need to write complex abbreviations. + Stop thinking that "typing" is the slowest process in web-development. + You'll quickly find out that constructing a single complex abbreviation + is much slower and error-prone than constructing and typing + a few short ones. + +7. Choose position to insert text when wrap abbreviation *emmet-$#* + + When wrap abbreviation (|emmet-wrap-with-abbreviation|) you can choose + position to insert text using '$#' operator. + Operator '$#' may be used only inside |emmet-[]| and/or |emmet-{}|. + + For example, do visual select (line wise) following text: +> + First + Second + Third +< + Then press ',' and type +> + ul>li[ title="[$#]" ]* +< + Result: +> +
        +
      • First
      • +
      • Second
      • +
      • Third
      • +
      +< + You may type +> + input[ type=input value=$# ] +< + to get +> + + + +< + Using '$#' you can type text (|emmet-{}|) only once: +> + a[title=$#]{foo} +< + will be expanded to +> + foo +< +============================================================================== +CSS EXPRESSION SYNTAX *emmet-css-expression-syntax* + +1. Properties *emmet-css-properties* + + Emmet has a lot of predefined snippets for CSS properties. +> + +< + become +> + +< + In above example '|' denotes a cursor (caret) position. + + Other examples: +> + t -> top: ; + d -> display: ; + o -> outline: ; + ov -> overflow: ; + cu -> cursor: ; + bdrs -> border-radius: ; +< + '+' operator may be used to insert number of properties: +> + m1+p2 +< + become +> + margin: 1px; + padding: 2px; +< +2. Values *emmet-css-values* + + Some properties have default values: +> + c -> color: #000; + bgc -> background-color: #FFF; + zoo -> zoom: 1; +< + To insert predefined property value after abbreviation + type colon ':' and first character of predefined keyword: +> + d:n -> display: none; + d:b -> display: block; + d:i -> display: inline; +< + Numerical value can be typed directly after abbreviation: +> + m10 -> margin: 10px; + m2e -> margin: 2em; +< + Use a hyphen '-' to separate some numerical values: +> + m10-20 -> margin: 10px 20px; + p1-2-3 -> padding: 1px 2px 3px; +< + To negative values + precede the first value with hyphen and all the rest with double hyphens: +> + m-10 -> margin: -10px; + m-1--2 -> margin: -1px -2px; + p-2--1-0-1 -> padding: -2px -1px 0 1px; +< + To insert '!important' append '!' to property abbreviation: +> + m! -> margin: !important; + bac! -> background: !important; +< + You can use special abbreviation 'lg(...)' + to insert definition of linear gradient. Example: +> + lg(left, #fc0 30%, red) +< + will expand to +> + background-image: -webkit-gradient(left, 0 0, 0 100, from(#fc0 30%), to(red)); + background-image: -webkit-linear-gradient(#fc0 30%, red); + background-image: -moz-linear-gradient(#fc0 30%, red); + background-image: -o-linear-gradient(#fc0 30%, red); + background-image: linear-gradient(#fc0 30%, red); +< +3. Units *emmet-css-units* + + By default, when you expand an abbreviation with integer value, + Emmet outputs it with a 'px' unit: +> + bor2 -> border: 2px; + fs100 -> font-size: 100px; + miw20 -> min-width: 20px; +< + By default, if you're expanding an abbreviation with a float value, + it is outputted with an 'em' unit: +> + fs1.5 -> font-style: 1.5em; +< + But you can explicitly provide the unit name + by putting one of characters right after value: + + Character Unit ~ + p % + e em + + Examples: +> + fs2e -> font-style: 2em; + w100p -> width: 100%; +< +4. Vendor prefixes *emmet-css-vendor-prefixes* + + To automatically create vendor-prefixed copies of property, + precede abbreviation with a hyphen '-'. For example, abbreviation +> + -bdrs +< + will be expanded into +> + -webkit-border-radius: ; + -moz-border-radius: ; + border-radius: ; +< +============================================================================== +COMMANDS *emmet-commands* + +:Emmet {expression} *:Emmet* + Expand {expression} and insert result under cursor. + {expression} is |emmet-html-expression|. + Also see |g:user_emmet_install_command|. + +:EmmetInstall *:EmmetInstall* + Create Emmet mappings to current buffer + (|mapping|, |:map-|) and, + if set |g:user_emmet_complete_tag|, + change |'omnifunc'| option to emmet#completeTag() + +============================================================================== +VARIABLES *emmet-variables* + +g:emmet_html5 *g:emmet_html5* + If set to 1, enable HTML 5 support: + - use ">" instead of "/>": > + + +< - omit some HTML 4 attributes: > + '}, + \]) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_context_filetype_lists', + \ 'python', [ + \ {'filetype' : 'vim', + \ 'start' : 'vim.command\s*(\([''"]\)', 'end' : '\\\@', 'end' : '^<'}, + \]) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_context_filetype_lists', + \ 'nyaos,int-nyaos', [ + \ {'filetype' : 'lua', + \ 'start' : '\ new filetype graph. + let dup_check[old_filetype] = new_filetype + let old_filetype = new_filetype + endwhile + + return neocomplcache.context_filetype +endfunction"}}} +function! neocomplcache#context_filetype#get(filetype) "{{{ + " Default. + let filetype = a:filetype + if filetype == '' + let filetype = 'nothing' + endif + + " Default range. + let neocomplcache = neocomplcache#get_current_neocomplcache() + + let pos = [line('.'), col('.')] + for include in get(g:neocomplcache_context_filetype_lists, filetype, []) + let start_backward = searchpos(include.start, 'bneW') + + " Check pos > start. + if start_backward[0] == 0 || s:compare_pos(start_backward, pos) > 0 + continue + endif + + let end_pattern = include.end + if end_pattern =~ '\\1' + let match_list = matchlist(getline(start_backward[0]), include.start) + let end_pattern = substitute(end_pattern, '\\1', '\=match_list[1]', 'g') + endif + let end_forward = searchpos(end_pattern, 'nW') + if end_forward[0] == 0 + let end_forward = [line('$'), len(getline('$'))+1] + endif + + " Check end > pos. + if s:compare_pos(pos, end_forward) > 0 + continue + endif + + let end_backward = searchpos(end_pattern, 'bnW') + + " Check start <= end. + if s:compare_pos(start_backward, end_backward) < 0 + continue + endif + + if start_backward[1] == len(getline(start_backward[0])) + " Next line. + let start_backward[0] += 1 + let start_backward[1] = 1 + endif + if end_forward[1] == 1 + " Previous line. + let end_forward[0] -= 1 + let end_forward[1] = len(getline(end_forward[0])) + endif + + let neocomplcache.context_filetype_range = + \ [ start_backward, end_forward ] + return include.filetype + endfor + + return filetype +endfunction"}}} + +function! s:compare_pos(i1, i2) + return a:i1[0] == a:i2[0] ? a:i1[1] - a:i2[1] : a:i1[0] - a:i2[0] +endfunction" + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters.vim new file mode 100644 index 0000000..8615c42 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters.vim @@ -0,0 +1,132 @@ +"============================================================================= +" FILE: filters.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 28 May 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#keyword_filter(list, complete_str) "{{{ + let complete_str = a:complete_str + + if g:neocomplcache_enable_debug + echomsg len(a:list) + endif + + " Delimiter check. + let filetype = neocomplcache#get_context_filetype() + for delimiter in get(g:neocomplcache_delimiter_patterns, filetype, []) + let complete_str = substitute(complete_str, + \ delimiter, '*' . delimiter, 'g') + endfor + + if complete_str == '' || + \ &l:completefunc ==# 'neocomplcache#complete#unite_complete' || + \ empty(a:list) + return a:list + elseif neocomplcache#check_match_filter(complete_str) + " Match filter. + let word = type(a:list[0]) == type('') ? 'v:val' : 'v:val.word' + + let expr = printf('%s =~ %s', + \ word, string('^' . + \ neocomplcache#keyword_escape(complete_str))) + if neocomplcache#is_auto_complete() + " Don't complete cursor word. + let expr .= printf(' && %s !=? a:complete_str', word) + endif + + " Check head character. + if complete_str[0] != '\' && complete_str[0] != '.' + let expr = word.'[0] == ' . + \ string(complete_str[0]) .' && ' . expr + endif + + call neocomplcache#print_debug(expr) + + return filter(a:list, expr) + else + " Use fast filter. + return s:head_filter(a:list, complete_str) + endif +endfunction"}}} + +function! s:head_filter(list, complete_str) "{{{ + let word = type(a:list[0]) == type('') ? 'v:val' : 'v:val.word' + + if &ignorecase + let expr = printf('!stridx(tolower(%s), %s)', + \ word, string(tolower(a:complete_str))) + else + let expr = printf('!stridx(%s, %s)', + \ word, string(a:complete_str)) + endif + + if neocomplcache#is_auto_complete() + " Don't complete cursor word. + let expr .= printf(' && %s !=? a:complete_str', word) + endif + + return filter(a:list, expr) +endfunction"}}} + +function! neocomplcache#filters#dictionary_filter(dictionary, complete_str) "{{{ + if empty(a:dictionary) + return [] + endif + + let completion_length = 2 + if len(a:complete_str) < completion_length || + \ neocomplcache#check_completion_length_match( + \ a:complete_str, completion_length) || + \ &l:completefunc ==# 'neocomplcache#cunite_complete' + return neocomplcache#keyword_filter( + \ neocomplcache#unpack_dictionary(a:dictionary), a:complete_str) + endif + + let key = tolower(a:complete_str[: completion_length-1]) + + if !has_key(a:dictionary, key) + return [] + endif + + let list = a:dictionary[key] + if type(list) == type({}) + " Convert dictionary dictionary. + unlet list + let list = values(a:dictionary[key]) + else + let list = copy(list) + endif + + return (len(a:complete_str) == completion_length && &ignorecase + \ && !neocomplcache#check_completion_length_match( + \ a:complete_str, completion_length)) ? + \ list : neocomplcache#keyword_filter(list, a:complete_str) +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_abbr.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_abbr.vim new file mode 100644 index 0000000..8019cf2 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_abbr.vim @@ -0,0 +1,63 @@ +"============================================================================= +" FILE: converter_abbr.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 06 Jun 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#converter_abbr#define() "{{{ + return s:converter +endfunction"}}} + +let s:converter = { + \ 'name' : 'converter_abbr', + \ 'description' : 'abbr converter', + \} + +function! s:converter.filter(context) "{{{ + if g:neocomplcache_max_keyword_width < 0 + return a:context.candidates + endif + + for candidate in a:context.candidates + let abbr = get(candidate, 'abbr', candidate.word) + if len(abbr) > g:neocomplcache_max_keyword_width + let len = neocomplcache#util#wcswidth(abbr) + + if len > g:neocomplcache_max_keyword_width + let candidate.abbr = neocomplcache#util#truncate_smart( + \ abbr, g:neocomplcache_max_keyword_width, + \ g:neocomplcache_max_keyword_width/2, '..') + endif + endif + endfor + + return a:context.candidates +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_case.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_case.vim new file mode 100644 index 0000000..2699a77 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_case.vim @@ -0,0 +1,79 @@ +"============================================================================= +" FILE: converter_case.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 02 Jun 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#converter_case#define() "{{{ + return s:converter +endfunction"}}} + +let s:converter = { + \ 'name' : 'converter_case', + \ 'description' : 'case converter', + \} + +function! s:converter.filter(context) "{{{ + if !neocomplcache#is_text_mode() && !neocomplcache#within_comment() + return a:context.candidates + endif + + let convert_candidates = filter(copy(a:context.candidates), + \ "get(v:val, 'neocomplcache__convertable', 1) + \ && v:val.word =~ '^[a-zA-Z0-9_''-]\\+$'") + + if a:context.complete_str =~ '^\l\+$' + for candidate in convert_candidates + let candidate.word = tolower(candidate.word) + if has_key(candidate, 'abbr') + let candidate.abbr = tolower(candidate.abbr) + endif + endfor + elseif a:context.complete_str =~ '^\u\+$' + for candidate in convert_candidates + let candidate.word = toupper(candidate.word) + if has_key(candidate, 'abbr') + let candidate.abbr = toupper(candidate.abbr) + endif + endfor + elseif a:context.complete_str =~ '^\u\l\+$' + for candidate in convert_candidates + let candidate.word = toupper(candidate.word[0]). + \ tolower(candidate.word[1:]) + if has_key(candidate, 'abbr') + let candidate.abbr = toupper(candidate.abbr[0]). + \ tolower(candidate.abbr[1:]) + endif + endfor + endif + + return a:context.candidates +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_delimiter.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_delimiter.vim new file mode 100644 index 0000000..cac3a32 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_delimiter.vim @@ -0,0 +1,94 @@ +"============================================================================= +" FILE: converter_delimiter.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 06 Jun 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#converter_delimiter#define() "{{{ + return s:converter +endfunction"}}} + +let s:converter = { + \ 'name' : 'converter_delimiter', + \ 'description' : 'delimiter converter', + \} + +function! s:converter.filter(context) "{{{ + if g:neocomplcache_max_keyword_width < 0 + return a:context.candidates + endif + + " Delimiter check. + let filetype = neocomplcache#get_context_filetype() + + let next_keyword = neocomplcache#filters# + \converter_remove_next_keyword#get_next_keyword(a:context.source_name) + for delimiter in ['/'] + + \ get(g:neocomplcache_delimiter_patterns, filetype, []) + " Count match. + let delim_cnt = 0 + let matchend = matchend(a:context.complete_str, delimiter) + while matchend >= 0 + let matchend = matchend(a:context.complete_str, + \ delimiter, matchend) + let delim_cnt += 1 + endwhile + + for candidate in a:context.candidates + let split_list = split(candidate.word, delimiter.'\ze.', 1) + if len(split_list) > 1 + let delimiter_sub = substitute( + \ delimiter, '\\\([.^$]\)', '\1', 'g') + let candidate.word = join(split_list[ : delim_cnt], delimiter_sub) + let candidate.abbr = join( + \ split(get(candidate, 'abbr', candidate.word), + \ delimiter.'\ze.', 1)[ : delim_cnt], + \ delimiter_sub) + + if g:neocomplcache_max_keyword_width >= 0 + \ && len(candidate.abbr) > g:neocomplcache_max_keyword_width + let candidate.abbr = substitute(candidate.abbr, + \ '\(\h\)\w*'.delimiter, '\1'.delimiter_sub, 'g') + endif + if delim_cnt+1 < len(split_list) + let candidate.abbr .= delimiter_sub . '~' + let candidate.dup = 0 + + if g:neocomplcache_enable_auto_delimiter && next_keyword == '' + let candidate.word .= delimiter_sub + endif + endif + endif + endfor + endfor + + return a:context.candidates +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_nothing.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_nothing.vim new file mode 100644 index 0000000..4e3d6dc --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_nothing.vim @@ -0,0 +1,47 @@ +"============================================================================= +" FILE: converter_nothing.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 24 Apr 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#converter_nothing#define() "{{{ + return s:converter +endfunction"}}} + +let s:converter = { + \ 'name' : 'converter_nothing', + \ 'description' : 'nothing converter', + \} + +function! s:converter.filter(context) "{{{ + " Nothing. + return a:context.candidates +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_remove_next_keyword.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_remove_next_keyword.vim new file mode 100644 index 0000000..d186db7 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/converter_remove_next_keyword.vim @@ -0,0 +1,87 @@ +"============================================================================= +" FILE: converter_remove_next_keyword.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 31 May 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#converter_remove_next_keyword#define() "{{{ + return s:converter +endfunction"}}} + +let s:converter = { + \ 'name' : 'converter_remove_next_keyword', + \ 'description' : 'remove next keyword converter', + \} + +function! s:converter.filter(context) "{{{ + " Remove next keyword. + let next_keyword = neocomplcache#filters# + \converter_remove_next_keyword#get_next_keyword(a:context.source_name) + if next_keyword == '' + return a:context.candidates + endif + + let next_keyword = substitute( + \ substitute(escape(next_keyword, + \ '~" \.^$*[]'), "'", "''", 'g'), ')$', '', '').'$' + + " No ignorecase. + let ignorecase_save = &ignorecase + let &ignorecase = 0 + try + for r in a:context.candidates + let pos = match(r.word, next_keyword) + if pos >= 0 + if !has_key(r, 'abbr') + let r.abbr = r.word + endif + + let r.word = r.word[: pos-1] + endif + endfor + finally + let &ignorecase = ignorecase_save + endtry + + return a:context.candidates +endfunction"}}} + +function! neocomplcache#filters#converter_remove_next_keyword#get_next_keyword(source_name) "{{{ + let pattern = '^\%(' . + \ ((a:source_name ==# 'filename_complete' || + \ a:source_name ==# 'filename_complete') ? + \ neocomplcache#get_next_keyword_pattern('filename') : + \ neocomplcache#get_next_keyword_pattern()) . '\m\)' + + let next_keyword = matchstr('a'. + \ getline('.')[len(neocomplcache#get_cur_text(1)) :], pattern)[1:] + return next_keyword +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_fuzzy.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_fuzzy.vim new file mode 100644 index 0000000..838cf55 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_fuzzy.vim @@ -0,0 +1,47 @@ +"============================================================================= +" FILE: matcher_fuzzy.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 24 Apr 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#matcher_fuzzy#define() "{{{ + return s:matcher +endfunction"}}} + +let s:matcher = { + \ 'name' : 'matcher_fuzzy', + \ 'description' : 'fuzzy matcher', + \} + +function! s:matcher.filter(context) "{{{ + " Todo: + return [] +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_head.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_head.vim new file mode 100644 index 0000000..275e3b6 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_head.vim @@ -0,0 +1,47 @@ +"============================================================================= +" FILE: matcher_head.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 25 Apr 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#matcher_head#define() "{{{ + return s:matcher +endfunction"}}} + +let s:matcher = { + \ 'name' : 'matcher_head', + \ 'description' : 'head matcher', + \} + +function! s:matcher.filter(context) "{{{ + " Todo: + return [] +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_old.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_old.vim new file mode 100644 index 0000000..89da149 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/matcher_old.vim @@ -0,0 +1,57 @@ +"============================================================================= +" FILE: matcher_old.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 25 Apr 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#matcher_old#define() "{{{ + return s:matcher +endfunction"}}} + +let s:matcher = { + \ 'name' : 'matcher_old', + \ 'description' : 'old matcher', + \} + +function! s:matcher.filter(candidates, context) "{{{ + if a:context.input == '' + return neocomplcache#util#filter_matcher( + \ a:candidates, '', a:context) + endif + + let candidates = a:candidates + for input in a:context.input_list + let candidates = neocomplcache#filters#matcher_old#glob_matcher( + \ candidates, input, a:context) + endfor + + return candidates +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_length.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_length.vim new file mode 100644 index 0000000..8020de1 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_length.vim @@ -0,0 +1,54 @@ +"============================================================================= +" FILE: sorter_length.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 09 May 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#sorter_length#define() "{{{ + return s:sorter +endfunction"}}} + +let s:sorter = { + \ 'name' : 'sorter_length', + \ 'description' : 'sort by length order', + \} + +function! s:sorter.filter(context) "{{{ + return sort(a:context.candidates, 's:compare') +endfunction"}}} + +function! s:compare(i1, i2) + let diff = len(a:i1.word) - len(a:i2.word) + if !diff + let diff = (a:i1.word ># a:i2.word) ? 1 : -1 + endif + return diff +endfunction + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_nothing.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_nothing.vim new file mode 100644 index 0000000..4535f13 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_nothing.vim @@ -0,0 +1,47 @@ +"============================================================================= +" FILE: sorter_nothing.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 24 Apr 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#sorter_nothing#define() "{{{ + return s:sorter +endfunction"}}} + +let s:sorter = { + \ 'name' : 'sorter_nothing', + \ 'description' : 'nothing sorter', + \} + +function! s:sorter.filter(context) "{{{ + " Nothing. + return a:candidates +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_rank.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_rank.vim new file mode 100644 index 0000000..cc1355b --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/filters/sorter_rank.vim @@ -0,0 +1,51 @@ +"============================================================================= +" FILE: sorter_rank.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 09 May 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#sorter_rank#define() "{{{ + return s:sorter +endfunction"}}} + +let s:sorter = { + \ 'name' : 'sorter_rank', + \ 'description' : 'sort by matched rank order', + \} + +function! s:sorter.filter(context) "{{{ + return sort(a:context.candidates, 's:compare') +endfunction"}}} + +function! s:compare(i1, i2) + let diff = (get(a:i2, 'rank', 0) - get(a:i1, 'rank', 0)) + return (diff != 0) ? diff : (a:i1.word ># a:i2.word) ? 1 : -1 +endfunction" + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/handler.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/handler.vim new file mode 100644 index 0000000..e2f3324 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/handler.vim @@ -0,0 +1,291 @@ +"============================================================================= +" FILE: handler.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 29 Jul 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#handler#_on_moved_i() "{{{ + " Get cursor word. + let cur_text = neocomplcache#get_cur_text(1) + + call s:close_preview_window() +endfunction"}}} +function! neocomplcache#handler#_on_insert_enter() "{{{ + if &l:foldmethod ==# 'expr' && foldlevel('.') != 0 + foldopen + endif +endfunction"}}} +function! neocomplcache#handler#_on_insert_leave() "{{{ + let neocomplcache = neocomplcache#get_current_neocomplcache() + + let neocomplcache.cur_text = '' + let neocomplcache.old_cur_text = '' + + call s:close_preview_window() +endfunction"}}} +function! neocomplcache#handler#_on_write_post() "{{{ + let neocomplcache = neocomplcache#get_current_neocomplcache() + + " Restore foldinfo. + for winnr in filter(range(1, winnr('$')), + \ "!empty(getwinvar(v:val, 'neocomplcache_foldinfo'))") + let neocomplcache_foldinfo = + \ getwinvar(winnr, 'neocomplcache_foldinfo') + call setwinvar(winnr, '&foldmethod', + \ neocomplcache_foldinfo.foldmethod) + call setwinvar(winnr, '&foldexpr', + \ neocomplcache_foldinfo.foldexpr) + call setwinvar(winnr, + \ 'neocomplcache_foldinfo', {}) + endfor +endfunction"}}} +function! neocomplcache#handler#_on_complete_done() "{{{ + " Get cursor word. + let [_, candidate] = neocomplcache#match_word( + \ neocomplcache#get_cur_text(1)) + if candidate == '' + return + endif + + let frequencies = neocomplcache#variables#get_frequencies() + if !has_key(frequencies, candidate) + let frequencies[candidate] = 20 + else + let frequencies[candidate] += 20 + endif +endfunction"}}} +function! neocomplcache#handler#_change_update_time() "{{{ + if &updatetime > g:neocomplcache_cursor_hold_i_time + " Change updatetime. + let neocomplcache = neocomplcache#get_current_neocomplcache() + let neocomplcache.update_time_save = &updatetime + let &updatetime = g:neocomplcache_cursor_hold_i_time + endif +endfunction"}}} +function! neocomplcache#handler#_restore_update_time() "{{{ + let neocomplcache = neocomplcache#get_current_neocomplcache() + if &updatetime < neocomplcache.update_time_save + " Restore updatetime. + let &updatetime = neocomplcache.update_time_save + endif +endfunction"}}} + +function! neocomplcache#handler#_do_auto_complete(event) "{{{ + if s:check_in_do_auto_complete() + return + endif + + let neocomplcache = neocomplcache#get_current_neocomplcache() + let neocomplcache.skipped = 0 + let neocomplcache.event = a:event + + let cur_text = neocomplcache#get_cur_text(1) + + if g:neocomplcache_enable_debug + echomsg 'cur_text = ' . cur_text + endif + + " Prevent infinity loop. + if s:is_skip_auto_complete(cur_text) + " Make cache. + if cur_text =~ '^\s*$\|\s\+$' + if neocomplcache#is_enabled_source('buffer_complete') + " Caching current cache line. + call neocomplcache#sources#buffer_complete#caching_current_line() + endif + if neocomplcache#is_enabled_source('member_complete') + " Caching current cache line. + call neocomplcache#sources#member_complete#caching_current_line() + endif + endif + + if g:neocomplcache_enable_debug + echomsg 'Skipped.' + endif + + call neocomplcache#helper#clear_result() + return + endif + + let neocomplcache.old_cur_text = cur_text + + if neocomplcache#helper#is_omni_complete(cur_text) + call feedkeys("\(neocomplcache_start_omni_complete)") + return + endif + + " Check multibyte input or eskk. + if neocomplcache#is_eskk_enabled() + \ || neocomplcache#is_multibyte_input(cur_text) + if g:neocomplcache_enable_debug + echomsg 'Skipped.' + endif + + return + endif + + " Check complete position. + let complete_results = neocomplcache#complete#_set_results_pos(cur_text) + if empty(complete_results) + if g:neocomplcache_enable_debug + echomsg 'Skipped.' + endif + + return + endif + + let &l:completefunc = 'neocomplcache#complete#auto_complete' + + if neocomplcache#is_prefetch() + " Do prefetch. + let neocomplcache.complete_results = + \ neocomplcache#complete#_get_results(cur_text) + + if empty(neocomplcache.complete_results) + if g:neocomplcache_enable_debug + echomsg 'Skipped.' + endif + + " Skip completion. + let &l:completefunc = 'neocomplcache#complete#manual_complete' + call neocomplcache#helper#clear_result() + return + endif + endif + + call s:save_foldinfo() + + " Set options. + set completeopt-=menu + set completeopt-=longest + set completeopt+=menuone + + " Start auto complete. + call feedkeys(&l:formatoptions !~ 'a' ? + \ "\(neocomplcache_start_auto_complete)": + \ "\(neocomplcache_start_auto_complete_no_select)") +endfunction"}}} + +function! s:save_foldinfo() "{{{ + " Save foldinfo. + let winnrs = filter(range(1, winnr('$')), + \ "winbufnr(v:val) == bufnr('%')") + + " Note: for foldmethod=expr or syntax. + call filter(winnrs, " + \ (getwinvar(v:val, '&foldmethod') ==# 'expr' || + \ getwinvar(v:val, '&foldmethod') ==# 'syntax') && + \ getwinvar(v:val, '&modifiable')") + for winnr in winnrs + call setwinvar(winnr, 'neocomplcache_foldinfo', { + \ 'foldmethod' : getwinvar(winnr, '&foldmethod'), + \ 'foldexpr' : getwinvar(winnr, '&foldexpr') + \ }) + call setwinvar(winnr, '&foldmethod', 'manual') + call setwinvar(winnr, '&foldexpr', 0) + endfor +endfunction"}}} +function! s:check_in_do_auto_complete() "{{{ + if neocomplcache#is_locked() + return 1 + endif + + " Detect completefunc. + if &l:completefunc !~# '^neocomplcache#' + if g:neocomplcache_force_overwrite_completefunc + " Set completefunc. + let &l:completefunc = 'neocomplcache#complete#manual_complete' + else + " Warning. + redir => output + 99verbose setl completefunc + redir END + call neocomplcache#print_error(output) + call neocomplcache#print_error( + \ 'Another plugin set completefunc! Disabled neocomplcache.') + NeoComplCacheLock + return 1 + endif + endif + + " Detect AutoComplPop. + if exists('g:acp_enableAtStartup') && g:acp_enableAtStartup + call neocomplcache#print_error( + \ 'Detected enabled AutoComplPop! Disabled neocomplcache.') + NeoComplCacheLock + return 1 + endif +endfunction"}}} +function! s:is_skip_auto_complete(cur_text) "{{{ + let neocomplcache = neocomplcache#get_current_neocomplcache() + + if a:cur_text =~ '^\s*$\|\s\+$' + \ || a:cur_text == neocomplcache.old_cur_text + \ || (g:neocomplcache_lock_iminsert && &l:iminsert) + \ || (&l:formatoptions =~# '[tc]' && &l:textwidth > 0 + \ && neocomplcache#util#wcswidth(a:cur_text) >= &l:textwidth) + return 1 + endif + + if !neocomplcache.skip_next_complete + return 0 + endif + + " Check delimiter pattern. + let is_delimiter = 0 + let filetype = neocomplcache#get_context_filetype() + + for delimiter in ['/', '\.'] + + \ get(g:neocomplcache_delimiter_patterns, filetype, []) + if a:cur_text =~ delimiter . '$' + let is_delimiter = 1 + break + endif + endfor + + if is_delimiter && neocomplcache.skip_next_complete == 2 + let neocomplcache.skip_next_complete = 0 + return 0 + endif + + let neocomplcache.skip_next_complete = 0 + let neocomplcache.cur_text = '' + let neocomplcache.old_cur_text = '' + + return 1 +endfunction"}}} +function! s:close_preview_window() "{{{ + if g:neocomplcache_enable_auto_close_preview && + \ bufname('%') !=# '[Command Line]' && winnr('$') != 1 + " Close preview window. + pclose! + endif +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/helper.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/helper.vim new file mode 100644 index 0000000..b714d5a --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/helper.vim @@ -0,0 +1,438 @@ +"============================================================================= +" FILE: helper.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 03 Jul 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#helper#get_cur_text() "{{{ + let cur_text = + \ (mode() ==# 'i' ? (col('.')-1) : col('.')) >= len(getline('.')) ? + \ getline('.') : + \ matchstr(getline('.'), + \ '^.*\%' . col('.') . 'c' . (mode() ==# 'i' ? '' : '.')) + + if cur_text =~ '^.\{-}\ze\S\+$' + let complete_str = matchstr(cur_text, '\S\+$') + let cur_text = matchstr(cur_text, '^.\{-}\ze\S\+$') + else + let complete_str = '' + endif + + let neocomplcache = neocomplcache#get_current_neocomplcache() + if neocomplcache.event ==# 'InsertCharPre' + let complete_str .= v:char + endif + + let filetype = neocomplcache#get_context_filetype() + let wildcard = get(g:neocomplcache_wildcard_characters, filetype, + \ get(g:neocomplcache_wildcard_characters, '_', '*')) + if g:neocomplcache_enable_wildcard && + \ wildcard !=# '*' && len(wildcard) == 1 + " Substitute wildcard character. + while 1 + let index = stridx(complete_str, wildcard) + if index <= 0 + break + endif + + let complete_str = complete_str[: index-1] + \ . '*' . complete_str[index+1: ] + endwhile + endif + + let neocomplcache.cur_text = cur_text . complete_str + + " Save cur_text. + return neocomplcache.cur_text +endfunction"}}} + +function! neocomplcache#helper#keyword_escape(complete_str) "{{{ + " Fuzzy completion. + let keyword_len = len(a:complete_str) + let keyword_escape = s:keyword_escape(a:complete_str) + if g:neocomplcache_enable_fuzzy_completion + \ && (g:neocomplcache_fuzzy_completion_start_length + \ <= keyword_len && keyword_len < 20) + let pattern = keyword_len >= 8 ? + \ '\0\\w*' : '\\%(\0\\w*\\|\U\0\E\\l*\\)' + + let start = g:neocomplcache_fuzzy_completion_start_length + if start <= 1 + let keyword_escape = + \ substitute(keyword_escape, '\w', pattern, 'g') + elseif keyword_len < 8 + let keyword_escape = keyword_escape[: start - 2] + \ . substitute(keyword_escape[start-1 :], '\w', pattern, 'g') + else + let keyword_escape = keyword_escape[: 3] . + \ substitute(keyword_escape[4:12], '\w', + \ pattern, 'g') . keyword_escape[13:] + endif + else + " Underbar completion. "{{{ + if g:neocomplcache_enable_underbar_completion + \ && keyword_escape =~ '[^_]_\|^_' + let keyword_escape = substitute(keyword_escape, + \ '\%(^\|[^_]\)\zs_', '[^_]*_', 'g') + endif + if g:neocomplcache_enable_underbar_completion + \ && '-' =~ '\k' && keyword_escape =~ '[^-]-' + let keyword_escape = substitute(keyword_escape, + \ '[^-]\zs-', '[^-]*-', 'g') + endif + "}}} + " Camel case completion. "{{{ + if g:neocomplcache_enable_camel_case_completion + \ && keyword_escape =~ '\u\?\U*' + let keyword_escape = + \ substitute(keyword_escape, + \ '\u\?\zs\U*', + \ '\\%(\0\\l*\\|\U\0\E\\u*_\\?\\)', 'g') + endif + "}}} + endif + + call neocomplcache#print_debug(keyword_escape) + return keyword_escape +endfunction"}}} + +function! neocomplcache#helper#is_omni_complete(cur_text) "{{{ + " Check eskk complete length. + if neocomplcache#is_eskk_enabled() + \ && exists('g:eskk#start_completion_length') + if !neocomplcache#is_eskk_convertion(a:cur_text) + \ || !neocomplcache#is_multibyte_input(a:cur_text) + return 0 + endif + + let complete_pos = call(&l:omnifunc, [1, '']) + let complete_str = a:cur_text[complete_pos :] + return neocomplcache#util#mb_strlen(complete_str) >= + \ g:eskk#start_completion_length + endif + + let filetype = neocomplcache#get_context_filetype() + let omnifunc = get(g:neocomplcache_omni_functions, + \ filetype, &l:omnifunc) + + if neocomplcache#check_invalid_omnifunc(omnifunc) + return 0 + endif + + let syn_name = neocomplcache#helper#get_syn_name(1) + if syn_name ==# 'Comment' || syn_name ==# 'String' + " Skip omni_complete in string literal. + return 0 + endif + + if has_key(g:neocomplcache_force_omni_patterns, omnifunc) + let pattern = g:neocomplcache_force_omni_patterns[omnifunc] + elseif filetype != '' && + \ get(g:neocomplcache_force_omni_patterns, filetype, '') != '' + let pattern = g:neocomplcache_force_omni_patterns[filetype] + else + return 0 + endif + + if a:cur_text !~# '\%(' . pattern . '\m\)$' + return 0 + endif + + " Set omnifunc. + let &omnifunc = omnifunc + + return 1 +endfunction"}}} + +function! neocomplcache#helper#is_enabled_source(source_name) "{{{ + if neocomplcache#is_disabled_source(a:source_name) + return 0 + endif + + let neocomplcache = neocomplcache#get_current_neocomplcache() + if !has_key(neocomplcache, 'sources') + call neocomplcache#helper#get_sources_list() + endif + + return index(keys(neocomplcache.sources), a:source_name) >= 0 +endfunction"}}} + +function! neocomplcache#helper#get_source_filetypes(filetype) "{{{ + let filetype = (a:filetype == '') ? 'nothing' : a:filetype + + let filetype_dict = {} + + let filetypes = [filetype] + if filetype =~ '\.' + if exists('g:neocomplcache_ignore_composite_filetype_lists') + \ && has_key(g:neocomplcache_ignore_composite_filetype_lists, filetype) + let filetypes = [g:neocomplcache_ignore_composite_filetype_lists[filetype]] + else + " Set composite filetype. + let filetypes += split(filetype, '\.') + endif + endif + + if exists('g:neocomplcache_same_filetype_lists') + for ft in copy(filetypes) + let filetypes += split(get(g:neocomplcache_same_filetype_lists, ft, + \ get(g:neocomplcache_same_filetype_lists, '_', '')), ',') + endfor + endif + + return neocomplcache#util#uniq(filetypes) +endfunction"}}} + +function! neocomplcache#helper#get_completion_length(plugin_name) "{{{ + " Todo. +endfunction"}}} + +function! neocomplcache#helper#complete_check() "{{{ + let neocomplcache = neocomplcache#get_current_neocomplcache() + if g:neocomplcache_enable_debug + echomsg split(reltimestr(reltime(neocomplcache.start_time)))[0] + endif + let ret = (!neocomplcache#is_prefetch() && complete_check()) + \ || (neocomplcache#is_auto_complete() + \ && g:neocomplcache_skip_auto_completion_time != '' + \ && split(reltimestr(reltime(neocomplcache.start_time)))[0] > + \ g:neocomplcache_skip_auto_completion_time) + if ret + let neocomplcache = neocomplcache#get_current_neocomplcache() + let neocomplcache.skipped = 1 + + redraw + echo 'Skipped.' + endif + + return ret +endfunction"}}} + +function! neocomplcache#helper#get_syn_name(is_trans) "{{{ + return len(getline('.')) < 200 ? + \ synIDattr(synIDtrans(synID(line('.'), mode() ==# 'i' ? + \ col('.')-1 : col('.'), a:is_trans)), 'name') : '' +endfunction"}}} + +function! neocomplcache#helper#match_word(cur_text, ...) "{{{ + let pattern = a:0 >= 1 ? a:1 : neocomplcache#get_keyword_pattern_end() + + " Check wildcard. + let complete_pos = s:match_wildcard( + \ a:cur_text, pattern, match(a:cur_text, pattern)) + + let complete_str = (complete_pos >=0) ? + \ a:cur_text[complete_pos :] : '' + + return [complete_pos, complete_str] +endfunction"}}} + +function! neocomplcache#helper#filetype_complete(arglead, cmdline, cursorpos) "{{{ + " Dup check. + let ret = {} + for item in map( + \ split(globpath(&runtimepath, 'syntax/*.vim'), '\n') + + \ split(globpath(&runtimepath, 'indent/*.vim'), '\n') + + \ split(globpath(&runtimepath, 'ftplugin/*.vim'), '\n') + \ , 'fnamemodify(v:val, ":t:r")') + if !has_key(ret, item) && item =~ '^'.a:arglead + let ret[item] = 1 + endif + endfor + + return sort(keys(ret)) +endfunction"}}} + +function! neocomplcache#helper#unite_patterns(pattern_var, filetype) "{{{ + let keyword_patterns = [] + let dup_check = {} + + " Composite filetype. + for ft in split(a:filetype, '\.') + if has_key(a:pattern_var, ft) && !has_key(dup_check, ft) + let dup_check[ft] = 1 + call add(keyword_patterns, a:pattern_var[ft]) + endif + + " Same filetype. + if exists('g:neocomplcache_same_filetype_lists') + \ && has_key(g:neocomplcache_same_filetype_lists, ft) + for ft in split(g:neocomplcache_same_filetype_lists[ft], ',') + if has_key(a:pattern_var, ft) && !has_key(dup_check, ft) + let dup_check[ft] = 1 + call add(keyword_patterns, a:pattern_var[ft]) + endif + endfor + endif + endfor + + if empty(keyword_patterns) + let default = get(a:pattern_var, '_', get(a:pattern_var, 'default', '')) + if default != '' + call add(keyword_patterns, default) + endif + endif + + return join(keyword_patterns, '\m\|') +endfunction"}}} + +function! neocomplcache#helper#ftdictionary2list(dictionary, filetype) "{{{ + let list = [] + for filetype in neocomplcache#get_source_filetypes(a:filetype) + if has_key(a:dictionary, filetype) + call add(list, a:dictionary[filetype]) + endif + endfor + + return list +endfunction"}}} + +function! neocomplcache#helper#get_sources_list(...) "{{{ + let filetype = neocomplcache#get_context_filetype() + + let source_names = exists('b:neocomplcache_sources_list') ? + \ b:neocomplcache_sources_list : + \ get(a:000, 0, + \ get(g:neocomplcache_sources_list, filetype, + \ get(g:neocomplcache_sources_list, '_', ['_']))) + let disabled_sources = get( + \ g:neocomplcache_disabled_sources_list, filetype, + \ get(g:neocomplcache_disabled_sources_list, '_', [])) + call neocomplcache#init#_sources(source_names) + + let all_sources = neocomplcache#available_sources() + let sources = {} + for source_name in source_names + if source_name ==# '_' + " All sources. + let sources = all_sources + break + endif + + if !has_key(all_sources, source_name) + call neocomplcache#print_warning(printf( + \ 'Invalid source name "%s" is given.', source_name)) + continue + endif + + let sources[source_name] = all_sources[source_name] + endfor + + let neocomplcache = neocomplcache#get_current_neocomplcache() + let neocomplcache.sources = filter(sources, " + \ index(disabled_sources, v:val.name) < 0 && + \ (empty(v:val.filetypes) || + \ get(v:val.filetypes, neocomplcache.context_filetype, 0))") + + return neocomplcache.sources +endfunction"}}} + +function! neocomplcache#helper#clear_result() "{{{ + let neocomplcache = neocomplcache#get_current_neocomplcache() + + let neocomplcache.complete_str = '' + let neocomplcache.candidates = [] + let neocomplcache.complete_results = [] + let neocomplcache.complete_pos = -1 +endfunction"}}} + +function! neocomplcache#helper#call_hook(sources, hook_name, context) "{{{ + for source in neocomplcache#util#convert2list(a:sources) + try + if !has_key(source.hooks, a:hook_name) + if a:hook_name ==# 'on_init' && has_key(source, 'initialize') + call source.initialize() + elseif a:hook_name ==# 'on_final' && has_key(source, 'finalize') + call source.finalize() + endif + else + call call(source.hooks[a:hook_name], + \ [extend(source.neocomplcache__context, a:context)], + \ source.hooks) + endif + catch + call unite#print_error(v:throwpoint) + call unite#print_error(v:exception) + call unite#print_error( + \ '[unite.vim] Error occured in calling hook "' . a:hook_name . '"!') + call unite#print_error( + \ '[unite.vim] Source name is ' . source.name) + endtry + endfor +endfunction"}}} + +function! neocomplcache#helper#call_filters(filters, source, context) "{{{ + let context = extend(a:source.neocomplcache__context, a:context) + let _ = [] + for filter in neocomplcache#init#_filters( + \ neocomplcache#util#convert2list(a:filters)) + try + let context.candidates = call(filter.filter, [context], filter) + catch + call unite#print_error(v:throwpoint) + call unite#print_error(v:exception) + call unite#print_error( + \ '[unite.vim] Error occured in calling filter ' + \ . filter.name . '!') + call unite#print_error( + \ '[unite.vim] Source name is ' . a:source.name) + endtry + endfor + + return context.candidates +endfunction"}}} + +function! s:match_wildcard(cur_text, pattern, complete_pos) "{{{ + let complete_pos = a:complete_pos + while complete_pos > 1 && a:cur_text[complete_pos - 1] == '*' + let left_text = a:cur_text[: complete_pos - 2] + if left_text == '' || left_text !~ a:pattern + break + endif + + let complete_pos = match(left_text, a:pattern) + endwhile + + return complete_pos +endfunction"}}} + +function! s:keyword_escape(complete_str) "{{{ + let keyword_escape = escape(a:complete_str, '~" \.^$[]') + if g:neocomplcache_enable_wildcard + let keyword_escape = substitute( + \ substitute(keyword_escape, '.\zs\*', '.*', 'g'), + \ '\%(^\|\*\)\zs\*', '\\*', 'g') + else + let keyword_escape = escape(keyword_escape, '*') + endif + + return keyword_escape +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/init.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/init.vim new file mode 100644 index 0000000..67ab24d --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/init.vim @@ -0,0 +1,866 @@ +"============================================================================= +" FILE: init.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 24 Jun 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +if !exists('s:is_enabled') + let s:is_enabled = 0 +endif + +function! neocomplcache#init#lazy() "{{{ + if !exists('s:lazy_progress') + let s:lazy_progress = 0 + endif + + if s:lazy_progress == 0 + call neocomplcache#init#_others() + let s:is_enabled = 0 + elseif s:lazy_progress == 1 + call neocomplcache#init#_sources(get(g:neocomplcache_sources_list, + \ neocomplcache#get_context_filetype(), ['_'])) + else + call neocomplcache#init#_autocmds() + let s:is_enabled = 1 + endif + + let s:lazy_progress += 1 +endfunction"}}} + +function! neocomplcache#init#enable() "{{{ + if neocomplcache#is_enabled() + return + endif + + call neocomplcache#init#_autocmds() + call neocomplcache#init#_others() + + call neocomplcache#init#_sources(get(g:neocomplcache_sources_list, + \ neocomplcache#get_context_filetype(), ['_'])) + let s:is_enabled = 1 +endfunction"}}} + +function! neocomplcache#init#disable() "{{{ + if !neocomplcache#is_enabled() + call neocomplcache#print_warning( + \ 'neocomplcache is disabled! This command is ignored.') + return + endif + + let s:is_enabled = 0 + + augroup neocomplcache + autocmd! + augroup END + + delcommand NeoComplCacheDisable + + call neocomplcache#helper#call_hook(filter(values( + \ neocomplcache#variables#get_sources()), 'v:val.loaded'), + \ 'on_final', {}) +endfunction"}}} + +function! neocomplcache#init#is_enabled() "{{{ + return s:is_enabled +endfunction"}}} + +function! neocomplcache#init#_autocmds() "{{{ + augroup neocomplcache + autocmd! + autocmd InsertEnter * + \ call neocomplcache#handler#_on_insert_enter() + autocmd InsertLeave * + \ call neocomplcache#handler#_on_insert_leave() + autocmd CursorMovedI * + \ call neocomplcache#handler#_on_moved_i() + autocmd BufWritePost * + \ call neocomplcache#handler#_on_write_post() + augroup END + + if g:neocomplcache_enable_insert_char_pre + \ && (v:version > 703 || v:version == 703 && has('patch418')) + autocmd neocomplcache InsertCharPre * + \ call neocomplcache#handler#_do_auto_complete('InsertCharPre') + elseif g:neocomplcache_enable_cursor_hold_i + augroup neocomplcache + autocmd CursorHoldI * + \ call neocomplcache#handler#_do_auto_complete('CursorHoldI') + autocmd InsertEnter * + \ call neocomplcache#handler#_change_update_time() + autocmd InsertLeave * + \ call neocomplcache#handler#_restore_update_time() + augroup END + else + autocmd neocomplcache CursorMovedI * + \ call neocomplcache#handler#_do_auto_complete('CursorMovedI') + endif + + if (v:version > 703 || v:version == 703 && has('patch598')) + autocmd neocomplcache CompleteDone * + \ call neocomplcache#handler#_on_complete_done() + endif +endfunction"}}} + +function! neocomplcache#init#_others() "{{{ + call neocomplcache#init#_variables() + + call neocomplcache#context_filetype#initialize() + + call neocomplcache#commands#_initialize() + + " Save options. + let s:completefunc_save = &completefunc + let s:completeopt_save = &completeopt + + " Set completefunc. + let &completefunc = 'neocomplcache#complete#manual_complete' + + " For auto complete keymappings. + call neocomplcache#mappings#define_default_mappings() + + " Detect set paste. + if &paste + redir => output + 99verbose set paste + redir END + call neocomplcache#print_error(output) + call neocomplcache#print_error( + \ 'Detected set paste! Disabled neocomplcache.') + endif + + command! -nargs=0 -bar NeoComplCacheDisable + \ call neocomplcache#init#disable() +endfunction"}}} + +function! neocomplcache#init#_variables() "{{{ + " Initialize keyword patterns. "{{{ + call neocomplcache#util#set_default( + \ 'g:neocomplcache_keyword_patterns', {}) + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'_', + \'\k\+') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_keyword_patterns', + \'filename', + \ neocomplcache#util#is_windows() ? + \'\%(\a\+:/\)\?\%([/[:alnum:]()$+_~.\x80-\xff-]\|[^[:print:]]\|\\.\)\+' : + \'\%([/\[\][:alnum:]()$+_~.-]\|[^[:print:]]\|\\.\)\+') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'lisp,scheme,clojure,int-gosh,int-clisp,int-clj', + \'[[:alpha:]+*/@$_=.!?-][[:alnum:]+*/@$_:=.!?-]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'ruby,int-irb', + \'^=\%(b\%[egin]\|e\%[nd]\)\|\%(@@\|[:$@]\)\h\w*\|\h\w*\%(::\w*\)*[!?]\?') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'php,int-php', + \'\)\?'. + \'\|\$\h\w*\|\h\w*\%(\%(\\\|::\)\w*\)*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'perl,int-perlsh', + \'<\h\w*>\?\|[$@%&*]\h\w*\|\h\w*\%(::\w*\)*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'perl6,int-perl6', + \'<\h\w*>\?\|[$@%&][!.*?]\?\h[[:alnum:]_-]*'. + \'\|\h[[:alnum:]_-]*\%(::[[:alnum:]_-]*\)*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'pir', + \'[$@%.=]\?\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'pasm', + \'[=]\?\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'vim,help', + \'-\h[[:alnum:]-]*=\?\|\c\[:\%(\h\w*:\]\)\?\|&\h[[:alnum:]_:]*\|'. + \'\%(\h\w*\)\?\|([^)]*)\?'. + \'\|<\h[[:alnum:]_-]*>\?\|\h[[:alnum:]_:#]*!\?\|$\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'tex', + \'\\\a{\a\{1,2}}\|\\[[:alpha:]@][[:alnum:]@]*'. + \'\%({\%([[:alnum:]:_]\+\*\?}\?\)\?\)\?\|\a[[:alnum:]:_]*\*\?') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'sh,zsh,int-zsh,int-bash,int-sh', + \'[[:alpha:]_.-][[:alnum:]_.-]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'vimshell', + \'\$\$\?\w*\|[[:alpha:]_.\\/~-][[:alnum:]_.\\/~-]*\|\d\+\%(\.\d\+\)\+') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'ps1,int-powershell', + \'\[\h\%([[:alnum:]_.]*\]::\)\?\|[$%@.]\?[[:alpha:]_.:-][[:alnum:]_.:-]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'c', + \'^\s*#\s*\h\w*\|\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'cpp', + \'^\s*#\s*\h\w*\|\h\w*\%(::\w*\)*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'objc', + \'^\s*#\s*\h\w*\|\h\w*\|@\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'objcpp', + \'^\s*#\s*\h\w*\|\h\w*\%(::\w*\)*\|@\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'objj', + \'\h\w*\|@\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'d', + \'\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'python,int-python,int-ipython', + \'[@]\?\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'cs', + \'\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'java', + \'[@]\?\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'javascript,actionscript,int-js,int-kjs,int-rhino', + \'\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'coffee,int-coffee', + \'[@]\?\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'awk', + \'\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'haskell,int-ghci', + \'\%(\u\w*\.\)\+[[:alnum:]_'']*\|[[:alpha:]_''][[:alnum:]_'']*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'ml,ocaml,int-ocaml,int-sml,int-smlsharp', + \'[''`#.]\?\h[[:alnum:]_'']*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'erlang,int-erl', + \'^\s*-\h\w*\|\%(\h\w*:\)*\h\w\|\h[[:alnum:]_@]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'html,xhtml,xml,markdown,eruby', + \'\)\?\|&\h\%(\w*;\)\?'. + \'\|\h[[:alnum:]_-]*="\%([^"]*"\?\)\?\|\h[[:alnum:]_:-]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'css,stylus,scss,less', + \'[@#.]\?[[:alpha:]_:-][[:alnum:]_:-]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'tags', + \'^[^!][^/[:blank:]]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'pic', + \'^\s*#\h\w*\|\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'arm', + \'\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'asmh8300', + \'[[:alpha:]_.][[:alnum:]_.]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'masm', + \'\.\h\w*\|[[:alpha:]_@?$][[:alnum:]_@?$]*\|\h\w*:\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'nasm', + \'^\s*\[\h\w*\|[%.]\?\h\w*\|\%(\.\.@\?\|%[%$!]\)\%(\h\w*\)\?\|\h\w*:\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'asm', + \'[%$.]\?\h\w*\%(\$\h\w*\)\?') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'gas', + \'[$.]\?\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'gdb,int-gdb', + \'$\h\w*\|[[:alnum:]:._-]\+') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'make', + \'[[:alpha:]_.-][[:alnum:]_.-]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'scala,int-scala', + \'\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'int-termtter', + \'\h[[:alnum:]_/-]*\|\$\a\+\|#\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'int-earthquake', + \'[:#$]\h\w*\|\h[[:alnum:]_/-]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'dosbatch,int-cmdproxy', + \'\$\w+\|[[:alpha:]_./-][[:alnum:]_.-]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'vb', + \'\h\w*\|#\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'lua', + \'\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \ 'zimbu', + \'\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'konoha', + \'[*$@%]\h\w*\|\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'cobol', + \'\a[[:alnum:]-]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'coq', + \'\h[[:alnum:]_'']*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'tcl', + \'[.-]\h\w*\|\h\w*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_keyword_patterns', + \'nyaos,int-nyaos', + \'\h\w*') + "}}} + + " Initialize next keyword patterns. "{{{ + call neocomplcache#util#set_default( + \ 'g:neocomplcache_next_keyword_patterns', {}) + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_next_keyword_patterns', 'perl', + \'\h\w*>') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_next_keyword_patterns', 'perl6', + \'\h\w*>') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_next_keyword_patterns', 'vim,help', + \'\w*()\?\|\w*:\]\|[[:alnum:]_-]*[)>=]') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_next_keyword_patterns', 'python', + \'\w*()\?') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_next_keyword_patterns', 'tex', + \'[[:alnum:]:_]\+[*[{}]') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_next_keyword_patterns', 'html,xhtml,xml,mkd', + \'[^"]*"\|[[:alnum:]_:-]*>') + "}}} + + " Initialize same file type lists. "{{{ + call neocomplcache#util#set_default( + \ 'g:neocomplcache_same_filetype_lists', {}) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'c', 'cpp') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'cpp', 'c') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'erb', 'ruby,html,xhtml') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'html,xml', 'xhtml') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'html,xhtml', 'css,stylus,less') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'css', 'scss') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'scss', 'css') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'stylus', 'css') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'less', 'css') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'xhtml', 'html,xml') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'help', 'vim') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'tex', 'bib,plaintex') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'plaintex', 'bib,tex') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'lingr-say', 'lingr-messages,lingr-members') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'J6uil_say', 'J6uil') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'vimconsole', 'vim') + + " Interactive filetypes. + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-irb', 'ruby') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-ghci,int-hugs', 'haskell') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-python,int-ipython', 'python') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-gosh', 'scheme') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-clisp', 'lisp') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-erl', 'erlang') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-zsh', 'zsh') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-bash', 'bash') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-sh', 'sh') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-cmdproxy', 'dosbatch') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-powershell', 'powershell') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-perlsh', 'perl') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-perl6', 'perl6') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-ocaml', 'ocaml') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-clj', 'clojure') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-sml,int-smlsharp', 'sml') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-js,int-kjs,int-rhino', 'javascript') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-coffee', 'coffee') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-gdb', 'gdb') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-scala', 'scala') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-nyaos', 'nyaos') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists', + \ 'int-php', 'php') + "}}} + + " Initialize delimiter patterns. "{{{ + call neocomplcache#util#set_default( + \ 'g:neocomplcache_delimiter_patterns', {}) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_delimiter_patterns', + \ 'vim,help', ['#']) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_delimiter_patterns', + \ 'erlang,lisp,int-clisp', [':']) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_delimiter_patterns', + \ 'lisp,int-clisp', ['/', ':']) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_delimiter_patterns', + \ 'clojure,int-clj', ['/', '\.']) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_delimiter_patterns', + \ 'perl,cpp', ['::']) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_delimiter_patterns', + \ 'php', ['\', '::']) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_delimiter_patterns', + \ 'java,d,javascript,actionscript,'. + \ 'ruby,eruby,haskell,int-ghci,coffee,zimbu,konoha', + \ ['\.']) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_delimiter_patterns', + \ 'lua', ['\.', ':']) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_delimiter_patterns', + \ 'perl6', ['\.', '::']) + "}}} + + " Initialize ctags arguments. "{{{ + call neocomplcache#util#set_default( + \ 'g:neocomplcache_ctags_arguments_list', {}) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_ctags_arguments_list', + \ '_', '') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_ctags_arguments_list', 'vim', + \ '--extra=fq --fields=afmiKlnsStz ' . + \ "--regex-vim='/function!? ([a-z#:_0-9A-Z]+)/\\1/function/'") + if neocomplcache#util#is_mac() + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_ctags_arguments_list', 'c', + \ '--c-kinds=+p --fields=+iaS --extra=+q + \ -I__DARWIN_ALIAS,__DARWIN_ALIAS_C,__DARWIN_ALIAS_I,__DARWIN_INODE64 + \ -I__DARWIN_1050,__DARWIN_1050ALIAS,__DARWIN_1050ALIAS_C,__DARWIN_1050ALIAS_I,__DARWIN_1050INODE64 + \ -I__DARWIN_EXTSN,__DARWIN_EXTSN_C + \ -I__DARWIN_LDBL_COMPAT,__DARWIN_LDBL_COMPAT2') + else + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_ctags_arguments_list', 'c', + \ '-R --sort=1 --c-kinds=+p --fields=+iaS --extra=+q ' . + \ '-I __wur,__THROW,__attribute_malloc__,__nonnull+,'. + \ '__attribute_pure__,__attribute_warn_unused_result__,__attribute__+') + endif + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_ctags_arguments_list', 'cpp', + \ '--language-force=C++ -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q '. + \ '-I __wur,__THROW,__attribute_malloc__,__nonnull+,'. + \ '__attribute_pure__,__attribute_warn_unused_result__,__attribute__+') + "}}} + + " Initialize text mode filetypes. "{{{ + call neocomplcache#util#set_default( + \ 'g:neocomplcache_text_mode_filetypes', {}) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_text_mode_filetypes', + \ 'hybrid,text,help,tex,gitcommit,gitrebase,vcs-commit,markdown,'. + \ 'textile,creole,org,rdoc,mediawiki,rst,asciidoc,pod', 1) + "}}} + + " Initialize tags filter patterns. "{{{ + call neocomplcache#util#set_default( + \ 'g:neocomplcache_tags_filter_patterns', {}) + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_tags_filter_patterns', 'c,cpp', + \'v:val.word !~ ''^[~_]''') + "}}} + + " Initialize force omni completion pattern. "{{{ + call neocomplcache#util#set_default( + \ 'g:neocomplcache_force_omni_patterns', {}) + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_force_omni_patterns', 'objc', + \'\h\w\+\|[^.[:digit:] *\t]\%(\.\|->\)') + "}}} + + " Initialize ignore composite filetypes + call neocomplcache#util#set_default( + \ 'g:neocomplcache_ignore_composite_filetype_lists', {}) + + " Must g:neocomplcache_auto_completion_start_length > 1. + if g:neocomplcache_auto_completion_start_length < 1 + let g:neocomplcache_auto_completion_start_length = 1 + endif + " Must g:neocomplcache_min_keyword_length > 1. + if g:neocomplcache_min_keyword_length < 1 + let g:neocomplcache_min_keyword_length = 1 + endif + + " Initialize omni function list. "{{{ + if !exists('g:neocomplcache_omni_functions') + let g:neocomplcache_omni_functions = {} + endif + "}}} + + " Set custom. + call s:set_default_custom() +endfunction"}}} + +function! neocomplcache#init#_current_neocomplcache() "{{{ + let b:neocomplcache = { + \ 'context' : { + \ 'input' : '', + \ 'complete_pos' : -1, + \ 'complete_str' : '', + \ 'candidates' : [], + \ }, + \ 'lock' : 0, + \ 'skip_next_complete' : 0, + \ 'filetype' : '', + \ 'context_filetype' : '', + \ 'context_filetype_range' : + \ [[1, 1], [line('$'), len(getline('$'))+1]], + \ 'completion_length' : -1, + \ 'update_time_save' : &updatetime, + \ 'foldinfo' : [], + \ 'lock_sources' : {}, + \ 'skipped' : 0, + \ 'event' : '', + \ 'cur_text' : '', + \ 'old_cur_text' : '', + \ 'complete_str' : '', + \ 'complete_pos' : -1, + \ 'candidates' : [], + \ 'complete_results' : [], + \ 'complete_sources' : [], + \ 'manual_sources' : [], + \ 'start_time' : reltime(), + \} +endfunction"}}} + +function! neocomplcache#init#_sources(names) "{{{ + if !exists('s:loaded_source_files') + " Initialize. + let s:loaded_source_files = {} + let s:loaded_all_sources = 0 + let s:runtimepath_save = '' + endif + + " Initialize sources table. + if s:loaded_all_sources && &runtimepath ==# s:runtimepath_save + return + endif + + let runtimepath_save = neocomplcache#util#split_rtp(s:runtimepath_save) + let runtimepath = neocomplcache#util#join_rtp( + \ filter(neocomplcache#util#split_rtp(), + \ 'index(runtimepath_save, v:val) < 0')) + let sources = neocomplcache#variables#get_sources() + + for name in filter(copy(a:names), '!has_key(sources, v:val)') + " Search autoload. + for source_name in map(split(globpath(runtimepath, + \ 'autoload/neocomplcache/sources/*.vim'), '\n'), + \ "fnamemodify(v:val, ':t:r')") + if has_key(s:loaded_source_files, source_name) + continue + endif + + let s:loaded_source_files[source_name] = 1 + + let source = neocomplcache#sources#{source_name}#define() + if empty(source) + " Ignore. + continue + endif + + call neocomplcache#define_source(source) + endfor + + if name == '_' + let s:loaded_all_sources = 1 + let s:runtimepath_save = &runtimepath + endif + endfor +endfunction"}}} + +function! neocomplcache#init#_source(source) "{{{ + let default = { + \ 'max_candidates' : 0, + \ 'filetypes' : {}, + \ 'hooks' : {}, + \ 'matchers' : ['matcher_old'], + \ 'sorters' : ['sorter_rank'], + \ 'converters' : [ + \ 'converter_remove_next_keyword', + \ 'converter_delimiter', + \ 'converter_case', + \ 'converter_abbr', + \ ], + \ 'neocomplcache__context' : copy(neocomplcache#get_context()), + \ } + + let source = extend(copy(default), a:source) + + " Overwritten by user custom. + let custom = neocomplcache#variables#get_custom().sources + let source = extend(source, get(custom, source.name, + \ get(custom, '_', {}))) + + let source.loaded = 0 + " Source kind convertion. + if source.kind ==# 'plugin' || + \ (!has_key(source, 'gather_candidates') && + \ !has_key(source, 'get_complete_words')) + let source.kind = 'keyword' + elseif source.kind ==# 'ftplugin' || source.kind ==# 'complfunc' + " For compatibility. + let source.kind = 'manual' + else + let source.kind = 'manual' + endif + + if !has_key(source, 'rank') + " Set default rank. + let source.rank = (source.kind ==# 'keyword') ? 5 : + \ empty(source.filetypes) ? 10 : 100 + endif + + if !has_key(source, 'min_pattern_length') + " Set min_pattern_length. + let source.min_pattern_length = (source.kind ==# 'keyword') ? + \ g:neocomplcache_auto_completion_start_length : 0 + endif + + let source.neocomplcache__context.source_name = source.name + + " Note: This routine is for compatibility of old sources implementation. + " Initialize sources. + if empty(source.filetypes) && has_key(source, 'initialize') + try + call source.initialize() + catch + call neocomplcache#print_error(v:throwpoint) + call neocomplcache#print_error(v:exception) + call neocomplcache#print_error( + \ 'Error occured in source''s initialize()!') + call neocomplcache#print_error( + \ 'Source name is ' . source.name) + endtry + + let source.loaded = 1 + endif + + return source +endfunction"}}} + +function! neocomplcache#init#_filters(names) "{{{ + let _ = [] + let filters = neocomplcache#variables#get_filters() + + for name in a:names + if !has_key(filters, name) + " Search autoload. + for filter_name in map(split(globpath(&runtimepath, + \ 'autoload/neocomplcache/filters/'. + \ substitute(name, + \'^\%(matcher\|sorter\|converter\)_[^/_-]\+\zs[/_-].*$', '', '') + \ .'*.vim'), '\n'), "fnamemodify(v:val, ':t:r')") + let filter = neocomplcache#filters#{filter_name}#define() + if empty(filter) + " Ignore. + continue + endif + + call neocomplcache#define_filter(filter) + endfor + + if !has_key(filters, name) + " Not found. + call neocomplcache#print_error( + \ printf('filter name : %s is not found.', string(name))) + continue + endif + endif + + if has_key(filters, name) + call add(_, filters[name]) + endif + endfor + + return _ +endfunction"}}} + +function! neocomplcache#init#_filter(filter) "{{{ + let default = { + \ } + + let filter = extend(default, a:filter) + if !has_key(filter, 'kind') + let filter.kind = + \ (filter.name =~# '^matcher_') ? 'matcher' : + \ (filter.name =~# '^sorter_') ? 'sorter' : 'converter' + endif + + return filter +endfunction"}}} + +function! s:set_default_custom() "{{{ + let custom = neocomplcache#variables#get_custom().sources + + " Initialize completion length. + for [source_name, length] in items( + \ g:neocomplcache_source_completion_length) + if !has_key(custom, source_name) + let custom[source_name] = {} + endif + let custom[source_name].min_pattern_length = length + endfor + + " Initialize rank. + for [source_name, rank] in items( + \ g:neocomplcache_source_rank) + if !has_key(custom, source_name) + let custom[source_name] = {} + endif + let custom[source_name].rank = rank + endfor +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/mappings.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/mappings.vim new file mode 100644 index 0000000..4e06b1b --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/mappings.vim @@ -0,0 +1,188 @@ +"============================================================================= +" FILE: mappings.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 19 May 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#mappings#define_default_mappings() "{{{ + inoremap (neocomplcache_start_unite_complete) + \ unite#sources#neocomplcache#start_complete() + inoremap (neocomplcache_start_unite_quick_match) + \ unite#sources#neocomplcache#start_quick_match() + inoremap (neocomplcache_start_auto_complete) + \ =neocomplcache#mappings#popup_post() + inoremap (neocomplcache_start_auto_complete_no_select) + \ + " \ + inoremap (neocomplcache_start_omni_complete) + \ +endfunction"}}} + +function! neocomplcache#mappings#smart_close_popup() "{{{ + return g:neocomplcache_enable_auto_select ? + \ neocomplcache#mappings#cancel_popup() : + \ neocomplcache#mappings#close_popup() +endfunction +"}}} +function! neocomplcache#mappings#close_popup() "{{{ + let neocomplcache = neocomplcache#get_current_neocomplcache() + let neocomplcache.complete_str = '' + let neocomplcache.skip_next_complete = 2 + let neocomplcache.candidates = [] + + return pumvisible() ? "\" : '' +endfunction +"}}} +function! neocomplcache#mappings#cancel_popup() "{{{ + let neocomplcache = neocomplcache#get_current_neocomplcache() + let neocomplcache.skip_next_complete = 1 + call neocomplcache#helper#clear_result() + + return pumvisible() ? "\" : '' +endfunction +"}}} + +function! neocomplcache#mappings#popup_post() "{{{ + return !pumvisible() ? "" : + \ g:neocomplcache_enable_auto_select ? "\\" : + \ "\" +endfunction"}}} + +function! neocomplcache#mappings#undo_completion() "{{{ + if !exists(':NeoComplCacheDisable') + return '' + endif + + let neocomplcache = neocomplcache#get_current_neocomplcache() + + " Get cursor word. + let [complete_pos, complete_str] = + \ neocomplcache#match_word(neocomplcache#get_cur_text(1)) + let old_keyword_str = neocomplcache.complete_str + let neocomplcache.complete_str = complete_str + + return (!pumvisible() ? '' : + \ complete_str ==# old_keyword_str ? "\" : "\") + \. repeat("\", len(complete_str)) . old_keyword_str +endfunction"}}} + +function! neocomplcache#mappings#complete_common_string() "{{{ + if !exists(':NeoComplCacheDisable') + return '' + endif + + " Save options. + let ignorecase_save = &ignorecase + + " Get cursor word. + let [complete_pos, complete_str] = + \ neocomplcache#match_word(neocomplcache#get_cur_text(1)) + + if neocomplcache#is_text_mode() + let &ignorecase = 1 + elseif g:neocomplcache_enable_smart_case && complete_str =~ '\u' + let &ignorecase = 0 + else + let &ignorecase = g:neocomplcache_enable_ignore_case + endif + + let is_fuzzy = g:neocomplcache_enable_fuzzy_completion + + try + let g:neocomplcache_enable_fuzzy_completion = 0 + let neocomplcache = neocomplcache#get_current_neocomplcache() + let candidates = neocomplcache#keyword_filter( + \ copy(neocomplcache.candidates), complete_str) + finally + let g:neocomplcache_enable_fuzzy_completion = is_fuzzy + endtry + + if empty(candidates) + let &ignorecase = ignorecase_save + + return '' + endif + + let common_str = candidates[0].word + for keyword in candidates[1:] + while !neocomplcache#head_match(keyword.word, common_str) + let common_str = common_str[: -2] + endwhile + endfor + if &ignorecase + let common_str = tolower(common_str) + endif + + let &ignorecase = ignorecase_save + + if common_str == '' + return '' + endif + + return (pumvisible() ? "\" : '') + \ . repeat("\", len(complete_str)) . common_str +endfunction"}}} + +" Manual complete wrapper. +function! neocomplcache#mappings#start_manual_complete(...) "{{{ + if !neocomplcache#is_enabled() + return '' + endif + + " Set context filetype. + call neocomplcache#context_filetype#set() + + let neocomplcache = neocomplcache#get_current_neocomplcache() + + let sources = get(a:000, 0, + \ keys(neocomplcache#available_sources())) + let neocomplcache.manual_sources = neocomplcache#helper#get_sources_list( + \ neocomplcache#util#convert2list(sources)) + + " Set function. + let &l:completefunc = 'neocomplcache#complete#sources_manual_complete' + + " Start complete. + return "\\\" +endfunction"}}} + +function! neocomplcache#mappings#start_manual_complete_list(complete_pos, complete_str, candidates) "{{{ + let neocomplcache = neocomplcache#get_current_neocomplcache() + let [neocomplcache.complete_pos, + \ neocomplcache.complete_str, neocomplcache.candidates] = + \ [a:complete_pos, a:complete_str, a:candidates] + + " Set function. + let &l:completefunc = 'neocomplcache#complete#auto_complete' + + " Start complete. + return "\\\" +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/buffer_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/buffer_complete.vim new file mode 100644 index 0000000..f6791d8 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/buffer_complete.vim @@ -0,0 +1,435 @@ +"============================================================================= +" FILE: buffer_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 27 May 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +" Important variables. +if !exists('s:buffer_sources') + let s:buffer_sources = {} + let s:async_dictionary_list = {} +endif + +let s:source = { + \ 'name' : 'buffer_complete', + \ 'kind' : 'manual', + \ 'mark' : '[B]', + \ 'rank' : 5, + \ 'min_pattern_length' : + \ g:neocomplcache_auto_completion_start_length, + \ 'hooks' : {}, + \} + +function! s:source.hooks.on_init(context) "{{{ + let s:buffer_sources = {} + + augroup neocomplcache "{{{ + " Caching events + autocmd BufEnter,BufRead,BufWinEnter * + \ call s:check_source() + autocmd CursorHold,CursorHoldI * + \ call s:check_cache() + autocmd BufWritePost * + \ call s:check_recache() + autocmd InsertEnter,InsertLeave * + \ call neocomplcache#sources#buffer_complete#caching_current_line() + augroup END"}}} + + " Create cache directory. + if !isdirectory(neocomplcache#get_temporary_directory() . '/buffer_cache') + call mkdir(neocomplcache#get_temporary_directory() . '/buffer_cache', 'p') + endif + + " Initialize script variables. "{{{ + let s:buffer_sources = {} + let s:cache_line_count = 70 + let s:rank_cache_count = 1 + let s:disable_caching_list = {} + let s:async_dictionary_list = {} + "}}} + + call s:check_source() +endfunction +"}}} + +function! s:source.hooks.on_final(context) "{{{ + delcommand NeoComplCacheCachingBuffer + delcommand NeoComplCachePrintSource + delcommand NeoComplCacheOutputKeyword + delcommand NeoComplCacheDisableCaching + delcommand NeoComplCacheEnableCaching + + let s:buffer_sources = {} +endfunction"}}} + +function! s:source.gather_candidates(context) "{{{ + call s:check_source() + + let keyword_list = [] + for [key, source] in s:get_sources_list() + call neocomplcache#cache#check_cache_list('buffer_cache', + \ source.path, s:async_dictionary_list, source.keyword_cache, 1) + + let keyword_list += neocomplcache#dictionary_filter( + \ source.keyword_cache, a:context.complete_str) + if key == bufnr('%') + let source.accessed_time = localtime() + endif + endfor + + return keyword_list +endfunction"}}} + +function! neocomplcache#sources#buffer_complete#define() "{{{ + return s:source +endfunction"}}} + +function! neocomplcache#sources#buffer_complete#get_frequencies() "{{{ + " Current line caching. + return get(get(s:buffer_sources, bufnr('%'), {}), 'frequencies', {}) +endfunction"}}} +function! neocomplcache#sources#buffer_complete#caching_current_line() "{{{ + " Current line caching. + return s:caching_current_buffer( + \ max([1, line('.') - 10]), min([line('.') + 10, line('$')])) +endfunction"}}} +function! neocomplcache#sources#buffer_complete#caching_current_block() "{{{ + " Current line caching. + return s:caching_current_buffer( + \ max([1, line('.') - 500]), min([line('.') + 500, line('$')])) +endfunction"}}} +function! s:caching_current_buffer(start, end) "{{{ + " Current line caching. + + if !s:exists_current_source() + call s:word_caching(bufnr('%')) + endif + + let source = s:buffer_sources[bufnr('%')] + let keyword_pattern = source.keyword_pattern + let keyword_pattern2 = '^\%('.keyword_pattern.'\m\)' + let keywords = source.keyword_cache + + let completion_length = 2 + let line = join(getline(a:start, a:end)) + let match = match(line, keyword_pattern) + while match >= 0 "{{{ + let match_str = matchstr(line, keyword_pattern2, match) + + " Ignore too short keyword. + if len(match_str) >= g:neocomplcache_min_keyword_length "{{{ + " Check dup. + let key = tolower(match_str[: completion_length-1]) + if !has_key(keywords, key) + let keywords[key] = {} + endif + if !has_key(keywords[key], match_str) + " Append list. + let keywords[key][match_str] = match_str + let source.frequencies[match_str] = 30 + endif + endif"}}} + + " Next match. + let match = match(line, keyword_pattern, match + len(match_str)) + endwhile"}}} +endfunction"}}} + +function! s:get_sources_list() "{{{ + let sources_list = [] + + let filetypes_dict = {} + for filetype in neocomplcache#get_source_filetypes( + \ neocomplcache#get_context_filetype()) + let filetypes_dict[filetype] = 1 + endfor + + for [key, source] in items(s:buffer_sources) + if has_key(filetypes_dict, source.filetype) + \ || has_key(filetypes_dict, '_') + \ || bufnr('%') == key + \ || (source.name ==# '[Command Line]' && bufnr('#') == key) + call add(sources_list, [key, source]) + endif + endfor + + return sources_list +endfunction"}}} + +function! s:initialize_source(srcname) "{{{ + let path = fnamemodify(bufname(a:srcname), ':p') + let filename = fnamemodify(path, ':t') + if filename == '' + let filename = '[No Name]' + let path .= '/[No Name]' + endif + + let ft = getbufvar(a:srcname, '&filetype') + if ft == '' + let ft = 'nothing' + endif + + let buflines = getbufline(a:srcname, 1, '$') + let keyword_pattern = neocomplcache#get_keyword_pattern(ft) + + let s:buffer_sources[a:srcname] = { + \ 'keyword_cache' : {}, + \ 'frequencies' : {}, + \ 'name' : filename, 'filetype' : ft, + \ 'keyword_pattern' : keyword_pattern, + \ 'end_line' : len(buflines), + \ 'accessed_time' : 0, + \ 'cached_time' : 0, + \ 'path' : path, 'loaded_cache' : 0, + \ 'cache_name' : neocomplcache#cache#encode_name( + \ 'buffer_cache', path), + \} +endfunction"}}} + +function! s:word_caching(srcname) "{{{ + " Initialize source. + call s:initialize_source(a:srcname) + + let source = s:buffer_sources[a:srcname] + + if !filereadable(source.path) + \ || getbufvar(a:srcname, '&buftype') =~ 'nofile' + return + endif + + let source.cache_name = + \ neocomplcache#cache#async_load_from_file( + \ 'buffer_cache', source.path, + \ source.keyword_pattern, 'B') + let source.cached_time = localtime() + let source.end_line = len(getbufline(a:srcname, 1, '$')) + let s:async_dictionary_list[source.path] = [{ + \ 'filename' : source.path, + \ 'cachename' : source.cache_name, + \ }] +endfunction"}}} + +function! s:check_changed_buffer(bufnumber) "{{{ + let source = s:buffer_sources[a:bufnumber] + + let ft = getbufvar(a:bufnumber, '&filetype') + if ft == '' + let ft = 'nothing' + endif + + let filename = fnamemodify(bufname(a:bufnumber), ':t') + if filename == '' + let filename = '[No Name]' + endif + + return s:buffer_sources[a:bufnumber].name != filename + \ || s:buffer_sources[a:bufnumber].filetype != ft +endfunction"}}} + +function! s:check_source() "{{{ + if !s:exists_current_source() + call neocomplcache#sources#buffer_complete#caching_current_block() + return + endif + + for bufnumber in range(1, bufnr('$')) + " Check new buffer. + let bufname = fnamemodify(bufname(bufnumber), ':p') + if (!has_key(s:buffer_sources, bufnumber) + \ || s:check_changed_buffer(bufnumber)) + \ && !has_key(s:disable_caching_list, bufnumber) + \ && (!neocomplcache#is_locked(bufnumber) || + \ g:neocomplcache_disable_auto_complete) + \ && !getwinvar(bufwinnr(bufnumber), '&previewwindow') + \ && getfsize(bufname) < + \ g:neocomplcache_caching_limit_file_size + " Caching. + call s:word_caching(bufnumber) + endif + + if has_key(s:buffer_sources, bufnumber) + let source = s:buffer_sources[bufnumber] + call neocomplcache#cache#check_cache_list('buffer_cache', + \ source.path, s:async_dictionary_list, source.keyword_cache, 1) + endif + endfor +endfunction"}}} +function! s:check_cache() "{{{ + let release_accessd_time = + \ localtime() - g:neocomplcache_release_cache_time + + for [key, source] in items(s:buffer_sources) + " Check deleted buffer and access time. + if !bufloaded(str2nr(key)) + \ || (source.accessed_time > 0 && + \ source.accessed_time < release_accessd_time) + " Remove item. + call remove(s:buffer_sources, key) + endif + endfor +endfunction"}}} +function! s:check_recache() "{{{ + if !s:exists_current_source() + return + endif + + let release_accessd_time = + \ localtime() - g:neocomplcache_release_cache_time + + let source = s:buffer_sources[bufnr('%')] + + " Check buffer access time. + if (source.cached_time > 0 && source.cached_time < release_accessd_time) + \ || (neocomplcache#util#has_vimproc() && line('$') != source.end_line) + " Buffer recache. + if g:neocomplcache_enable_debug + echomsg 'Caching buffer: ' . bufname('%') + endif + + call neocomplcache#sources#buffer_complete#caching_current_block() + endif +endfunction"}}} + +function! s:exists_current_source() "{{{ + return has_key(s:buffer_sources, bufnr('%')) +endfunction"}}} + +" Command functions. "{{{ +function! neocomplcache#sources#buffer_complete#caching_buffer(name) "{{{ + if a:name == '' + let number = bufnr('%') + else + let number = bufnr(a:name) + + if number < 0 + let bufnr = bufnr('%') + + " No swap warning. + let save_shm = &shortmess + set shortmess+=A + + " Open new buffer. + execute 'silent! edit' fnameescape(a:name) + + let &shortmess = save_shm + + if bufnr('%') != bufnr + setlocal nobuflisted + execute 'buffer' bufnr + endif + endif + + let number = bufnr(a:name) + endif + + " Word recaching. + call s:word_caching(number) + call s:caching_current_buffer(1, line('$')) +endfunction"}}} +function! neocomplcache#sources#buffer_complete#print_source(name) "{{{ + if a:name == '' + let number = bufnr('%') + else + let number = bufnr(a:name) + + if number < 0 + call neocomplcache#print_error('Invalid buffer name.') + return + endif + endif + + if !has_key(s:buffer_sources, number) + return + endif + + silent put=printf('Print neocomplcache %d source.', number) + for key in keys(s:buffer_sources[number]) + silent put =printf('%s => %s', key, string(s:buffer_sources[number][key])) + endfor +endfunction"}}} +function! neocomplcache#sources#buffer_complete#output_keyword(name) "{{{ + if a:name == '' + let number = bufnr('%') + else + let number = bufnr(a:name) + + if number < 0 + call neocomplcache#print_error('Invalid buffer name.') + return + endif + endif + + if !has_key(s:buffer_sources, number) + return + endif + + " Output buffer. + for keyword in neocomplcache#unpack_dictionary( + \ s:buffer_sources[number].keyword_cache) + silent put=string(keyword) + endfor +endfunction "}}} +function! neocomplcache#sources#buffer_complete#disable_caching(name) "{{{ + if a:name == '' + let number = bufnr('%') + else + let number = bufnr(a:name) + + if number < 0 + call neocomplcache#print_error('Invalid buffer name.') + return + endif + endif + + let s:disable_caching_list[number] = 1 + + if has_key(s:buffer_sources, number) + " Delete source. + call remove(s:buffer_sources, number) + endif +endfunction"}}} +function! neocomplcache#sources#buffer_complete#enable_caching(name) "{{{ + if a:name == '' + let number = bufnr('%') + else + let number = bufnr(a:name) + + if number < 0 + call neocomplcache#print_error('Invalid buffer name.') + return + endif + endif + + if has_key(s:disable_caching_list, number) + call remove(s:disable_caching_list, number) + endif +endfunction"}}} +"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/dictionary_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/dictionary_complete.vim new file mode 100644 index 0000000..6c542f1 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/dictionary_complete.vim @@ -0,0 +1,172 @@ +"============================================================================= +" FILE: dictionary_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 28 Apr 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +" Important variables. +if !exists('s:dictionary_list') + let s:dictionary_list = {} + let s:async_dictionary_list = {} +endif + +function! neocomplcache#sources#dictionary_complete#define() "{{{ + return s:source +endfunction"}}} + +let s:source = { + \ 'name' : 'dictionary_complete', + \ 'kind' : 'keyword', + \ 'mark' : '[D]', + \ 'rank' : 4, + \} + +function! s:source.initialize() "{{{ + " Initialize dictionary. "{{{ + if !exists('g:neocomplcache_dictionary_filetype_lists') + let g:neocomplcache_dictionary_filetype_lists = {} + endif + if !has_key(g:neocomplcache_dictionary_filetype_lists, 'default') + let g:neocomplcache_dictionary_filetype_lists['default'] = '' + endif + "}}} + + " Initialize dictionary completion pattern. "{{{ + if !exists('g:neocomplcache_dictionary_patterns') + let g:neocomplcache_dictionary_patterns = {} + endif + "}}} + + " Set caching event. + autocmd neocomplcache FileType * call s:caching() + + " Create cache directory. + if !isdirectory(neocomplcache#get_temporary_directory() . '/dictionary_cache') + call mkdir(neocomplcache#get_temporary_directory() . '/dictionary_cache') + endif + + " Initialize check. + call s:caching() +endfunction"}}} + +function! s:source.finalize() "{{{ + delcommand NeoComplCacheCachingDictionary +endfunction"}}} + +function! s:source.get_keyword_list(complete_str) "{{{ + let list = [] + + let filetype = neocomplcache#is_text_mode() ? + \ 'text' : neocomplcache#get_context_filetype() + if !has_key(s:dictionary_list, filetype) + " Caching. + call s:caching() + endif + + for ft in neocomplcache#get_source_filetypes(filetype) + call neocomplcache#cache#check_cache('dictionary_cache', ft, + \ s:async_dictionary_list, s:dictionary_list, 1) + + for dict in neocomplcache#get_sources_list(s:dictionary_list, ft) + let list += neocomplcache#dictionary_filter(dict, a:complete_str) + endfor + endfor + + return list +endfunction"}}} + +function! s:caching() "{{{ + if !bufloaded(bufnr('%')) + return + endif + + let key = neocomplcache#is_text_mode() ? + \ 'text' : neocomplcache#get_context_filetype() + for filetype in neocomplcache#get_source_filetypes(key) + if !has_key(s:dictionary_list, filetype) + \ && !has_key(s:async_dictionary_list, filetype) + call neocomplcache#sources#dictionary_complete#recaching(filetype) + endif + endfor +endfunction"}}} + +function! s:caching_dictionary(filetype) + let filetype = a:filetype + if filetype == '' + let filetype = neocomplcache#get_context_filetype(1) + endif + + if has_key(s:async_dictionary_list, filetype) + \ && filereadable(s:async_dictionary_list[filetype].cache_name) + " Delete old cache. + call delete(s:async_dictionary_list[filetype].cache_name) + endif + + call neocomplcache#sources#dictionary_complete#recaching(filetype) +endfunction +function! neocomplcache#sources#dictionary_complete#recaching(filetype) "{{{ + if !exists('g:neocomplcache_dictionary_filetype_lists') + call neocomplcache#initialize() + endif + + let filetype = a:filetype + if filetype == '' + let filetype = neocomplcache#get_context_filetype(1) + endif + + " Caching. + let dictionaries = get( + \ g:neocomplcache_dictionary_filetype_lists, filetype, '') + + if dictionaries == '' + if filetype != &filetype && + \ &l:dictionary != '' && &l:dictionary !=# &g:dictionary + let dictionaries .= &l:dictionary + endif + endif + + let s:async_dictionary_list[filetype] = [] + + let pattern = get(g:neocomplcache_dictionary_patterns, filetype, + \ neocomplcache#get_keyword_pattern(filetype)) + for dictionary in split(dictionaries, ',') + let dictionary = neocomplcache#util#substitute_path_separator( + \ fnamemodify(dictionary, ':p')) + if filereadable(dictionary) + call neocomplcache#print_debug('Caching dictionary: ' . dictionary) + call add(s:async_dictionary_list[filetype], { + \ 'filename' : dictionary, + \ 'cachename' : neocomplcache#cache#async_load_from_file( + \ 'dictionary_cache', dictionary, pattern, 'D') + \ }) + endif + endfor +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/filename_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/filename_complete.vim new file mode 100644 index 0000000..98a265d --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/filename_complete.vim @@ -0,0 +1,202 @@ +"============================================================================= +" FILE: filename_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 20 Jun 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +let s:source = { + \ 'name' : 'filename_complete', + \ 'kind' : 'manual', + \ 'mark' : '[F]', + \ 'rank' : 3, + \ 'min_pattern_length' : + \ g:neocomplcache_auto_completion_start_length, + \} + +function! s:source.initialize() "{{{ +endfunction"}}} +function! s:source.finalize() "{{{ +endfunction"}}} + +function! s:source.get_keyword_pos(cur_text) "{{{ + let filetype = neocomplcache#get_context_filetype() + if filetype ==# 'vimshell' || filetype ==# 'unite' || filetype ==# 'int-ssh' + return -1 + endif + + " Filename pattern. + let pattern = neocomplcache#get_keyword_pattern_end('filename') + let [complete_pos, complete_str] = + \ neocomplcache#match_word(a:cur_text, pattern) + if complete_str =~ '//' || + \ (neocomplcache#is_auto_complete() && + \ (complete_str !~ '/' || + \ complete_str =~# + \ '\\[^ ;*?[]"={}'']\|\.\.\+$\|/c\%[ygdrive/]$')) + " Not filename pattern. + return -1 + endif + + if neocomplcache#is_sources_complete() && complete_pos < 0 + let complete_pos = len(a:cur_text) + endif + + return complete_pos +endfunction"}}} + +function! s:source.get_complete_words(complete_pos, complete_str) "{{{ + return s:get_glob_files(a:complete_str, '') +endfunction"}}} + +let s:cached_files = {} + +function! s:get_glob_files(complete_str, path) "{{{ + let path = ',,' . substitute(a:path, '\.\%(,\|$\)\|,,', '', 'g') + + let complete_str = neocomplcache#util#substitute_path_separator( + \ substitute(a:complete_str, '\\\(.\)', '\1', 'g')) + + let glob = (complete_str !~ '\*$')? + \ complete_str . '*' : complete_str + + if a:path == '' && complete_str !~ '/' + if !has_key(s:cached_files, getcwd()) + call s:caching_current_files() + endif + + let files = copy(s:cached_files[getcwd()]) + else + let ftype = getftype(glob) + if ftype != '' && ftype !=# 'dir' + " Note: If glob() device files, Vim may freeze! + return [] + endif + + if a:path == '' + let files = neocomplcache#util#glob(glob) + else + try + let globs = globpath(path, glob) + catch + return [] + endtry + let files = split(substitute(globs, '\\', '/', 'g'), '\n') + endif + endif + + let files = neocomplcache#keyword_filter(map( + \ files, '{ + \ "word" : fnamemodify(v:val, ":t"), + \ "orig" : v:val, + \ }'), + \ fnamemodify(complete_str, ':t')) + + if neocomplcache#is_auto_complete() + \ && len(files) > g:neocomplcache_max_list + let files = files[: g:neocomplcache_max_list - 1] + endif + + let files = map(files, '{ + \ "word" : substitute(v:val.orig, "//", "/", "g"), + \ }') + + if a:complete_str =~ '^\$\h\w*' + let env = matchstr(a:complete_str, '^\$\h\w*') + let env_ev = eval(env) + if neocomplcache#is_windows() + let env_ev = substitute(env_ev, '\\', '/', 'g') + endif + let len_env = len(env_ev) + else + let len_env = 0 + endif + + let home_pattern = '^'. + \ neocomplcache#util#substitute_path_separator( + \ expand('~')).'/' + let exts = escape(substitute($PATHEXT, ';', '\\|', 'g'), '.') + + let dir_list = [] + let file_list = [] + for dict in files + call add(isdirectory(dict.word) ? + \ dir_list : file_list, dict) + + let dict.orig = dict.word + + if len_env != 0 && dict.word[: len_env-1] == env_ev + let dict.word = env . dict.word[len_env :] + endif + + let abbr = dict.word + if isdirectory(dict.word) && dict.word !~ '/$' + let abbr .= '/' + if g:neocomplcache_enable_auto_delimiter + let dict.word .= '/' + endif + elseif neocomplcache#is_windows() + if '.'.fnamemodify(dict.word, ':e') =~ exts + let abbr .= '*' + endif + elseif executable(dict.word) + let abbr .= '*' + endif + let dict.abbr = abbr + + if a:complete_str =~ '^\~/' + let dict.word = substitute(dict.word, home_pattern, '\~/', '') + let dict.abbr = substitute(dict.abbr, home_pattern, '\~/', '') + endif + + " Escape word. + let dict.word = escape(dict.word, ' ;*?[]"={}''') + endfor + + return dir_list + file_list +endfunction"}}} +function! s:caching_current_files() "{{{ + let s:cached_files[getcwd()] = neocomplcache#util#glob('*') + if !exists('vimproc#readdir') + let s:cached_files[getcwd()] += neocomplcache#util#glob('.*') + endif +endfunction"}}} + +function! neocomplcache#sources#filename_complete#define() "{{{ + return s:source +endfunction"}}} + +function! neocomplcache#sources#filename_complete#get_complete_words(complete_str, path) "{{{ + if !neocomplcache#is_enabled() + return [] + endif + + return s:get_glob_files(a:complete_str, a:path) +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/filename_include.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/filename_include.vim new file mode 100644 index 0000000..1835c8b --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/filename_include.vim @@ -0,0 +1,238 @@ +"============================================================================= +" FILE: filename_include.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 29 May 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +" Global options definition. "{{{ +if !exists('g:neocomplcache_include_patterns') + let g:neocomplcache_include_patterns = {} +endif +if !exists('g:neocomplcache_include_exprs') + let g:neocomplcache_include_exprs = {} +endif +if !exists('g:neocomplcache_include_paths') + let g:neocomplcache_include_paths = {} +endif +if !exists('g:neocomplcache_include_suffixes') + let g:neocomplcache_include_suffixes = {} +endif +"}}} + +let s:source = { + \ 'name' : 'filename_include', + \ 'kind' : 'manual', + \ 'mark' : '[FI]', + \ 'rank' : 10, + \ 'min_pattern_length' : + \ g:neocomplcache_auto_completion_start_length, + \} + +function! s:source.initialize() "{{{ + " Initialize. + + " Initialize filename include expr. "{{{ + let g:neocomplcache_filename_include_exprs = + \ get(g:, 'neocomplcache_filename_include_exprs', {}) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_filename_include_exprs', + \ 'perl', + \ 'fnamemodify(substitute(v:fname, "/", "::", "g"), ":r")') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_filename_include_exprs', + \ 'ruby,python,java,d', + \ 'fnamemodify(substitute(v:fname, "/", ".", "g"), ":r")') + "}}} + + " Initialize filename include extensions. "{{{ + let g:neocomplcache_filename_include_exts = + \ get(g:, 'neocomplcache_filename_include_exts', {}) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_filename_include_exts', + \ 'c', ['h']) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_filename_include_exts', + \ 'cpp', ['', 'h', 'hpp', 'hxx']) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_filename_include_exts', + \ 'perl', ['pm']) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_filename_include_exts', + \ 'java', ['java']) + "}}} +endfunction"}}} +function! s:source.finalize() "{{{ +endfunction"}}} + +function! s:source.get_keyword_pos(cur_text) "{{{ + let filetype = neocomplcache#get_context_filetype() + + " Not Filename pattern. + if exists('g:neocomplcache_include_patterns') + let pattern = get(g:neocomplcache_include_patterns, filetype, + \ &l:include) + else + let pattern = '' + endif + if neocomplcache#is_auto_complete() + \ && (pattern == '' || a:cur_text !~ pattern) + \ && a:cur_text =~ '\*$\|\.\.\+$\|/c\%[ygdrive/]$' + " Skip filename completion. + return -1 + endif + + " Check include pattern. + let pattern = get(g:neocomplcache_include_patterns, filetype, + \ &l:include) + if pattern == '' || a:cur_text !~ pattern + return -1 + endif + + let match_end = matchend(a:cur_text, pattern) + let complete_str = matchstr(a:cur_text[match_end :], '\f\+') + + let expr = get(g:neocomplcache_include_exprs, filetype, + \ &l:includeexpr) + if expr != '' + let cur_text = + \ substitute(eval(substitute(expr, + \ 'v:fname', string(complete_str), 'g')), + \ '\.\w*$', '', '') + endif + + let complete_pos = len(a:cur_text) - len(complete_str) + if neocomplcache#is_sources_complete() && complete_pos < 0 + let complete_pos = len(a:cur_text) + endif + + return complete_pos +endfunction"}}} + +function! s:source.get_complete_words(complete_pos, complete_str) "{{{ + return s:get_include_files(a:complete_str) +endfunction"}}} + +function! s:get_include_files(complete_str) "{{{ + let filetype = neocomplcache#get_context_filetype() + + let path = neocomplcache#util#substitute_path_separator( + \ get(g:neocomplcache_include_paths, filetype, + \ &l:path)) + let pattern = get(g:neocomplcache_include_patterns, filetype, + \ &l:include) + let expr = get(g:neocomplcache_include_exprs, filetype, + \ &l:includeexpr) + let reverse_expr = get(g:neocomplcache_filename_include_exprs, filetype, + \ '') + let exts = get(g:neocomplcache_filename_include_exts, filetype, + \ []) + + let line = neocomplcache#get_cur_text() + if line =~ '^\s*\' && &filetype =~# 'ruby' + " For require_relative. + let path = '.' + endif + + let match_end = matchend(line, pattern) + let complete_str = matchstr(line[match_end :], '\f\+') + if expr != '' + let complete_str = + \ substitute(eval(substitute(expr, + \ 'v:fname', string(complete_str), 'g')), '\.\w*$', '', '') + endif + + " Path search. + let glob = (complete_str !~ '\*$')? + \ complete_str . '*' : complete_str + let cwd = getcwd() + let bufdirectory = neocomplcache#util#substitute_path_separator( + \ fnamemodify(expand('%'), ':p:h')) + let dir_list = [] + let file_list = s:get_default_include_files(filetype) + for subpath in split(path, '[,;]') + let dir = (subpath == '.') ? bufdirectory : subpath + if !isdirectory(dir) + continue + endif + + execute 'lcd' fnameescape(dir) + + for word in split( + \ neocomplcache#util#substitute_path_separator( + \ glob(glob)), '\n') + let dict = { 'word' : word } + + call add(isdirectory(word) ? dir_list : file_list, dict) + + let abbr = dict.word + if isdirectory(word) + let abbr .= '/' + if g:neocomplcache_enable_auto_delimiter + let dict.word .= '/' + endif + elseif !empty(exts) && + \ index(exts, fnamemodify(dict.word, ':e')) < 0 + " Skip. + continue + endif + let dict.abbr = abbr + + if reverse_expr != '' + " Convert filename. + let dict.word = eval(substitute(reverse_expr, + \ 'v:fname', string(dict.word), 'g')) + let dict.abbr = eval(substitute(reverse_expr, + \ 'v:fname', string(dict.abbr), 'g')) + else + " Escape word. + let dict.word = escape(dict.word, ' ;*?[]"={}''') + endif + endfor + endfor + execute 'lcd' fnameescape(cwd) + + return neocomplcache#keyword_filter(dir_list, a:complete_str) + \ + neocomplcache#keyword_filter(file_list, a:complete_str) +endfunction"}}} + +function! s:get_default_include_files(filetype) "{{{ + let files = [] + + if a:filetype ==# 'python' || a:filetype ==# 'python3' + let files = ['sys'] + endif + + return map(files, "{ 'word' : v:val }") +endfunction"}}} + +function! neocomplcache#sources#filename_include#define() "{{{ + return s:source +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/include_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/include_complete.vim new file mode 100644 index 0000000..b94548a --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/include_complete.vim @@ -0,0 +1,490 @@ +"============================================================================= +" FILE: include_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 24 Apr 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +let s:source = { + \ 'name' : 'include_complete', + \ 'kind' : 'keyword', + \ 'rank' : 8, + \} + +function! s:source.initialize() "{{{ + call s:initialize_variables() + + if neocomplcache#has_vimproc() + augroup neocomplcache + " Caching events + autocmd BufWritePost * call s:check_buffer('', 0) + autocmd CursorHold * call s:check_cache() + augroup END + endif + + call neocomplcache#util#set_default( + \ 'g:neocomplcache_include_max_processes', 20) + + " Create cache directory. + if !isdirectory(neocomplcache#get_temporary_directory() . '/include_cache') + call mkdir(neocomplcache#get_temporary_directory() + \ . '/include_cache', 'p') + endif + + if neocomplcache#exists_echodoc() + call echodoc#register('include_complete', s:doc_dict) + endif +endfunction"}}} + +function! s:source.finalize() "{{{ + delcommand NeoComplCacheCachingInclude + + if neocomplcache#exists_echodoc() + call echodoc#unregister('include_complete') + endif +endfunction"}}} + +function! s:source.get_keyword_list(complete_str) "{{{ + if neocomplcache#within_comment() + return [] + endif + + if !has_key(s:include_info, bufnr('%')) + " Auto caching. + call s:check_buffer('', 0) + endif + + let keyword_list = [] + + " Check caching. + for include in s:include_info[bufnr('%')].include_files + call neocomplcache#cache#check_cache( + \ 'include_cache', include, s:async_include_cache, s:include_cache) + if has_key(s:include_cache, include) + let s:cache_accessed_time[include] = localtime() + let keyword_list += neocomplcache#dictionary_filter( + \ s:include_cache[include], a:complete_str) + endif + endfor + + return neocomplcache#keyword_filter( + \ neocomplcache#dup_filter(keyword_list), a:complete_str) +endfunction"}}} + +function! neocomplcache#sources#include_complete#define() "{{{ + return s:source +endfunction"}}} + +function! neocomplcache#sources#include_complete#get_include_files(bufnumber) "{{{ + if has_key(s:include_info, a:bufnumber) + return copy(s:include_info[a:bufnumber].include_files) + else + return s:get_buffer_include_files(a:bufnumber) + endif +endfunction"}}} + +function! neocomplcache#sources#include_complete#get_include_tags(bufnumber) "{{{ + return filter(map( + \ neocomplcache#sources#include_complete#get_include_files(a:bufnumber), + \ "neocomplcache#cache#encode_name('tags_output', v:val)"), + \ 'filereadable(v:val)') +endfunction"}}} + +" For Debug. +function! neocomplcache#sources#include_complete#get_current_include_files() "{{{ + return s:get_buffer_include_files(bufnr('%')) +endfunction"}}} + +" For echodoc. "{{{ +let s:doc_dict = { + \ 'name' : 'include_complete', + \ 'rank' : 5, + \ 'filetypes' : {}, + \ } +function! s:doc_dict.search(cur_text) "{{{ + if &filetype ==# 'vim' || !has_key(s:include_info, bufnr('%')) + return [] + endif + + let completion_length = 2 + + " Collect words. + let words = [] + let i = 0 + while i >= 0 + let word = matchstr(a:cur_text, '\k\+', i) + if len(word) >= completion_length + call add(words, word) + endif + + let i = matchend(a:cur_text, '\k\+', i) + endwhile + + for word in reverse(words) + let key = tolower(word[: completion_length-1]) + + for include in filter(copy(s:include_info[bufnr('%')].include_files), + \ 'has_key(s:include_cache, v:val) && has_key(s:include_cache[v:val], key)') + for matched in filter(values(s:include_cache[include][key]), + \ 'v:val.word ==# word && has_key(v:val, "kind") && v:val.kind != ""') + let ret = [] + + let match = match(matched.abbr, neocomplcache#escape_match(word)) + if match > 0 + call add(ret, { 'text' : matched.abbr[ : match-1] }) + endif + + call add(ret, { 'text' : word, 'highlight' : 'Identifier' }) + call add(ret, { 'text' : matched.abbr[match+len(word) :] }) + + if match > 0 || len(ret[-1].text) > 0 + return ret + endif + endfor + endfor + endfor + + return [] +endfunction"}}} +"}}} + +function! s:check_buffer(bufnumber, is_force) "{{{ + if !neocomplcache#is_enabled_source('include_complete') + return + endif + + let bufnumber = (a:bufnumber == '') ? bufnr('%') : a:bufnumber + let filename = fnamemodify(bufname(bufnumber), ':p') + + if !has_key(s:include_info, bufnumber) + " Initialize. + let s:include_info[bufnumber] = { + \ 'include_files' : [], 'lines' : [], + \ 'async_files' : {}, + \ } + endif + + if !executable(g:neocomplcache_ctags_program) + \ || (!a:is_force && !neocomplcache#has_vimproc()) + return + endif + + let include_info = s:include_info[bufnumber] + + if a:is_force || include_info.lines !=# getbufline(bufnumber, 1, 100) + let include_info.lines = getbufline(bufnumber, 1, 100) + + " Check include files contained bufname. + let include_files = s:get_buffer_include_files(bufnumber) + + " Check include files from function. + let filetype = getbufvar(a:bufnumber, '&filetype') + let function = get(g:neocomplcache_include_functions, filetype, '') + if function != '' && getbufvar(bufnumber, '&buftype') !~ 'nofile' + let path = get(g:neocomplcache_include_paths, filetype, + \ getbufvar(a:bufnumber, '&path')) + let include_files += call(function, + \ [getbufline(bufnumber, 1, (a:is_force ? '$' : 1000)), path]) + endif + + if getbufvar(bufnumber, '&buftype') !~ 'nofile' + \ && filereadable(filename) + call add(include_files, filename) + endif + let include_info.include_files = neocomplcache#util#uniq(include_files) + endif + + if g:neocomplcache_include_max_processes <= 0 + return + endif + + let filetype = getbufvar(bufnumber, '&filetype') + if filetype == '' + let filetype = 'nothing' + endif + + for filename in include_info.include_files + if (a:is_force || !has_key(include_info.async_files, filename)) + \ && !has_key(s:include_cache, filename) + if !a:is_force && has_key(s:async_include_cache, filename) + \ && len(s:async_include_cache[filename]) + \ >= g:neocomplcache_include_max_processes + break + endif + + " Caching. + let s:async_include_cache[filename] + \ = [ s:initialize_include(filename, filetype) ] + let include_info.async_files[filename] = 1 + endif + endfor +endfunction"}}} +function! s:get_buffer_include_files(bufnumber) "{{{ + let filetype = getbufvar(a:bufnumber, '&filetype') + if filetype == '' + return [] + endif + + if (filetype ==# 'python' || filetype ==# 'python3') + \ && (executable('python') || executable('python3')) + " Initialize python path pattern. + + let path = '' + if executable('python3') + let path .= ',' . neocomplcache#system('python3 -', + \ 'import sys;sys.stdout.write(",".join(sys.path))') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_include_paths', 'python3', path) + endif + if executable('python') + let path .= ',' . neocomplcache#system('python -', + \ 'import sys;sys.stdout.write(",".join(sys.path))') + endif + let path = join(neocomplcache#util#uniq(filter( + \ split(path, ',', 1), "v:val != ''")), ',') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_include_paths', 'python', path) + elseif filetype ==# 'cpp' && isdirectory('/usr/include/c++') + " Add cpp path. + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_include_paths', 'cpp', + \ getbufvar(a:bufnumber, '&path') . + \ ','.join(split(glob('/usr/include/c++/*'), '\n'), ',')) + endif + + let pattern = get(g:neocomplcache_include_patterns, filetype, + \ getbufvar(a:bufnumber, '&include')) + if pattern == '' + return [] + endif + let path = get(g:neocomplcache_include_paths, filetype, + \ getbufvar(a:bufnumber, '&path')) + let expr = get(g:neocomplcache_include_exprs, filetype, + \ getbufvar(a:bufnumber, '&includeexpr')) + if has_key(g:neocomplcache_include_suffixes, filetype) + let suffixes = &l:suffixesadd + endif + + " Change current directory. + let cwd_save = getcwd() + let buffer_dir = fnamemodify(bufname(a:bufnumber), ':p:h') + if isdirectory(buffer_dir) + execute 'lcd' fnameescape(buffer_dir) + endif + + let include_files = s:get_include_files(0, + \ getbufline(a:bufnumber, 1, 100), filetype, pattern, path, expr) + + if isdirectory(buffer_dir) + execute 'lcd' fnameescape(cwd_save) + endif + + " Restore option. + if has_key(g:neocomplcache_include_suffixes, filetype) + let &l:suffixesadd = suffixes + endif + + return include_files +endfunction"}}} +function! s:get_include_files(nestlevel, lines, filetype, pattern, path, expr) "{{{ + let include_files = [] + for line in a:lines "{{{ + if line =~ a:pattern + let match_end = matchend(line, a:pattern) + if a:expr != '' + let eval = substitute(a:expr, 'v:fname', + \ string(matchstr(line[match_end :], '\f\+')), 'g') + let filename = fnamemodify(findfile(eval(eval), a:path), ':p') + else + let filename = fnamemodify(findfile( + \ matchstr(line[match_end :], '\f\+'), a:path), ':p') + endif + + if filereadable(filename) + call add(include_files, filename) + + if (a:filetype == 'c' || a:filetype == 'cpp') && a:nestlevel < 1 + let include_files += s:get_include_files( + \ a:nestlevel + 1, readfile(filename)[:100], + \ a:filetype, a:pattern, a:path, a:expr) + endif + elseif isdirectory(filename) && a:filetype ==# 'java' + " For Java import with *. + " Ex: import lejos.nxt.* + let include_files += + \ neocomplcache#util#glob(filename . '/*.java') + endif + endif + endfor"}}} + + return include_files +endfunction"}}} + +function! s:check_cache() "{{{ + if neocomplcache#is_disabled_source('include_complete') + return + endif + + let release_accessd_time = localtime() - g:neocomplcache_release_cache_time + + for key in keys(s:include_cache) + if has_key(s:cache_accessed_time, key) + \ && s:cache_accessed_time[key] < release_accessd_time + call remove(s:include_cache, key) + endif + endfor +endfunction"}}} + +function! s:initialize_include(filename, filetype) "{{{ + " Initialize include list from tags. + return { + \ 'filename' : a:filename, + \ 'cachename' : neocomplcache#cache#async_load_from_tags( + \ 'include_cache', a:filename, a:filetype, 'I', 1) + \ } +endfunction"}}} +function! neocomplcache#sources#include_complete#caching_include(bufname) "{{{ + let bufnumber = (a:bufname == '') ? bufnr('%') : bufnr(a:bufname) + if has_key(s:async_include_cache, bufnumber) + \ && filereadable(s:async_include_cache[bufnumber].cache_name) + " Delete old cache. + call delete(s:async_include_cache[bufnumber].cache_name) + endif + + " Initialize. + if has_key(s:include_info, bufnumber) + call remove(s:include_info, bufnumber) + endif + + call s:check_buffer(bufnumber, 1) +endfunction"}}} + +" Analyze include files functions. +function! neocomplcache#sources#include_complete#analyze_vim_include_files(lines, path) "{{{ + let include_files = [] + let dup_check = {} + for line in a:lines + if line =~ '\<\h\w*#' && line !~ '\' + let filename = 'autoload/' . substitute(matchstr(line, '\<\%(\h\w*#\)*\h\w*\ze#'), + \ '#', '/', 'g') . '.vim' + if filename == '' || has_key(dup_check, filename) + continue + endif + let dup_check[filename] = 1 + + let filename = fnamemodify(findfile(filename, &runtimepath), ':p') + if filereadable(filename) + call add(include_files, filename) + endif + endif + endfor + + return include_files +endfunction"}}} +function! neocomplcache#sources#include_complete#analyze_ruby_include_files(lines, path) "{{{ + let include_files = [] + let dup_check = {} + for line in a:lines + if line =~ '\' + let args = split(line, ',') + if len(args) < 2 + continue + endif + let filename = substitute(matchstr(args[1], '["'']\zs\f\+\ze["'']'), + \ '\.', '/', 'g') . '.rb' + if filename == '' || has_key(dup_check, filename) + continue + endif + let dup_check[filename] = 1 + + let filename = fnamemodify(findfile(filename, a:path), ':p') + if filereadable(filename) + call add(include_files, filename) + endif + endif + endfor + + return include_files +endfunction"}}} + +function! s:initialize_variables() "{{{ + let s:include_info = {} + let s:include_cache = {} + let s:cache_accessed_time = {} + let s:async_include_cache = {} + let s:cached_pattern = {} + + " Initialize include pattern. "{{{ + let g:neocomplcache_include_patterns = + \ get(g:, 'neocomplcache_include_patterns', {}) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_include_patterns', + \ 'java,haskell', '^\s*\') + "}}} + " Initialize expr pattern. "{{{ + call neocomplcache#util#set_default( + \ 'g:neocomplcache_include_exprs', {}) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_include_exprs', + \ 'haskell,cs', + \ "substitute(v:fname, '\\.', '/', 'g')") + "}}} + " Initialize path pattern. "{{{ + call neocomplcache#util#set_default( + \ 'g:neocomplcache_include_paths', {}) + "}}} + " Initialize include suffixes. "{{{ + call neocomplcache#util#set_default( + \ 'g:neocomplcache_include_suffixes', {}) + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_include_suffixes', + \ 'haskell', '.hs') + "}}} + " Initialize include functions. "{{{ + call neocomplcache#util#set_default( + \ 'g:neocomplcache_include_functions', {}) + " call neocomplcache#util#set_default_dictionary( + " \ 'g:neocomplcache_include_functions', 'vim', + " \ 'neocomplcache#sources#include_complete#analyze_vim_include_files') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_include_functions', 'ruby', + \ 'neocomplcache#sources#include_complete#analyze_ruby_include_files') + "}}} +endfunction"}}} + +if !exists('s:include_info') + call s:initialize_variables() +endif + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/member_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/member_complete.vim new file mode 100644 index 0000000..8292b71 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/member_complete.vim @@ -0,0 +1,247 @@ +"============================================================================= +" FILE: member_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 01 May 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +" Important variables. +if !exists('s:member_sources') + let s:member_sources = {} +endif + +let s:source = { + \ 'name' : 'member_complete', + \ 'kind' : 'manual', + \ 'mark' : '[M]', + \ 'rank' : 5, + \ 'min_pattern_length' : 0, + \} + +function! s:source.initialize() "{{{ + augroup neocomplcache "{{{ + " Caching events + autocmd CursorHold * call s:caching_current_buffer(line('.')-10, line('.')+10) + autocmd InsertEnter,InsertLeave * + \ call neocomplcache#sources#member_complete#caching_current_line() + augroup END"}}} + + " Initialize member prefix patterns. "{{{ + if !exists('g:neocomplcache_member_prefix_patterns') + let g:neocomplcache_member_prefix_patterns = {} + endif + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_member_prefix_patterns', + \ 'c,cpp,objc,objcpp', '\.\|->') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_member_prefix_patterns', + \ 'perl,php', '->') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_member_prefix_patterns', + \ 'cs,java,javascript,d,vim,ruby,python,perl6,scala,vb', '\.') + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_member_prefix_patterns', + \ 'lua', '\.\|:') + "}}} + + " Initialize member patterns. "{{{ + if !exists('g:neocomplcache_member_patterns') + let g:neocomplcache_member_patterns = {} + endif + call neocomplcache#util#set_default_dictionary( + \ 'g:neocomplcache_member_patterns', + \'default', '\h\w*\%(()\|\[\h\w*\]\)\?') + "}}} + + " Initialize script variables. "{{{ + let s:member_sources = {} + "}}} +endfunction +"}}} + +function! s:source.get_keyword_pos(cur_text) "{{{ + " Check member prefix pattern. + let filetype = neocomplcache#get_context_filetype() + if !has_key(g:neocomplcache_member_prefix_patterns, filetype) + \ || g:neocomplcache_member_prefix_patterns[filetype] == '' + return -1 + endif + + let member = s:get_member_pattern(filetype) + let prefix = g:neocomplcache_member_prefix_patterns[filetype] + let complete_pos = matchend(a:cur_text, + \ '\%(' . member . '\%(' . prefix . '\m\)\)\+\ze\w*$') + return complete_pos +endfunction"}}} + +function! s:source.get_complete_words(complete_pos, complete_str) "{{{ + " Check member prefix pattern. + let filetype = neocomplcache#get_context_filetype() + if !has_key(g:neocomplcache_member_prefix_patterns, filetype) + \ || g:neocomplcache_member_prefix_patterns[filetype] == '' + return [] + endif + + let cur_text = neocomplcache#get_cur_text() + let var_name = matchstr(cur_text, + \ '\%(' . s:get_member_pattern(filetype) . '\%(' . + \ g:neocomplcache_member_prefix_patterns[filetype] . '\m\)\)\+\ze\w*$') + if var_name == '' + return [] + endif + + return neocomplcache#keyword_filter( + \ copy(s:get_member_list(cur_text, var_name)), a:complete_str) +endfunction"}}} + +function! neocomplcache#sources#member_complete#define() "{{{ + return s:source +endfunction"}}} + +function! neocomplcache#sources#member_complete#caching_current_line() "{{{ + " Current line caching. + return s:caching_current_buffer(line('.')-1, line('.')+1) +endfunction"}}} +function! neocomplcache#sources#member_complete#caching_current_buffer() "{{{ + " Current line caching. + return s:caching_current_buffer(1, line('$')) +endfunction"}}} +function! s:caching_current_buffer(start, end) "{{{ + " Current line caching. + + if !has_key(s:member_sources, bufnr('%')) + call s:initialize_source(bufnr('%')) + endif + + let filetype = neocomplcache#get_context_filetype(1) + if !has_key(g:neocomplcache_member_prefix_patterns, filetype) + \ || g:neocomplcache_member_prefix_patterns[filetype] == '' + return + endif + + let source = s:member_sources[bufnr('%')] + let keyword_pattern = + \ '\%(' . s:get_member_pattern(filetype) . '\%(' + \ . g:neocomplcache_member_prefix_patterns[filetype] + \ . '\m\)\)\+' . s:get_member_pattern(filetype) + let keyword_pattern2 = '^'.keyword_pattern + let member_pattern = s:get_member_pattern(filetype) . '$' + + " Cache member pattern. + let [line_num, max_lines] = [a:start, a:end] + for line in getline(a:start, a:end) + let match = match(line, keyword_pattern) + + while match >= 0 "{{{ + let match_str = matchstr(line, keyword_pattern2, match) + + " Next match. + let match = matchend(line, keyword_pattern, match + len(match_str)) + + while match_str != '' + let member_name = matchstr(match_str, member_pattern) + if member_name == '' + break + endif + let var_name = match_str[ : -len(member_name)-1] + + if !has_key(source.member_cache, var_name) + let source.member_cache[var_name] = {} + endif + if !has_key(source.member_cache[var_name], member_name) + let source.member_cache[var_name][member_name] = member_name + endif + + let match_str = matchstr(var_name, keyword_pattern2) + endwhile + endwhile"}}} + endfor +endfunction"}}} + +function! s:get_member_list(cur_text, var_name) "{{{ + let keyword_list = [] + for [key, source] in filter(s:get_sources_list(), + \ 'has_key(v:val[1].member_cache, a:var_name)') + let keyword_list += + \ values(source.member_cache[a:var_name]) + endfor + + return keyword_list +endfunction"}}} + +function! s:get_sources_list() "{{{ + let sources_list = [] + + let filetypes_dict = {} + for filetype in neocomplcache#get_source_filetypes( + \ neocomplcache#get_context_filetype()) + let filetypes_dict[filetype] = 1 + endfor + + for [key, source] in items(s:member_sources) + if has_key(filetypes_dict, source.filetype) + \ || has_key(filetypes_dict, '_') + \ || bufnr('%') == key + \ || (bufname('%') ==# '[Command Line]' && bufnr('#') == key) + call add(sources_list, [key, source]) + endif + endfor + + return sources_list +endfunction"}}} + +function! s:initialize_source(srcname) "{{{ + let path = fnamemodify(bufname(a:srcname), ':p') + let filename = fnamemodify(path, ':t') + if filename == '' + let filename = '[No Name]' + let path .= '/[No Name]' + endif + + " Set cache line count. + let buflines = getbufline(a:srcname, 1, '$') + let end_line = len(buflines) + + let ft = getbufvar(a:srcname, '&filetype') + if ft == '' + let ft = 'nothing' + endif + + let s:member_sources[a:srcname] = { + \ 'member_cache' : {}, 'filetype' : ft, + \ 'keyword_pattern' : neocomplcache#get_keyword_pattern(ft), + \} +endfunction"}}} + +function! s:get_member_pattern(filetype) "{{{ + return has_key(g:neocomplcache_member_patterns, a:filetype) ? + \ g:neocomplcache_member_patterns[a:filetype] : + \ g:neocomplcache_member_patterns['default'] +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/omni_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/omni_complete.vim new file mode 100644 index 0000000..bbaa063 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/omni_complete.vim @@ -0,0 +1,303 @@ +"============================================================================= +" FILE: omni_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 29 May 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +let s:source = { + \ 'name' : 'omni_complete', + \ 'kind' : 'manual', + \ 'compare_func' : 'neocomplcache#compare_nothing', + \ 'mark' : '[O]', + \ 'rank' : 50, + \} + +let s:List = vital#of('neocomplcache').import('Data.List') + +function! s:source.initialize() "{{{ + " Initialize omni completion pattern. "{{{ + if !exists('g:neocomplcache_omni_patterns') + let g:neocomplcache_omni_patterns = {} + endif + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_omni_patterns', + \'html,xhtml,xml,markdown', + \'<[^>]*') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_omni_patterns', + \'css,scss,sass', + \'^\s\+\w\+\|\w\+[):;]\?\s\+\w*\|[@!]') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_omni_patterns', + \'javascript', + \'[^. \t]\.\%(\h\w*\)\?') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_omni_patterns', + \'actionscript', + \'[^. \t][.:]\h\w*') + "call neocomplcache#util#set_default_dictionary( + "\'g:neocomplcache_omni_patterns', + "\'php', + "\'[^. \t]->\h\w*\|\h\w*::') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_omni_patterns', + \'java', + \'\%(\h\w*\|)\)\.') + "call neocomplcache#util#set_default_dictionary( + "\'g:neocomplcache_omni_patterns', + "\'perl', + "\'\h\w*->\h\w*\|\h\w*::') + "call neocomplcache#util#set_default_dictionary( + "\'g:neocomplcache_omni_patterns', + "\'c', + "\'[^.[:digit:] *\t]\%(\.\|->\)' + "call neocomplcache#util#set_default_dictionary( + "\'g:neocomplcache_omni_patterns', + "\'cpp', + "\'[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_omni_patterns', + \'objc', + \'[^.[:digit:] *\t]\%(\.\|->\)') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_omni_patterns', + \'objj', + \'[\[ \.]\w\+$\|:\w*$') + + " External language interface check. + if has('ruby') + " call neocomplcache#util#set_default_dictionary( + "\'g:neocomplcache_omni_patterns', 'ruby', + "\'[^. *\t]\.\h\w*\|\h\w*::') + endif + if has('python/dyn') || has('python3/dyn') + \ || has('python') || has('python3') + call neocomplcache#util#set_default_dictionary( + \'g:neocomplcache_omni_patterns', + \'python', '[^. \t]\.\w*') + endif + "}}} +endfunction"}}} +function! s:source.finalize() "{{{ +endfunction"}}} + +function! s:source.get_keyword_pos(cur_text) "{{{ + let syn_name = neocomplcache#helper#get_syn_name(1) + if syn_name ==# 'Comment' || syn_name ==# 'String' + " Skip omni_complete in string literal. + return -1 + endif + + let filetype = neocomplcache#get_context_filetype() + let s:complete_results = s:set_complete_results_pos( + \ s:get_omni_funcs(filetype), a:cur_text) + + return s:get_complete_pos(s:complete_results) +endfunction"}}} + +function! s:source.get_complete_words(complete_pos, complete_str) "{{{ + return s:get_candidates( + \ s:set_complete_results_words(s:complete_results), + \ a:complete_pos, a:complete_str) +endfunction"}}} + +function! neocomplcache#sources#omni_complete#define() "{{{ + return s:source +endfunction"}}} + +function! s:get_omni_funcs(filetype) "{{{ + let funcs = [] + for ft in insert(split(a:filetype, '\.'), '_') + if has_key(g:neocomplcache_omni_functions, ft) + let omnifuncs = + \ (type(g:neocomplcache_omni_functions[ft]) == type([])) ? + \ g:neocomplcache_omni_functions[ft] : + \ [g:neocomplcache_omni_functions[ft]] + else + let omnifuncs = [&l:omnifunc] + endif + + for omnifunc in omnifuncs + if neocomplcache#check_invalid_omnifunc(omnifunc) + " omnifunc is irregal. + continue + endif + + if get(g:neocomplcache_omni_patterns, omnifunc, '') != '' + let pattern = g:neocomplcache_omni_patterns[omnifunc] + elseif get(g:neocomplcache_omni_patterns, ft, '') != '' + let pattern = g:neocomplcache_omni_patterns[ft] + else + let pattern = '' + endif + + if pattern == '' + continue + endif + + call add(funcs, [omnifunc, pattern]) + endfor + endfor + + return s:List.uniq(funcs) +endfunction"}}} +function! s:get_omni_list(list) "{{{ + let omni_list = [] + + " Convert string list. + for val in deepcopy(a:list) + let dict = (type(val) == type('') ? + \ { 'word' : val } : val) + let dict.menu = '[O]' . get(dict, 'menu', '') + call add(omni_list, dict) + + unlet val + endfor + + return omni_list +endfunction"}}} + +function! s:set_complete_results_pos(funcs, cur_text) "{{{ + " Try omnifunc completion. "{{{ + let complete_results = {} + for [omnifunc, pattern] in a:funcs + if neocomplcache#is_auto_complete() + \ && a:cur_text !~ '\%(' . pattern . '\m\)$' + continue + endif + + " Save pos. + let pos = getpos('.') + + try + let complete_pos = call(omnifunc, [1, '']) + catch + call neocomplcache#print_error( + \ 'Error occured calling omnifunction: ' . omnifunc) + call neocomplcache#print_error(v:throwpoint) + call neocomplcache#print_error(v:exception) + let complete_pos = -1 + finally + if getpos('.') != pos + call setpos('.', pos) + endif + endtry + + if complete_pos < 0 + continue + endif + + let complete_str = a:cur_text[complete_pos :] + + let complete_results[omnifunc] = { + \ 'candidates' : [], + \ 'complete_pos' : complete_pos, + \ 'complete_str' : complete_str, + \ 'omnifunc' : omnifunc, + \} + endfor + "}}} + + return complete_results +endfunction"}}} +function! s:set_complete_results_words(complete_results) "{{{ + " Try source completion. + for [omnifunc, result] in items(a:complete_results) + if neocomplcache#complete_check() + return a:complete_results + endif + + let pos = getpos('.') + + " Note: For rubycomplete problem. + let complete_str = + \ (omnifunc == 'rubycomplete#Complete') ? + \ '' : result.complete_str + + try + let list = call(omnifunc, [0, complete_str]) + catch + call neocomplcache#print_error( + \ 'Error occured calling omnifunction: ' . omnifunc) + call neocomplcache#print_error(v:throwpoint) + call neocomplcache#print_error(v:exception) + let list = [] + finally + if getpos('.') != pos + call setpos('.', pos) + endif + endtry + + if type(list) != type([]) + " Error. + return a:complete_results + endif + + let list = s:get_omni_list(list) + + let result.candidates = list + endfor + + return a:complete_results +endfunction"}}} +function! s:get_complete_pos(complete_results) "{{{ + if empty(a:complete_results) + return -1 + endif + + let complete_pos = col('.') + for result in values(a:complete_results) + if complete_pos > result.complete_pos + let complete_pos = result.complete_pos + endif + endfor + + return complete_pos +endfunction"}}} +function! s:get_candidates(complete_results, complete_pos, complete_str) "{{{ + " Append prefix. + let candidates = [] + let len_words = 0 + for [source_name, result] in items(a:complete_results) + if result.complete_pos > a:complete_pos + let prefix = a:complete_str[: result.complete_pos + \ - a:complete_pos - 1] + + for keyword in result.candidates + let keyword.word = prefix . keyword.word + endfor + endif + + let candidates += result.candidates + endfor + + return candidates +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/syntax_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/syntax_complete.vim new file mode 100644 index 0000000..157049a --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/syntax_complete.vim @@ -0,0 +1,322 @@ +"============================================================================= +" FILE: syntax_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 05 Jun 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +" Important variables. +if !exists('s:syntax_list') + let s:syntax_list = {} +endif + +let s:source = { + \ 'name' : 'syntax_complete', + \ 'kind' : 'keyword', + \ 'mark' : '[S]', + \ 'rank' : 4, + \} + +function! s:source.initialize() "{{{ + " Set caching event. + autocmd neocomplcache Syntax * call s:caching() + + " Create cache directory. + if !isdirectory(neocomplcache#get_temporary_directory() . '/syntax_cache') + call mkdir(neocomplcache#get_temporary_directory() . '/syntax_cache') + endif + + " Initialize check. + call s:caching() +endfunction"}}} + +function! s:source.finalize() "{{{ + delcommand NeoComplCacheCachingSyntax +endfunction"}}} + +function! s:source.get_keyword_list(complete_str) "{{{ + let list = [] + + let filetype = neocomplcache#get_context_filetype() + if !has_key(s:syntax_list, filetype) + call s:caching() + endif + + for syntax in neocomplcache#get_sources_list( + \ s:syntax_list, filetype) + let list += neocomplcache#dictionary_filter(syntax, a:complete_str) + endfor + + return list +endfunction"}}} + +function! neocomplcache#sources#syntax_complete#define() "{{{ + return s:source +endfunction"}}} + +function! s:caching() "{{{ + if &filetype == '' || &filetype ==# 'vim' + return + endif + + for filetype in neocomplcache#get_source_filetypes(&filetype) + if !has_key(s:syntax_list, filetype) + " Check old cache. + let cache_name = neocomplcache#cache#encode_name('syntax_cache', &filetype) + let syntax_files = split( + \ globpath(&runtimepath, 'syntax/'.&filetype.'.vim'), '\n') + if getftime(cache_name) < 0 || (!empty(syntax_files) + \ && getftime(cache_name) <= getftime(syntax_files[0])) + if filetype ==# &filetype + " Caching from syn list. + let s:syntax_list[filetype] = s:caching_from_syn(filetype) + endif + else + let s:syntax_list[filetype] = neocomplcache#cache#index_load_from_cache( + \ 'syntax_cache', filetype, 1) + endif + endif + endfor +endfunction"}}} + +function! neocomplcache#sources#syntax_complete#recaching(filetype) "{{{ + if a:filetype == '' + let filetype = &filetype + else + let filetype = a:filetype + endif + + " Caching. + let s:syntax_list[filetype] = s:caching_from_syn(filetype) +endfunction"}}} + +function! s:caching_from_syn(filetype) "{{{ + call neocomplcache#print_caching( + \ 'Caching syntax "' . a:filetype . '"... please wait.') + + " Get current syntax list. + redir => syntax_list + silent! syntax list + redir END + + if syntax_list =~ '^E\d\+' || syntax_list =~ '^No Syntax items' + return [] + endif + + let group_name = '' + let keyword_pattern = neocomplcache#get_keyword_pattern(a:filetype) + + let dup_check = {} + + let filetype_pattern = tolower(a:filetype) + + let keyword_lists = {} + for line in split(syntax_list, '\n') + if line =~ '^\h\w\+' + " Change syntax group name. + let group_name = matchstr(line, '^\S\+') + let line = substitute(line, '^\S\+\s*xxx', '', '') + endif + + if line =~ 'Syntax items' || line =~ '^\s*links to' || + \ line =~ '^\s*nextgroup=' || + \ strridx(tolower(group_name), filetype_pattern) != 0 + " Next line. + continue + endif + + let line = substitute(line, 'contained\|skipwhite\|skipnl\|oneline', '', 'g') + let line = substitute(line, '^\s*nextgroup=.*\ze\s', '', '') + + if line =~ '^\s*match' + let line = s:substitute_candidate(matchstr(line, '/\zs[^/]\+\ze/')) + elseif line =~ '^\s*start=' + let line = + \s:substitute_candidate(matchstr(line, 'start=/\zs[^/]\+\ze/')) . ' ' . + \s:substitute_candidate(matchstr(line, 'end=/zs[^/]\+\ze/')) + endif + + " Add keywords. + let match_num = 0 + let completion_length = 2 + let match_str = matchstr(line, keyword_pattern, match_num) + while match_str != '' + " Ignore too short keyword. + if len(match_str) >= g:neocomplcache_min_syntax_length + \ && !has_key(dup_check, match_str) + \&& match_str =~ '^[[:print:]]\+$' + let key = tolower(match_str[: completion_length-1]) + if !has_key(keyword_lists, key) + let keyword_lists[key] = [] + endif + call add(keyword_lists[key], match_str) + + let dup_check[match_str] = 1 + endif + + let match_num += len(match_str) + + let match_str = matchstr(line, keyword_pattern, match_num) + endwhile + endfor + + " Save syntax cache. + let unpack_lists = neocomplcache#unpack_dictionary(keyword_lists) + if !empty(unpack_lists) + call neocomplcache#cache#save_cache('syntax_cache', &filetype, unpack_lists) + endif + + call neocomplcache#print_caching('') + + return keyword_lists +endfunction"}}} + +function! s:substitute_candidate(candidate) "{{{ + let candidate = a:candidate + + " Collection. + let candidate = substitute(candidate, + \'\\\@{}]\|[$^]\|\\z\?\a\)', ' ', 'g') + + if candidate =~ '\\%\?(' + let candidate = join(s:split_pattern(candidate)) + endif + + " \ + let candidate = substitute(candidate, '\\\\', '\\', 'g') + " * + let candidate = substitute(candidate, '\\\*', '*', 'g') + return candidate +endfunction"}}} + +function! s:split_pattern(keyword_pattern) "{{{ + let original_pattern = a:keyword_pattern + let result_patterns = [] + let analyzing_patterns = [ '' ] + + let i = 0 + let max = len(original_pattern) + while i < max + if match(original_pattern, '^\\%\?(', i) >= 0 + " Grouping. + let end = s:match_pair(original_pattern, '\\%\?(', '\\)', i) + if end < 0 + "call neocomplcache#print_error('Unmatched (.') + return [ a:keyword_pattern ] + endif + + let save_pattern = analyzing_patterns + let analyzing_patterns = [] + for keyword in split(original_pattern[matchend(original_pattern, '^\\%\?(', i) : end], '\\|') + for prefix in save_pattern + call add(analyzing_patterns, prefix . keyword) + endfor + endfor + + let i = end + 1 + elseif match(original_pattern, '^\\|', i) >= 0 + " Select. + let result_patterns += analyzing_patterns + let analyzing_patterns = [ '' ] + let original_pattern = original_pattern[i+2 :] + let max = len(original_pattern) + + let i = 0 + elseif original_pattern[i] == '\' && i+1 < max + let save_pattern = analyzing_patterns + let analyzing_patterns = [] + for prefix in save_pattern + call add(analyzing_patterns, prefix . original_pattern[i] . original_pattern[i+1]) + endfor + + " Escape. + let i += 2 + else + let save_pattern = analyzing_patterns + let analyzing_patterns = [] + for prefix in save_pattern + call add(analyzing_patterns, prefix . original_pattern[i]) + endfor + + let i += 1 + endif + endwhile + + let result_patterns += analyzing_patterns + return result_patterns +endfunction"}}} + +function! s:match_pair(string, start_pattern, end_pattern, start_cnt) "{{{ + let end = -1 + let start_pattern = '\%(' . a:start_pattern . '\)' + let end_pattern = '\%(' . a:end_pattern . '\)' + + let i = a:start_cnt + let max = len(a:string) + let nest_level = 0 + while i < max + let start = match(a:string, start_pattern, i) + let end = match(a:string, end_pattern, i) + + if start >= 0 && (end < 0 || start < end) + let i = matchend(a:string, start_pattern, i) + let nest_level += 1 + elseif end >= 0 && (start < 0 || end < start) + let nest_level -= 1 + + if nest_level == 0 + return end + endif + + let i = matchend(a:string, end_pattern, i) + else + break + endif + endwhile + + if nest_level != 0 + return -1 + else + return end + endif +endfunction"}}} + +" Global options definition. "{{{ +if !exists('g:neocomplcache_min_syntax_length') + let g:neocomplcache_min_syntax_length = 4 +endif +"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/tags_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/tags_complete.vim new file mode 100644 index 0000000..071b63d --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/tags_complete.vim @@ -0,0 +1,113 @@ +"============================================================================= +" FILE: tags_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 24 Apr 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +" Important variables. +if !exists('s:tags_list') + let s:tags_list = {} + let s:async_tags_list = {} +endif + +let s:source = { + \ 'name' : 'tags_complete', + \ 'kind' : 'keyword', + \} + +function! s:source.initialize() "{{{ + let g:neocomplcache_tags_caching_limit_file_size = + \ get(g:, 'neocomplcache_tags_caching_limit_file_size', 500000) + + " Create cache directory. + if !isdirectory(neocomplcache#get_temporary_directory() . '/tags_cache') + call mkdir(neocomplcache#get_temporary_directory() . '/tags_cache', 'p') + endif +endfunction"}}} + +function! s:source.finalize() "{{{ + delcommand NeoComplCacheCachingTags +endfunction"}}} + +function! neocomplcache#sources#tags_complete#define() "{{{ + return s:source +endfunction"}}} + +function! s:source.get_keyword_list(complete_str) "{{{ + if !has_key(s:async_tags_list, bufnr('%')) + \ && !has_key(s:tags_list, bufnr('%')) + call neocomplcache#sources#tags_complete#caching_tags(0) + endif + + if neocomplcache#within_comment() + return [] + endif + + call neocomplcache#cache#check_cache( + \ 'tags_cache', bufnr('%'), s:async_tags_list, s:tags_list) + + if !has_key(s:tags_list, bufnr('%')) + return [] + endif + let keyword_list = neocomplcache#dictionary_filter( + \ s:tags_list[bufnr('%')], a:complete_str) + + return neocomplcache#keyword_filter(keyword_list, a:complete_str) +endfunction"}}} + +function! s:initialize_tags(filename) "{{{ + " Initialize tags list. + let ft = &filetype + if ft == '' + let ft = 'nothing' + endif + + return { + \ 'filename' : a:filename, + \ 'cachename' : neocomplcache#cache#async_load_from_tags( + \ 'tags_cache', a:filename, ft, 'T', 0) + \ } +endfunction"}}} +function! neocomplcache#sources#tags_complete#caching_tags(force) "{{{ + let bufnumber = bufnr('%') + + let s:async_tags_list[bufnumber] = [] + for tags in map(filter(tagfiles(), 'getfsize(v:val) > 0'), + \ "neocomplcache#util#substitute_path_separator( + \ fnamemodify(v:val, ':p'))") + if tags !~? '/doc/tags\%(-\w\+\)\?$' && + \ (a:force || getfsize(tags) + \ < g:neocomplcache_tags_caching_limit_file_size) + call add(s:async_tags_list[bufnumber], + \ s:initialize_tags(tags)) + endif + endfor +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete.vim new file mode 100644 index 0000000..252b5fe --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete.vim @@ -0,0 +1,198 @@ +"============================================================================= +" FILE: vim_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 24 Jun 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +let s:source = { + \ 'name' : 'vim_complete', + \ 'kind' : 'manual', + \ 'filetypes' : { 'vim' : 1, 'vimconsole' : 1, }, + \ 'mark' : '[vim]', + \ 'rank' : 300, + \} + +function! s:source.initialize() "{{{ + " Initialize. + + " Initialize complete function list. "{{{ + if !exists('g:neocomplcache_vim_completefuncs') + let g:neocomplcache_vim_completefuncs = {} + endif + "}}} + + " Call caching event. + autocmd neocomplcache FileType * + \ call neocomplcache#sources#vim_complete#helper#on_filetype() + + " Initialize check. + call neocomplcache#sources#vim_complete#helper#on_filetype() + + " Add command. + command! -nargs=? -complete=buffer NeoComplCacheCachingVim + \ call neocomplcache#sources#vim_complete#helper#recaching() +endfunction"}}} + +function! s:source.finalize() "{{{ + delcommand NeoComplCacheCachingVim + + if neocomplcache#exists_echodoc() + call echodoc#unregister('vim_complete') + endif +endfunction"}}} + +function! s:source.get_keyword_pos(cur_text) "{{{ + let cur_text = neocomplcache#sources#vim_complete#get_cur_text() + + if cur_text =~ '^\s*"' + " Comment. + return -1 + endif + + let pattern = '\.\%(\h\w*\)\?$\|' . + \ neocomplcache#get_keyword_pattern_end('vim') + if cur_text != '' && cur_text !~ + \ '^[[:digit:],[:space:][:tab:]$''<>]*\h\w*$' + let command_completion = + \ neocomplcache#sources#vim_complete#helper#get_completion_name( + \ neocomplcache#sources#vim_complete#get_command(cur_text)) + if command_completion =~ '\%(dir\|file\|shellcmd\)' + let pattern = neocomplcache#get_keyword_pattern_end('filename') + endif + endif + + let [complete_pos, complete_str] = + \ neocomplcache#match_word(a:cur_text, pattern) + if complete_pos < 0 + " Use args pattern. + let [complete_pos, complete_str] = + \ neocomplcache#match_word(a:cur_text, '\S\+$') + endif + + if a:cur_text !~ '\.\%(\h\w*\)\?$' && neocomplcache#is_auto_complete() + \ && bufname('%') !=# '[Command Line]' + \ && neocomplcache#util#mb_strlen(complete_str) + \ < g:neocomplcache_auto_completion_start_length + return -1 + endif + + return complete_pos +endfunction"}}} + +function! s:source.get_complete_words(complete_pos, complete_str) "{{{ + let cur_text = neocomplcache#sources#vim_complete#get_cur_text() + if neocomplcache#is_auto_complete() && cur_text !~ '\h\w*\.\%(\h\w*\)\?$' + \ && len(a:complete_str) < g:neocomplcache_auto_completion_start_length + \ && bufname('%') !=# '[Command Line]' + return [] + endif + + if cur_text =~ '\h\w*\.\%(\h\w*\)\?$' + " Dictionary. + let complete_str = matchstr(cur_text, '.\%(\h\w*\)\?$') + let list = neocomplcache#sources#vim_complete#helper#var_dictionary( + \ cur_text, complete_str) + return neocomplcache#keyword_filter(list, complete_str) + elseif a:complete_str =~# '^&\%([gl]:\)\?' + " Options. + let prefix = matchstr(a:complete_str, '&\%([gl]:\)\?') + let list = deepcopy( + \ neocomplcache#sources#vim_complete#helper#option( + \ cur_text, a:complete_str)) + for keyword in list + let keyword.word = + \ prefix . keyword.word + let keyword.abbr = prefix . + \ get(keyword, 'abbr', keyword.word) + endfor + elseif a:complete_str =~? '^\c' + " SID functions. + let prefix = matchstr(a:complete_str, '^\c') + let complete_str = substitute(a:complete_str, '^\c', 's:', '') + let list = deepcopy( + \ neocomplcache#sources#vim_complete#helper#function( + \ cur_text, complete_str)) + for keyword in list + let keyword.word = prefix . keyword.word[2:] + let keyword.abbr = prefix . + \ get(keyword, 'abbr', keyword.word)[2:] + endfor + elseif cur_text =~# '\[:alnum:]]*$' + " Expand. + let list = neocomplcache#sources#vim_complete#helper#expand( + \ cur_text, a:complete_str) + elseif a:complete_str =~ '^\$' + " Environment. + let list = neocomplcache#sources#vim_complete#helper#environment( + \ cur_text, a:complete_str) + elseif cur_text =~ '^[[:digit:],[:space:][:tab:]$''<>]*!\s*\f\+$' + " Shell commands. + let list = neocomplcache#sources#vim_complete#helper#shellcmd( + \ cur_text, a:complete_str) + else + " Commands. + let list = neocomplcache#sources#vim_complete#helper#command( + \ cur_text, a:complete_str) + endif + + return neocomplcache#keyword_filter(copy(list), a:complete_str) +endfunction"}}} + +function! neocomplcache#sources#vim_complete#define() "{{{ + return s:source +endfunction"}}} + +function! neocomplcache#sources#vim_complete#get_cur_text() "{{{ + let cur_text = neocomplcache#get_cur_text(1) + if &filetype == 'vimshell' && exists('*vimshell#get_secondary_prompt') + \ && empty(b:vimshell.continuation) + return cur_text[len(vimshell#get_secondary_prompt()) :] + endif + + let line = line('.') + let cnt = 0 + while cur_text =~ '^\s*\\' && line > 1 && cnt < 5 + let cur_text = getline(line - 1) . + \ substitute(cur_text, '^\s*\\', '', '') + let line -= 1 + let cnt += 1 + endwhile + + return split(cur_text, '\s\+|\s\+\|', 1)[-1] +endfunction"}}} +function! neocomplcache#sources#vim_complete#get_command(cur_text) "{{{ + return matchstr(a:cur_text, '\<\%(\d\+\)\?\zs\h\w*\ze!\?\|'. + \ '\<\%([[:digit:],[:space:]$''<>]\+\)\?\zs\h\w*\ze/.*') +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/autocmds.dict b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/autocmds.dict new file mode 100644 index 0000000..7bcbd68 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/autocmds.dict @@ -0,0 +1,83 @@ +BufNewFile ; starting to edit a file that doesn't exist +BufReadPre ; starting to edit a new buffer, before reading the file +BufRead ; starting to edit a new buffer, after reading the file +BufReadPost ; starting to edit a new buffer, after reading the file +BufReadCmd ; before starting to edit a new buffer |Cmd-event| +FileReadPre ; before reading a file with a ":read" command +FileReadPost ; after reading a file with a ":read" command +FileReadCmd ; before reading a file with a ":read" command |Cmd-event| +FilterReadPre ; before reading a file from a filter command +FilterReadPost ; after reading a file from a filter command +StdinReadPre ; before reading from stdin into the buffer +StdinReadPost ; After reading from the stdin into the buffer +BufWrite ; starting to write the whole buffer to a file +BufWritePre ; starting to write the whole buffer to a file +BufWritePost ; after writing the whole buffer to a file +BufWriteCmd ; before writing the whole buffer to a file |Cmd-event| +FileWritePre ; starting to write part of a buffer to a file +FileWritePost ; after writing part of a buffer to a file +FileWriteCmd ; starting to append to a file +FileAppendPre ; after appending to a file +FileAppendPost ; before appending to a file |Cmd-event| +FileAppendCmd ; starting to write a file for a filter command or diff +FilterWritePre ; after writing a file for a filter command or diff +FilterWritePost ; just after adding a buffer to the buffer list +BufAdd ; just after adding a buffer to the buffer list +BufCreate ; just after adding a buffer to the buffer list +BufDelete ; before deleting a buffer from the buffer list +BufWipeout ; before completely deleting a buffer +BufFilePre ; before changing the name of the current buffer +BufFilePost ; after changing the name of the current buffer +BufEnter ; after entering a buffer +BufLeave ; before leaving to another buffer +BufWinEnter ; after a buffer is displayed in a window +BufWinLeave ; before a buffer is removed from a window +BufUnload ; before unloading a buffer +BufHidden ; just after a buffer has become hidden +BufNew ; just after creating a new buffer +SwapExists ; detected an existing swap file +FileType ; when the 'filetype' option has been set +Syntax ; when the 'syntax' option has been set +EncodingChanged ; after the 'encoding' option has been changed +TermChanged ; after the value of 'term' has changed +VimEnter ; after doing all the startup stuff +GUIEnter ; after starting the GUI successfully +TermResponse ; after the terminal response to |t_RV| is received +VimLeavePre ; before exiting Vim, before writing the viminfo file +VimLeave ; before exiting Vim, after writing the viminfo file +FileChangedShell ; Vim notices that a file changed since editing started +FileChangedShellPost ; After handling a file changed since editing started +FileChangedRO ; before making the first change to a read-only file +ShellCmdPost ; after executing a shell command +ShellFilterPost ; after filtering with a shell command +FuncUndefined ; a user function is used but it isn't defined +SpellFileMissing ; a spell file is used but it can't be found +SourcePre ; before sourcing a Vim script +SourceCmd ; before sourcing a Vim script |Cmd-event| +VimResized ; after the Vim window size changed +FocusGained ; Vim got input focus +FocusLost ; Vim lost input focus +CursorHold ; the user doesn't press a key for a while +CursorHoldI ; the user doesn't press a key for a while in Insert mode +CursorMoved ; the cursor was moved in Normal mode +CursorMovedI ; the cursor was moved in Insert mode +WinEnter ; after entering another window +WinLeave ; before leaving a window +TabEnter ; after entering another tab page +TabLeave ; before leaving a tab page +CmdwinEnter ; after entering the command-line window +CmdwinLeave ; before leaving the command-line window +InsertEnter ; starting Insert mode +InsertChange ; when typing while in Insert or Replace mode +InsertLeave ; when leaving Insert mode +ColorScheme ; after loading a color scheme +CompleteDone ; after Insert mode completion is done +RemoteReply ; a reply from a server Vim was received +QuickFixCmdPre ; before a quickfix command is run +QuickFixCmdPost ; after a quickfix command is run +SessionLoadPost ; after loading a session file +MenuPopup ; just before showing the popup menu +User ; to be used in combination with ":doautocmd" + ; buffer-local autocommands + ; for the file name that is being + ; for the buffer name that is being diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_args.dict b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_args.dict new file mode 100644 index 0000000..1805a74 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_args.dict @@ -0,0 +1,44 @@ +-bang ; the command can take a ! modifier (like :q or :w) +-bar ; the command can be followed by a "|" and another command +-buffer ; the command will only be available in the current buffer +-complete=augroup ; autocmd groups +-complete=behave ; :behave suboptions +-complete=buffer ; buffer names +-complete=color ; color schemes +-complete=command ; Ex command (and arguments) +-complete=compiler ; compilers +-complete=cscope ; :cscope suboptions +-complete=custom,{func} ; custom completion, defined via {func} +-complete=customlist,{func} ; custom completion, defined via {func} +-complete=dir ; directory names +-complete=environment ; environment variable names +-complete=event ; autocommand events +-complete=expression ; Vim expression +-complete=file ; file and directory names +-complete=file_in_path ; file and directory names in 'path' +-complete=filetype ; filetype names 'filetype' +-complete=function ; function name +-complete=help ; help subjects +-complete=highlight ; highlight groups +-complete=history ; :history suboptions +-complete=locale ; locale names (as output of locale -a) +-complete=mapping ; mapping name +-complete=menu ; menus +-complete=option ; options +-complete=shellcmd ; Shell command +-complete=sign ; :sign suboptions +-complete=syntax ; syntax file names |'syntax'| +-complete=tag ; tags +-complete=tag_list ; tags, file names are shown when CTRL-D is hit +-complete=tag_listfiles ; tags, file names are shown when CTRL-D is hit +-complete=var ; user variables +-count= ; a count (default N) in the line or as an initial argument +-nargs=* ; any number of arguments are allowed (0, 1, or many) +-nargs=+ ; arguments must be supplied, but any number are allowed +-nargs=0 ; no arguments are allowed (the default) +-nargs=1 ; exactly one argument is required +-nargs=? ; 0 or 1 arguments are allowed +-range ; range allowed, default is current line +-range= ; a count (default N) which is specified in the line +-range=% ; range allowed, default is whole file (1,$) +-register ; the first argument to the command can be an optional register name diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_completions.dict b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_completions.dict new file mode 100644 index 0000000..3e258a4 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_completions.dict @@ -0,0 +1,498 @@ +N[ext] +P[rint] +a[ppend] +ab[breviate] abbreviation +abc[lear] +abo[veleft] command +al[l] +am[enu] +an[oremenu] menu +ar[gs] file +arga[dd] file +argd[elete] file +argdo command +arge[dit] file +argg[lobal] file +argl[ocal] file +argu[ment] +as[cii] +au[tocmd] autocmd_args +aug[roup] augroup +aun[menu] menu +bN[ext] +b[uffer] buffer +ba[ll] +bad[d] file +bd[elete] buffer +be[have] +bel[owright] command +bf[irst] +bl[ast] +bm[odified] +bn[ext] +bo[tright] command +bp[revious] +br[ewind] +brea[k] +breaka[dd] function +breakd[el] +breakl[ist] +bro[wse] command +bufdo command +buffers +bun[load] buffer +bw[ipeout] buffer +cN[ext] +cNf[ile] +c[hange] +ca[bbrev] abbreviation +cabc[lear] +cad[dexpr] expression +caddb[uffer] +caddf[ile] file +cal[l] function +cat[ch] +cb[uffer] +cc +ccl[ose] +cd dir +ce[nter] +cex[pr] expression +cf[ile] file +cfir[st] +cg[etfile] file +cgetb[uffer] +cgete[xpr] expression +changes +chd[ir] dir +che[ckpath] +checkt[ime] +cl[ist] +cla[st] +clo[se] +cm[ap] mapping +cmapc[lear] +cme[nu] menu +cn[ext] +cnew[er] +cnf[ile] +cno[remap] mapping +cnorea[bbrev] abbreviation +cnoreme[nu] menu +co[py] +col[der] +colo[rscheme] colorscheme_args +com[mand] command_args +comc[lear] +comp[iler] compiler_args +con[tinue] +conf[irm] command +cope[n] +cp[revious] +cpf[ile] +cq[uit] +cr[ewind] +cs[cope] cscope_args +cst[ag] +cu[nmap] mapping +cuna[bbrev] abbreviation +cunme[nu] menu +cw[indow] +d[elete] +deb[ug] command +debugg[reedy] +del[command] command +delf[unction] function +delm[arks] +di[splay] +diffg[et] +diffo[ff] +diffp[atch] file +diffpu[t] +diffs[plit] file +diffthis +diffu[pdate] +dig[raphs] +dj[ump] +dl[ist] +do[autocmd] autocmd_args +doautoa[ll] autocmd_args +dr[op] file +ds[earch] +dsp[lit] +e[dit] file +ea[rlier] +ec[ho] expression +echoe[rr] expression +echoh[l] expression +echom[sg] expression +echon expression +el[se] +elsei[f] expression +em[enu] menu +en[dif] +endf[unction] +endfo[r] +endt[ry] +endw[hile] +ene[w] +ex file +exe[cute] execute +exi[t] file +exu[sage] +f[ile] +files +filet[ype] +fin[d] file +fina[lly] +fini[sh] +fir[st] +fix[del] +fo[ld] +foldc[lose] +foldd[oopen] command +folddoc[losed] command +foldo[pen] +for expression +fu[nction] function_args +go[to] +gr[ep] file +grepa[dd] file +gu[i] file +gv[im] file +h[elp] help +ha[rdcopy] +helpf[ind] +helpg[rep] +helpt[ags] dir +hi[ghlight] highlight +hid[e] command +his[tory] +i[nsert] +ia[bbrev] abbreviation +iabc[lear] +if expression +ij[ump] +il[ist] +im[ap] mapping +imapc[lear] +imenu menu +ino[remap] mapping +inorea[bbrev] mapping +inoreme[nu] menu +int[ro] +is[earch] +isp[lit] +iu[nmap] mapping +iuna[bbrev] abbreviation +iunme[nu] menu +j[oin] +ju[mps] +kee[pmarks] command +keep[jumps] command +keepa[lt] command +lN[ext] +lNf[ile] +l[ist] +la[st] +lad[dexpr] expr +laddb[uffer] +laddf[ile] file +lan[guage] language_args +lat[er] +lb[uffer] +lc[d] dir +lch[dir] dir +lcl[ose] +lcs[cope] cscope_args +le[ft] +lefta[bove] command +let let +lex[pr] expression +lf[ile] file +lfir[st] +lg[etfile] file +lgetb[uffer] +lgete[xpr] expression +lgr[ep] file +lgrepa[dd] file +lh[elpgrep] +ll +lla[st] +lli[st] +lm[ap] mapping +lmak[e] file +lmapc[lear] +ln[oremap] mapping +lne[xt] +lnew[er] +lnf[ile] +lo[adview] +loadk[eymap] +loc[kmarks] command +lockv[ar] var +lol[der] +lop[en] +lp[revious] +lpf[ile] +lr[ewind] +ls +lt[ag] +lu[nmap] mapping +lua +luado +luafile file +lv[imgrep] file +lvimgrepadd file +lwindow +m[ove] +ma[rk] +mak[e] file +map mapping +mapc[lear] +marks +match +menu menu +menut[ranslate] menutranslate_args +mes[sages] +mk[exrc] file +mks[ession] file +mksp[ell] file +mkv[imrc] file +mkvie[w] file +mod[e] +mz[scheme] file +mzf[ile] file +n[ext] +nb[key] +new +nm[ap] mapping +nmapc[lear] +nmenu menu +nno[remap] mapping +nnoreme[nu] menu +no[remap] mapping +noa[utocmd] command +noh[lsearch] +norea[bbrev] abbreviation +noreme[nu] menu +norm[al] +nu[mber] +nun[map] mapping +nunme[nu] menu +o[pen] +ol[dfiles] +om[ap] mapping +omapc[lear] +ome[nu] menu +on[ly] +ono[remap] mapping +onoreme[nu] menu +opt[ions] +ou[nmap] lhs +ounmenu menu +ownsyntax syntax_args +p[rint] +pc[lose] +pe[rl] +ped[it] file +perld[o] +po[p] +popu[p] +pp[op] +pre[serve] +prev[ious] +prof[ile] profile_args +profd[el] +promptf[ind] +promptr[epl] +ps[earch] +ptN[ext] +pta[g] tag +ptf[irst] +ptj[ump] +ptl[ast] +ptn[ext] +ptp[revious] +ptr[ewind] +pts[elect] tag +pu[t] +pw[d] +py3f[ile] file +py[thon] +pyf[ile] file +python3 +q[uit] +qa[ll] +quita[ll] +r[ead] +rec[over] file +red[o] +redi[r] +redr[aw] +redraws[tatus] +reg[isters] +res[ize] +ret[ab] +retu[rn] expression +rew[ind] +ri[ght] +rightb[elow] command +rub[y] +rubyd[o] +rubyf[ile] file +runtime file +rv[iminfo] file +sN[ext] +s[ubstitute] +sa[rgument] +sal[l] +san[dbox] command +sav[eas] file +sbN[ext] +sb[uffer] buffer +sba[ll] +sbf[irst] +sbl[ast] +sbm[odified] +sbn[ext] +sbp[revious] +sbr[ewind] +scrip[tnames] +scripte[ncoding] encoding +scscope cscope_args +se[t] option +setf[iletype] filetype +setg[lobal] option +setl[ocal] option +sf[ind] file +sfir[st] +sh[ell] +sig[n] sign_args +sil[ent] command +sim[alt] +sl[eep] +sla[st] +sm[agic] +sm[ap] mapping +smapc[lear] +sme[nu] menu +sn[ext] file +sni[ff] +sno[remap] mapping +snoreme[nu] menu +so[urce] file +sor[t] +sp[lit] +spe[llgood] +spelld[ump] +spelli[nfo] +spellr[epall] +spellu[ndo] +spellw[rong] +spr[evious] +sre[wind] +st[op] +sta[g] tag +star[tinsert] +startg[replace] +startr[eplace] +stj[ump] tag +stopi[nsert] +sts[elect] tag +sun[hide] +sunm[ap] mapping +sunme[nu] menu +sus[pend] +sv[iew] file +sw[apname] +sy[ntax] syntax_args +sync[bind] +t +tN[ext] +ta[g] tag +tab command +tabN[ext] +tabc[lose] +tabd[o] command +tabe[dit] file +tabf[ind] file +tabfir[st] +tabl[ast] +tabm[ove] +tabn[ext] +tabnew file +tabo[nly] +tabp[revious] +tabr[ewind] +tabs +tags +tc[l] +tcld[o] +tclf[ile] file +te[aroff] menu +tf[irst] +th[row] expression +tj[ump] tag +tl[ast] +tm[enu] menu +tn[ext] +to[pleft] command +tp[revious] +tr[ewind] +try +tselect +tu[nmenu] menu +u[ndo] +una[bbreviate] abbreviation +undoj[oin] +undol[ist] +unh[ide] +unl[et] var +unlo[ckvar] var +unm[ap] mapping +unme[nu] menu +uns[ilent] command +up[date] file +ve[rsion] +verb[ose] command +vert[ical] command +vg[lobal] +vi[sual] file +vie[w] file +vim[grep] file +vimgrepa[dd] file +viu[sage] +vm[ap] mapping +vmapc[lear] +vmenu menu +vn[oremap] mapping +vne[w] file +vnoremenu menu +vsp[lit] file +vu[nmap] mapping +vunmenu menu +wN[ext] file +w[rite] file +wa[ll] +wh[ile] expression +win[size] +winc[md] +windo command +winp[os] +wn[ext] +wp[revious] file +wq +wqa[ll] +ws[verb] +wv[iminfo] file +x[it] file +xa[ll] +xm[ap] mapping +xmapc[lear] +xmenu menu +xn[oremap] mapping +xnoremenu menu +xu[nmap] mapping +xunmenu menu +y[ank] diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_prototypes.dict b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_prototypes.dict new file mode 100644 index 0000000..ecd86c9 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_prototypes.dict @@ -0,0 +1,498 @@ +N[ext] [count] [++opt] [+cmd] +P[rint] [count] [flags] +a[ppend] +ab[breviate] +abc[lear] +abo[veleft] {cmd} +al[l] [N] +am[enu] +an[oremenu] {menu} +ar[gs] +arga[dd] {name} .. +argd[elete] {pattern} .. +argdo {cmd} +arge[dit] [++opt] [+cmd] {name} +argg[lobal] [++opt] [+cmd] {arglist} +argl[ocal] [++opt] [+cmd] {arglist} +argu[ment] [count] [++opt] [+cmd] +as[cii] +au[tocmd] [group] {event} {pat} [nested] {cmd} +aug[roup] {name} +aun[menu] {menu} +bN[ext] [N] +b[uffer] {bufname} +ba[ll] [N] +bad[d] [+lnum] {fname} +bd[elete] {bufname} +be[have] {model} +bel[owright] {cmd} +bf[irst] +bl[ast] +bm[odified] [N] +bn[ext] [N] +bo[tright] {cmd} +bp[revious] [N] +br[ewind] +brea[k] +breaka[dd] func [lnum] {name} +breakd[el] {nr} +breakl[ist] +bro[wse] {command} +bufdo {cmd} +buffers +bun[load] {bufname} +bw[ipeout] {bufname} +cN[ext] +cNf[ile] +c[hange] +ca[bbrev] [] [lhs] [rhs] +cabc[lear] +cad[dexpr] {expr} +caddb[uffer] [bufnr] +caddf[ile] [errorfile] +cal[l] {name}([arguments]) +cat[ch] /{pattern}/ +cb[uffer] [bufnr] +cc [nr] +ccl[ose] +cd {path} +ce[nter] [width] +cex[pr] {expr} +cf[ile] [errorfile] +cfir[st] [nr] +cg[etfile] [errorfile] +cgetb[uffer] [bufnr] +cgete[xpr] {expr} +changes +chd[ir] [path] +che[ckpath] +checkt[ime] +cl[ist] [from] [, [to]] +cla[st] [nr] +clo[se] +cm[ap] {lhs} {rhs} +cmapc[lear] +cme[nu] {menu} +cn[ext] +cnew[er] [count] +cnf[ile] +cno[remap] {lhs} {rhs} +cnorea[bbrev] [] [lhs] [rhs] +cnoreme[nu] {menu} +co[py] {address} +col[der] [count] +colo[rscheme] {name} +com[mand] [-bang -complete= -nargs=...] {cmdname} {call function()} | {rep} +comc[lear] +comp[iler] {name} +con[tinue] +conf[irm] {command} +cope[n] [height] +cp[revious] +cpf[ile] +cq[uit] +cr[ewind] [nr] +cs[cope] add {file|dir} [pre-path] [flags] | find {querytype} {name} | kill {num|partial_name} | help | reset | show +cst[ag] +cu[nmap] {lhs} +cuna[bbrev] {lhs} +cunme[nu] {menu} +cw[indow] [height] +d[elete] [x] +deb[ug] {cmd} +debugg[reedy] +del[command] {cmd} +delf[unction] {name} +delm[arks] {marks} +di[splay] [arg] +diffg[et] [bufspec] +diffo[ff] +diffp[atch] {patchfile} +diffpu[t] [bufspec] +diffs[plit] {filename} +diffthis +diffu[pdate] +dig[raphs] {char1}{char2} {number} ... +dj[ump] [count] [/]string[/] +dl[ist] [/]string[/] +do[autocmd] [group] {event} [fname] +doautoa[ll] [group] {event} [fname] +dr[op] [++opt] [+cmd] {file} .. +ds[earch] [count] [/]string[/] +dsp[lit] [count] [/]string[/] +e[dit] [++opt] [+cmd] {file} +ea[rlier] {count} | {N}s | {N}h +ec[ho] {expr1} .. +echoe[rr] {expr1} .. +echoh[l] {expr1} .. +echom[sg] {expr1} .. +echon {expr1} .. +el[se] +elsei[f] {expr1} +em[enu] {menu} +en[dif] +endf[unction] +endfo[r] +endt[ry] +endw[hile] +ene[w] +ex [++opt] [+cmd] [file] +exe[cute] {expr1} .. +exi[t] [++opt] [file] +exu[sage] +f[ile] +files +filet[ype] +fin[d] [++opt] [+cmd] {file} +fina[lly] +fini[sh] +fir[st] [++opt] [+cmd] +fix[del] +fo[ld] +foldc[lose] +foldd[oopen] {cmd} +folddoc[losed] {cmd} +foldo[pen] +for {var} in {list} +fu[nction] {name}([arguments]) [range] [abort] [dict] +go[to] [count] +gr[ep] [arguments] +grepa[dd] [arguments] +gu[i] [++opt] [+cmd] [-f|-b] [files...] +gv[im] [++opt] [+cmd] [-f|-b] [files...] +h[elp] {subject} +ha[rdcopy] [arguments] +helpf[ind] +helpg[rep] {pattern}[@xx] +helpt[ags] [++t] {dir} +hi[ghlight] [default] {group-name} {key}={arg} .. +hid[e] {cmd} +his[tory] [{name}] [{first}][, [{last}]] +i[nsert] +ia[bbrev] [] [lhs] [rhs] +iabc[lear] +if {expr1} +ij[ump] [count] [/]pattern[/] +il[ist] [/]pattern[/] +im[ap] {lhs} {rhs} +imapc[lear] +imenu {menu} +ino[remap] {lhs} {rhs} +inorea[bbrev] [] [lhs] [rhs] +inoreme[nu] {menu} +int[ro] +is[earch] [count] [/]pattern[/] +isp[lit] [count] [/]pattern[/] +iu[nmap] {lhs} +iuna[bbrev] {lhs} +iunme[nu] {menu} +j[oin] {count} [flags] +ju[mps] +kee[pmarks] {command} +keep[jumps] {command} +keepa[lt] {cmd} +lN[ext] +lNf[ile] +l[ist] [count] [flags] +la[st] [++opt] [+cmd] +lad[dexpr] {expr} +laddb[uffer] [bufnr] +laddf[ile] [errorfile] +lan[guage] {name} | mes[sages] {name} | cty[pe] {name} | tim[e] {name} +lat[er] {count} | {N}s | {N}m | {N}h +lb[uffer] [bufnr] +lc[d] {path} +lch[dir] {path} +lcl[ose] +lcs[cope] add {file|dir} [pre-path] [flags] | find {querytype} {name} | kill {num|partial_name} | help | reset | show +le[ft] [indent] +lefta[bove] {cmd} +let {var-name} = {expr1} +lex[pr] {expr} +lf[ile] [errorfile] +lfir[st] [nr] +lg[etfile] [errorfile] +lgetb[uffer] [bufnr] +lgete[xpr] {expr} +lgr[ep] [arguments] +lgrepa[dd] [arguments] +lh[elpgrep] {pattern}[@xx] +ll [nr] +lla[st] [nr] +lli[st] [from] [, [to]] +lm[ap] {lhs} {rhs} +lmak[e] [arguments] +lmapc[lear] +ln[oremap] {lhs} {rhs} +lne[xt] +lnew[er] [count] +lnf[ile] +lo[adview] [nr] +loadk[eymap] +loc[kmarks] {command} +lockv[ar] [depth] {name} ... +lol[der] [count] +lop[en] [height] +lp[revious] +lpf[ile] +lr[ewind] [nr] +ls +lt[ag] [ident] +lua {chunk} | << {endmarker} +luado {body} +luafile {file} +lu[nmap] {lhs} +lv[imgrep] /{pattern}/[g][j] {file} ... | {pattern} {file} ... +lvimgrepadd /{pattern}/[g][j] {file} ... | {pattern} {file} ... +lwindow [height] +m[ove] {address} +ma[rk] {a-zA-z'} +mak[e] [arguments] +map {lhs} {rhs} +mapc[lear] +marks +match {group} /{pattern}/ +menu {menu} +menut[ranslate] clear | {english} {mylang} +mes[sages] +mk[exrc] [file] +mks[ession] [file] +mksp[ell] [-ascii] {outname} {inname} ... +mkv[imrc] [file] +mkvie[w] [file] +mod[e] [mode] +mz[scheme] {stmt} | << {endmarker} {script} {endmarker} | {file} +mzf[ile] {file} +n[ext] [++opt] [+cmd] +nb[key] key +new +nm[ap] {lhs} {rhs} +nmapc[lear] +nmenu {menu} +nno[remap] {lhs} {rhs} +nnoreme[nu] {menu} +no[remap] {lhs} {rhs} +noa[utocmd] {cmd} +noh[lsearch] +norea[bbrev] [] [lhs] [rhs] +noreme[nu] {menu} +norm[al] {commands} +nu[mber] [count] [flags] +nun[map] {lhs} +nunme[nu] {menu} +o[pen] /pattern/ +ol[dfiles] +om[ap] {lhs} {rhs} +omapc[lear] +ome[nu] {menu} +on[ly] +ono[remap] {lhs} {rhs} +onoreme[nu] {menu} +opt[ions] +ou[nmap] {lhs} +ounmenu {menu} +ownsyntax list {group-name} | list @{cluster-name} +p[rint] {count} [flags] +pc[lose] +pe[rl] {cmd} | << {endpattern} {script} {endpattern} +ped[it] [++opt] [+cmd] {file} +perld[o] {cmd} +po[p] +popu[p] {name} +pp[op] +pre[serve] +prev[ious] [count] [++opt] [+cmd] +prof[ile] start {fname} | pause | continue | func {pattern} | file {pattern} +profd[el] ... +promptf[ind] [string] +promptr[epl] [string] +ps[earch] [count] [/]pattern[/] +ptN[ext] +pta[g] [tagname] +ptf[irst] +ptj[ump] +ptl[ast] +ptn[ext] +ptp[revious] +ptr[ewind] +pts[elect] [ident] +pu[t] [x] +pw[d] +py[thon] {stmt} | << {endmarker} {script} {endmarker} +python3 {stmt} | << {endmarker} {script} {endmarker} +pyf[ile] {file} +py3f[ile] {file} +q[uit] +qa[ll] +quita[ll] +r[ead] [++opt] [name] +rec[over] [file] +red[o] +redi[r] > {file} | >> {file} | @{a-zA-Z} | => {var} | END +redr[aw] +redraws[tatus] +reg[isters] {arg} +res[ize] +ret[ab] [new_tabstop] +retu[rn] [expr] +rew[ind] [++opt] [+cmd] +ri[ght] [width] +rightb[elow] {cmd} +rub[y] {cmd} | << {endpattern} {script} {endpattern} +rubyd[o] {cmd} +rubyf[ile] {file} +runtime {file} .. +rv[iminfo] [file] +sN[ext] [++opt] [+cmd] [N] +s[ubstitute] /{pattern}/{string}/[flags] [count] +sa[rgument] [++opt] [+cmd] [N] +sal[l] +san[dbox] {cmd} +sav[eas] [++opt] {file} +sbN[ext] [N] +sb[uffer] {bufname} +sba[ll] [N] +sbf[irst] +sbl[ast] +sbm[odified] [N] +sbn[ext] [N] +sbp[revious] [N] +sbr[ewind] +scrip[tnames] +scripte[ncoding] [encoging] +scscope add {file|dir} [pre-path] [flags] | find {querytype} {name} | kill {num|partial_name} | help | reset | show +se[t] {option}={value} {option}? | {option} | {option}& +setf[iletype] {filetype} +setg[lobal] ... +setl[ocal] ... +sf[ind] [++opt] [+cmd] {file} +sfir[st] [++opt] [+cmd] +sh[ell] +sig[n] define {name} {argument}... | icon={pixmap} | linehl={group} | text={text} | texthl={group} +sil[ent] {command} +sim[alt] {key} +sl[eep] [N] [m] +sla[st] [++opt] [+cmd] +sm[agic] ... +sm[ap] {lhs} {rhs} +smapc[lear] +sme[nu] {menu} +sn[ext] [++opt] [+cmd] [file ..] +sni[ff] request [symbol] +sno[remap] {lhs} {rhs} +snoreme[nu] {menu} +so[urce] {file} +sor[t] [i][u][r][n][x][o] [/{pattern}/] +sp[lit] [++opt] [+cmd] +spe[llgood] {word} +spelld[ump] +spelli[nfo] +spellr[epall] +spellu[ndo] {word} +spellw[rong] {word} +spr[evious] [++opt] [+cmd] [N] +sre[wind] [++opt] [+cmd] +st[op] +sta[g] [tagname] +star[tinsert] +startg[replace] +startr[eplace] +stj[ump] [ident] +stopi[nsert] +sts[elect] [ident] +sun[hide] [N] +sunm[ap] {lhs} +sunme[nu] {menu} +sus[pend] +sv[iew] [++opt] [+cmd] {file} +sw[apname] +sy[ntax] list {group-name} | list @{cluster-name} +sync[bind] +t +tN[ext] +ta[g] {ident} +tab {cmd} +tabN[ext] +tabc[lose] +tabd[o] {cmd} +tabe[dit] [++opt] [+cmd] {file} +tabf[ind] [++opt] [+cmd] {file} +tabfir[st] +tabl[ast] +tabm[ove] [N] +tabn[ext] +tabnew [++opt] [+cmd] {file} +tabo[nly] +tabp[revious] +tabr[ewind] +tabs +tags +tc[l] {cmd} | {endmarker} {script} {endmarker} +tcld[o] {cmd} +tclf[ile] {file} +te[aroff] {name} +tf[irst] +th[row] {expr1} +tj[ump] [ident] +tl[ast] +tm[enu] {menu} +tn[ext] +to[pleft] {cmd} +tp[revious] +tr[ewind] +try +tselect +tu[nmenu] {menu} +u[ndo] {N} +una[bbreviate] {lhs} +undoj[oin] +undol[ist] +unh[ide] [N] +unl[et] {name} ... +unlo[ckvar] [depth] {name} ... +unm[ap] {lhs} +unme[nu] {menu} +uns[ilent] {command} +up[date] [++opt] [>>] [file] +ve[rsion] +verb[ose] {command} +vert[ical] {cmd} +vg[lobal] /{pattern}/[cmd] +vi[sual] [++opt] [+cmd] [file] +vie[w] [++opt] [+cmd] file +vim[grep] /{pattern}/[g][j] {file} ... | {pattern} {file} ... +vimgrepa[dd] /{pattern}/[g][j] {file} ... | {pattern} {file} ... +viu[sage] +vm[ap] {lhs} {rhs} +vmapc[lear] +vmenu {menu} +vn[oremap] {lhs} {rhs} +vne[w] [++opt] [+cmd] [file] +vnoremenu {menu} +vsp[lit] [++opt] [+cmd] [file] +vu[nmap] {lhs} +vunmenu {menu} +wN[ext] [++opt] [file] +w[rite] [++opt] [file] +wa[ll] +wh[ile] {expr1} +win[size] {width} {height} +winc[md] {arg} +windo {cmd} +winp[os] {X} {Y} +wn[ext] [++opt] +wp[revious] [++opt] [file] +wq [++opt] +wqa[ll] [++opt] +ws[verb] verb +wv[iminfo] [file] +x[it] [++opt] [file] +xa[ll] [++opt] +xm[ap] {lhs} {rhs} +xmapc[lear] +xmenu {menu} +xn[oremap] {lhs} {rhs} +xnoremenu {menu} +xu[nmap] {lhs} +xunmenu {menu} +y[ank] [x] {count} diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_replaces.dict b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_replaces.dict new file mode 100644 index 0000000..6ec9154 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/command_replaces.dict @@ -0,0 +1,10 @@ + ; the starting line of the command range + ; the final line of the command range + ; any count supplied (as described for the '-range' and '-count' attributes) + ; expands to a ! if the command was executed with a ! modifier + ; the optional register, if specified + ; the command arguments, exactly as supplied + ; a single '<' (Less-Than) character + ; the value is quoted in such a way as to make it a valid value for use in an expression + ; splits the command arguments at spaces and tabs, quotes each argument individually + ; defining a user command in a script diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/commands.dict b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/commands.dict new file mode 100644 index 0000000..565c1ea --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/commands.dict @@ -0,0 +1,492 @@ +Next ; go to previous file in the argument list +Print ; print lines +abbreviate ; enter abbreviation +abclear ; remove all abbreviations +aboveleft ; make split window appear left or above +all ; open a window for each file in the argument list +amenu ; enter new menu item for all modes +anoremenu ; enter a new menu for all modes that will not be remapped +append ; append text +argadd ; add items to the argument list +argdelete ; delete items from the argument list +argdo ; do a command on all items in the argument list +argedit ; add item to the argument list and edit it +argglobal ; define the global argument list +arglocal ; define a local argument list +args ; print the argument list +argument ; go to specific file in the argument list +ascii ; print ascii value of character under the cursor +augroup ; select the autocommand group to use +aunmenu ; remove menu for all modes +autocmd ; enter or show autocommands +bNext ; go to previous buffer in the buffer list +badd ; add buffer to the buffer list +ball ; open a window for each buffer in the buffer list +bdelete ; remove a buffer from the buffer list +behave ; set mouse and selection behavior +belowright ; make split window appear right or below +bfirst ; go to first buffer in the buffer list +blast ; go to last buffer in the buffer list +bmodified ; go to next buffer in the buffer list that has been modified +bnext ; go to next buffer in the buffer list +botright ; make split window appear at bottom or far right +bprevious ; go to previous buffer in the buffer list +break ; break out of while loop +breakadd ; add a debugger breakpoint +breakdel ; delete a debugger breakpoint +breaklist ; list debugger breakpoints +brewind ; go to first buffer in the buffer list +browse ; use file selection dialog +bufdo ; execute command in each listed buffer +buffer ; go to specific buffer in the buffer list +buffers ; list all files in the buffer list +bunload ; unload a specific buffer +bwipeout ; really delete a buffer +cNext ; go to previous error +cNfile ; go to last error in previous file +cabbrev ; like "abbreviate" but for Command-line mode +cabclear ; clear all abbreviations for Command-line mode +caddbuffer ; add errors from buffer +caddexpr ; add errors from expr +caddfile ; add error message to current quickfix list +call ; call a function +catch ; part of a try command +cbuffer ; parse error messages and jump to first error +cclose ; close quickfix window +center ; format lines at the center +cexpr ; read errors from expr and jump to first +cfile ; read file with error messages and jump to first +cfirst ; go to the specified error, default first one +cgetbuffer ; get errors from buffer +cgetexpr ; get errors from expr +cgetfile ; read file with error messages +change ; replace a line or series of lines +changes ; print the change list +chdir ; change directory +checkpath ; list included files +checktime ; check timestamp of loaded buffers +clast ; go to the specified error, default last one +clist ; list all errors +close ; close current window +cmap ; like "map" but for Command-line mode +cmapclear ; clear all mappings for Command-line mode +cmenu ; add menu for Command-line mode +cnewer ; go to newer error list +cnext ; go to next error +cnfile ; go to first error in next file +cnoreabbrev ; like "noreabbrev" but for Command-line mode +cnoremap ; like "noremap" but for Command-line mode +cnoremenu ; like "noremenu" but for Command-line mode +colder ; go to older error list +colorscheme ; load a specific color scheme +comclear ; clear all user-defined commands +command ; create user-defined command +compiler ; do settings for a specific compiler +confirm ; prompt user when confirmation required +continue ; go back to while +copen ; open quickfix window +copy ; copy lines +cpfile ; go to last error in previous file +cprevious ; go to previous error +cquit ; quit Vim with an error code +crewind ; go to the specified error, default first one +cscope ; execute cscope command +cstag ; use cscope to jump to a tag +cunabbrev ; like "unabbrev" but for Command-line mode +cunmap ; like "unmap" but for Command-line mode +cunmenu ; remove menu for Command-line mode +cwindow ; open or close quickfix window +debug ; run a command in debugging mode +debuggreedy ; read debug mode commands from normal input +delcommand ; delete user-defined command +delete ; delete lines +delfunction ; delete a user function +delmarks ; delete marks +diffget ; remove differences in current buffer +diffoff ; switch off diff mode +diffpatch ; apply a patch and show differences +diffput ; remove differences in other buffer +diffsplit ; show differences with another file +diffthis ; make current window a diff window +diffupdate ; update 'diff' buffers +digraphs ; show or enter digraphs +display ; display registers +djump ; jump to #define +dlist ; list #defines +doautoall ; apply autocommands for all loaded buffers +doautocmd ; apply autocommands to current buffer +drop ; jump to window editing file or edit file in current window +dsearch ; list one #define +dsplit ; split window and jump to #define +earlier ; go to older change, undo +echo ; echoes the result of expressions +echoerr ; like echo, show like an error and use history +echohl ; set highlighting for echo commands +echomsg ; same as echo, put message in history +echon ; same as echo, but without +edit ; edit a file +else ; part of an if command +elseif ; part of an if command +emenu ; execute a menu by name +endfor ; end previous for +endfunction ; end of a user function +endif ; end previous if +endtry ; end previous try +endwhile ; end previous while +enew ; edit a new, unnamed buffer +execute ; execute result of expressions +exit ; same as "xit" +exusage ; overview of Ex commands +file ; show or set the current file name +files ; list all files in the buffer list +filetype ; switch file type detection on/off +finally ; part of a try command +find ; find file in 'path' and edit it +finish ; quit sourcing a Vim script +first ; go to the first file in the argument list +fixdel ; set key code of +fold ; create a fold +foldclose ; close folds +folddoclosed ; execute command on lines in a closed fold +folddoopen ; execute command on lines not in a closed fold +foldopen ; open folds +for ; for loop +function ; define a user function +global ; execute commands for matching lines +goto ; go to byte in the buffer +grep ; run 'grepprg' and jump to first match +grepadd ; like grep, but append to current list +gui ; start the GUI +gvim ; start the GUI +hardcopy ; send text to the printer +help ; open a help window +helpfind ; dialog to open a help window +helpgrep ; like "grep" but searches help files +helptags ; generate help tags for a directory +hide ; hide current buffer for a command +highlight ; specify highlighting methods +history ; print a history list +iabbrev ; like "abbrev" but for Insert mode +iabclear ; like "abclear" but for Insert mode +ijump ; jump to definition of identifier +ilist ; list lines where identifier matches +imap ; like "map" but for Insert mode +imapclear ; like "mapclear" but for Insert mode +imenu ; add menu for Insert mode +inoreabbrev ; like "noreabbrev" but for Insert mode +inoremap ; like "noremap" but for Insert mode +inoremenu ; like "noremenu" but for Insert mode +insert ; insert text +intro ; print the introductory message +isearch ; list one line where identifier matches +isplit ; split window and jump to definition of identifier +iunabbrev ; like "unabbrev" but for Insert mode +iunmap ; like "unmap" but for Insert mode +iunmenu ; remove menu for Insert mode +join ; join lines +jumps ; print the jump list +keepalt ; following command keeps the alternate file +keepjumps ; following command keeps jumplist and marks +keepmarks ; following command keeps marks where they are +lNext ; go to previous entry in location list +lNfile ; go to last entry in previous file +laddbuffer ; add locations from buffer +laddexpr ; add locations from expr +laddfile ; add locations to current location list +language ; set the language (locale) +last ; go to the last file in the argument list +later ; go to newer change, redo +lbuffer ; parse locations and jump to first location +lcd ; change directory locally +lchdir ; change directory locally +lclose ; close location window +lcscope ; like "cscope" but uses location list +left ; left align lines +leftabove ; make split window appear left or above +let ; assign a value to a variable or option +lexpr ; read locations from expr and jump to first +lfile ; read file with locations and jump to first +lfirst ; go to the specified location, default first one +lgetbuffer ; get locations from buffer +lgetexpr ; get locations from expr +lgetfile ; read file with locations +lgrep ; run 'grepprg' and jump to first match +lgrepadd ; like grep, but append to current list +lhelpgrep ; like "helpgrep" but uses location list +list ; print lines +llast ; go to the specified location, default last one +llist ; list all locations +lmake ; execute external command 'makeprg' and parse error messages +lmap ; like "map!" but includes Lang-Arg mode +lmapclear ; like "mapclear!" but includes Lang-Arg mode +lnewer ; go to newer location list +lnext ; go to next location +lnfile ; go to first location in next file +lnoremap ; like "noremap!" but includes Lang-Arg mode +loadkeymap ; load the following keymaps until EOF +loadview ; load view for current window from a file +lockmarks ; following command keeps marks where they are +lockvar ; lock variables +lolder ; go to older location list +lopen ; open location window +lpfile ; go to last location in previous file +lprevious ; go to previous location +lrewind ; go to the specified location, default first one +ltag ; jump to tag and add matching tags to the location list +lua ; execute Lua chunk. +luado ; execute Lua function. +luafile ; execute Lua script in file. +lunmap ; like "unmap!" but includes Lang-Arg mode +lvimgrep ; search for pattern in files +lvimgrepadd ; like vimgrep, but append to current list +lwindow ; open or close location window +make ; execute external command 'makeprg' and parse error messages +map ; show or enter a mapping +mapclear ; clear all mappings for Normal and Visual mode +mark ; set a mark +marks ; list all marks +match ; define a match to highlight +menu ; enter a new menu item +menutranslate ; add a menu translation item +messages ; view previously displayed messages +mkexrc ; write current mappings and settings to a file +mksession ; write session info to a file +mkspell ; produce .spl spell file +mkview ; write view of current window to a file +mkvimrc ; write current mappings and settings to a file +mode ; show or change the screen mode +move ; move lines +mzfile ; execute MzScheme script file +mzscheme ; execute MzScheme command +nbkey ; pass a key to Netbeans +new ; create a new empty window +next ; go to next file in the argument list +nmap ; like "map" but for Normal mode +nmapclear ; clear all mappings for Normal mode +nmenu ; add menu for Normal mode +nnoremap ; like "noremap" but for Normal mode +nnoremenu ; like "noremenu" but for Normal mode +noautocmd ; following command don't trigger autocommands +nohlsearch ; suspend 'hlsearch' highlighting +noreabbrev ; enter an abbreviation that will not be remapped +noremap ; enter a mapping that will not be remapped +noremenu ; enter a menu that will not be remapped +normal ; execute Normal mode commands +number ; print lines with line number +nunmap ; like "unmap" but for Normal mode +nunmenu ; remove menu for Normal mode +oldfiles ; list files that have marks in the viminfo file +omap ; like "map" but for Operator-pending mode +omapclear ; remove all mappings for Operator-pending mode +omenu ; add menu for Operator-pending mode +only ; close all windows except the current one +onoremap ; like "noremap" but for Operator-pending mode +onoremenu ; like "noremenu" but for Operator-pending mode +open ; start open mode (not implemented) +options ; open the options-window +ounmap ; like "unmap" but for Operator-pending mode +ounmenu ; remove menu for Operator-pending mode +ownsyntax ; define Window-local syntax +pclose ; close preview window +pedit ; edit file in the preview window +perl ; execute Perl command +perldo ; execute Perl command for each line +pop ; jump to older entry in tag stack +popup ; popup a menu by name +ppop ; "pop" in preview window +preserve ; write all text to swap file +previous ; go to previous file in argument list +print ; print lines +profdel ; stop profiling a function or script +profile ; profiling functions and scripts +promptfind ; open GUI dialog for searching +promptrepl ; open GUI dialog for search/replace +psearch ; like "ijump" but shows match in preview window +ptNext ; tNext in preview window +ptag ; show tag in preview window +ptfirst ; trewind in preview window +ptjump ; tjump and show tag in preview window +ptlast ; tlast in preview window +ptnext ; tnext in preview window +ptprevious ; tprevious in preview window +ptrewind ; trewind in preview window +ptselect ; tselect and show tag in preview window +put ; insert contents of register in the text +pwd ; print current directory +py3file ; execute Python3 script file +pyfile ; execute Python script file +python ; execute Python command +python3 ; execute Python3 command +qall ; quit Vim +quit ; quit current window (when one window quit Vim) +quitall ; quit Vim +read ; read file into the text +recover ; recover a file from a swap file +redir ; redirect messages to a file or register +redo ; redo one undone change +redraw ; force a redraw of the display +redrawstatus ; force a redraw of the status line(s) +registers ; display the contents of registers +resize ; change current window height +retab ; change tab size +return ; return from a user function +rewind ; go to the first file in the argument list +right ; right align text +rightbelow ; make split window appear right or below +ruby ; execute Ruby command +rubydo ; execute Ruby command for each line +rubyfile ; execute Ruby script file +runtime ; source vim scripts in 'runtimepath' +rviminfo ; read from viminfo file +sNext ; split window and go to previous file in argument list +sall ; open a window for each file in argument list +sandbox ; execute a command in the sandbox +sargument ; split window and go to specific file in argument list +saveas ; save file under another name. +sbNext ; split window and go to previous file in the buffer list +sball ; open a window for each file in the buffer list +sbfirst ; split window and go to first file in the buffer list +sblast ; split window and go to last file in buffer list +sbmodified ; split window and go to modified file in the buffer list +sbnext ; split window and go to next file in the buffer list +sbprevious ; split window and go to previous file in the buffer list +sbrewind ; split window and go to first file in the buffer list +sbuffer ; split window and go to specific file in the buffer list +scriptencoding ; encoding used in sourced Vim script +scriptnames ; list names of all sourced Vim scripts +scscope ; split window and execute cscope command +set ; show or set options +setfiletype ; set 'filetype', unless it was set already +setglobal ; show global values of options +setlocal ; show or set options locally +sfind ; split current window and edit file in 'path' +sfirst ; split window and go to first file in the argument list +shell ; escape to a shell +sign ; manipulate signs +silent ; run a command silently +simalt ; Win32 GUI simulate Windows ALT key +slast ; split window and go to last file in the argument list +sleep ; do nothing for a few seconds +smagic ; substitute with 'magic' +smap ; like "map" but for Select mode +smapclear ; remove all mappings for Select mode +smenu ; add menu for Select mode +snext ; split window and go to next file in the argument list +sniff ; send request to sniff +snomagic ; substitute with 'nomagic' +snoremap ; like "noremap" but for Select mode +snoremenu ; like "noremenu" but for Select mode +sort ; sort lines +source ; read Vim or Ex commands from a file +spelldump ; split window and fill with all correct words +spellgood ; add good word for spelling +spellinfo ; show info about loaded spell files +spellrepall ; replace all bad words like last z= +spellundo ; remove good or bad word +spellwrong ; add spelling mistake +split ; split current window +sprevious ; split window and go to previous file in the argument list +srewind ; split window and go to first file in the argument list +stag ; split window and jump to a tag +startgreplace ; start Virtual Replace mode +startinsert ; start Insert mode +startreplace ; start Replace mode +stjump ; do "tjump" and split window +stop ; suspend the editor or escape to a shell +stopinsert ; stop Insert mode +stselect ; do "tselect" and split window +substitute ; find and replace text +sunhide ; same as "unhide" +sunmap ; like "unmap" but for Select mode +sunmenu ; remove menu for Select mode +suspend ; same as "stop" +sview ; split window and edit file read-only +swapname ; show the name of the current swap file +syncbind ; sync scroll binding +syntax ; syntax highlighting +tNext ; jump to previous matching tag +tab ; create new tab when opening new window +tabNext ; go to previous tab page +tabclose ; close current tab page +tabdo ; execute command in each tab page +tabedit ; edit a file in a new tab page +tabfind ; find file in 'path', edit it in a new tab page +tabfirst ; got to first tab page +tablast ; got to last tab page +tabmove ; move tab page to other position +tabnew ; edit a file in a new tab page +tabnext ; go to next tab page +tabonly ; close all tab pages except the current one +tabprevious ; go to previous tab page +tabrewind ; got to first tab page +tabs ; list the tab pages and what they contain +tag ; jump to tag +tags ; show the contents of the tag stack +tcl ; execute Tcl command +tcldo ; execute Tcl command for each line +tclfile ; execute Tcl script file +tearoff ; tear-off a menu +tfirst ; jump to first matching tag +throw ; throw an exception +tjump ; like "tselect", but jump directly when there is only one match +tlast ; jump to last matching tag +tmenu ; define menu tooltip +tnext ; jump to next matching tag +topleft ; make split window appear at top or far left +tprevious ; jump to previous matching tag +trewind ; jump to first matching tag +try ; execute commands, abort on error or exception +tselect ; list matching tags and select one +tunmenu ; remove menu tooltip +unabbreviate ; remove abbreviation +undo ; undo last change(s) +undojoin ; join next change with previous undo block +undolist ; list leafs of the undo tree +unhide ; open a window for each loaded file in the buffer list +unlet ; delete variable +unlockvar ; unlock variables +unmap ; remove mapping +unmenu ; remove menu +unsilent ; run a command not silently +update ; write buffer if modified +verbose ; execute command with 'verbose' set +version ; print version number and other info +vertical ; make following command split vertically +vglobal ; execute commands for not matching lines +view ; edit a file read-only +vimgrep ; search for pattern in files +vimgrepadd ; like vimgrep, but append to current list +visual ; same as "edit", but turns off "Ex" mode +viusage ; overview of Normal mode commands +vmap ; like "map" but for Visual+Select mode +vmapclear ; remove all mappings for Visual+Select mode +vmenu ; add menu for Visual+Select mode +vnew ; create a new empty window, vertically split +vnoremap ; like "noremap" but for Visual+Select mode +vnoremenu ; like "noremenu" but for Visual+Select mode +vsplit ; split current window vertically +vunmap ; like "unmap" but for Visual+Select mode +vunmenu ; remove menu for Visual+Select mode +wNext ; write to a file and go to previous file in argument list +wall ; write all (changed) buffers +while ; execute loop for as long as condition met +wincmd ; execute a Window (CTRL-W) command +windo ; execute command in each window +winpos ; get or set window position +winsize ; get or set window size (obsolete) +wnext ; write to a file and go to next file in argument list +wprevious ; write to a file and go to previous file in argument list +wqall ; write all changed buffers and quit Vim +write ; write to a file +wsverb ; pass the verb to workshop over IPC +wviminfo ; write to viminfo file +xall ; same as "wqall" +xit ; write if buffer changed and quit window or Vim +xmap ; like "map" but for Visual mode +xmapclear ; remove all mappings for Visual mode +xmenu ; add menu for Visual mode +xnoremap ; like "noremap" but for Visual mode +xnoremenu ; like "noremenu" but for Visual mode +xunmap ; like "unmap" but for Visual mode +xunmenu ; remove menu for Visual mode +yank ; yank lines into a register diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/features.dict b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/features.dict new file mode 100644 index 0000000..d76359e --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/features.dict @@ -0,0 +1,153 @@ +all_builtin_terms ; Compiled with all builtin terminals enabled. +amiga ; Amiga version of Vim. +arabic ; Compiled with Arabic support |Arabic|. +arp ; Compiled with ARP support (Amiga). +autocmd ; Compiled with autocommand support. |autocommand| +balloon_eval ; Compiled with |balloon-eval| support. +balloon_multiline ; GUI supports multiline balloons. +beos ; BeOS version of Vim. +browse ; Compiled with |:browse| support, and browse() will work. +builtin_terms ; Compiled with some builtin terminals. +byte_offset ; Compiled with support for 'o' in 'statusline' +cindent ; Compiled with 'cindent' support. +clientserver ; Compiled with remote invocation support |clientserver|. +clipboard ; Compiled with 'clipboard' support. +cmdline_compl ; Compiled with |cmdline-completion| support. +cmdline_hist ; Compiled with |cmdline-history| support. +cmdline_info ; Compiled with 'showcmd' and 'ruler' support. +comments ; Compiled with |'comments'| support. +compatible ; Compiled to be very Vi compatible. +cryptv ; Compiled with encryption support |encryption|. +cscope ; Compiled with |cscope| support. +debug ; Compiled with "DEBUG" defined. +dialog_con ; Compiled with console dialog support. +dialog_gui ; Compiled with GUI dialog support. +diff ; Compiled with |vimdiff| and 'diff' support. +digraphs ; Compiled with support for digraphs. +dnd ; Compiled with support for the "~ register |quote_~|. +dos16 ; 16 bits DOS version of Vim. +dos32 ; 32 bits DOS (DJGPP) version of Vim. +ebcdic ; Compiled on a machine with ebcdic character set. +emacs_tags ; Compiled with support for Emacs tags. +eval ; Compiled with expression evaluation support. Always true, of course! +ex_extra ; Compiled with extra Ex commands |+ex_extra|. +extra_search ; Compiled with support for |'incsearch'| and |'hlsearch'| +farsi ; Compiled with Farsi support |farsi|. +file_in_path ; Compiled with support for |gf| and || +filterpipe ; When 'shelltemp' is off pipes are used for shell read/write/filter commands +find_in_path ; Compiled with support for include file searches |+find_in_path|. +float ; Compiled with support for |Float|. +fname_case ; Case in file names matters (for Amiga, MS-DOS, and Windows this is not present). +folding ; Compiled with |folding| support. +footer ; Compiled with GUI footer support. |gui-footer| +fork ; Compiled to use fork()/exec() instead of system(). +gettext ; Compiled with message translation |multi-lang| +gui ; Compiled with GUI enabled. +gui_athena ; Compiled with Athena GUI. +gui_gnome ; Compiled with Gnome support (gui_gtk is also defined). +gui_gtk ; Compiled with GTK+ GUI (any version). +gui_gtk2 ; Compiled with GTK+ 2 GUI (gui_gtk is also defined). +gui_mac ; Compiled with Macintosh GUI. +gui_motif ; Compiled with Motif GUI. +gui_photon ; Compiled with Photon GUI. +gui_running ; Vim is running in the GUI, or it will start soon. +gui_win32 ; Compiled with MS Windows Win32 GUI. +gui_win32s ; idem, and Win32s system being used (Windows 3.1) +hangul_input ; Compiled with Hangul input support. |hangul| +iconv ; Can use iconv() for conversion. +insert_expand ; Compiled with support for CTRL-X expansion commands in Insert mode. +jumplist ; Compiled with |jumplist| support. +keymap ; Compiled with 'keymap' support. +langmap ; Compiled with 'langmap' support. +libcall ; Compiled with |libcall()| support. +linebreak ; Compiled with 'linebreak', 'breakat' and 'showbreak' support. +lispindent ; Compiled with support for lisp indenting. +listcmds ; Compiled with commands for the buffer list |:files| and the argument list |arglist|. +localmap ; Compiled with local mappings and abbr. |:map-local| +lua ; Compiled with Lua interface |Lua|. +mac ; Macintosh version of Vim. +macunix ; Macintosh version of Vim, using Unix files (OS-X). +menu ; Compiled with support for |:menu|. +mksession ; Compiled with support for |:mksession|. +modify_fname ; Compiled with file name modifiers. |filename-modifiers| +mouse ; Compiled with support mouse. +mouse_dec ; Compiled with support for Dec terminal mouse. +mouse_gpm ; Compiled with support for gpm (Linux console mouse) +mouse_netterm ; Compiled with support for netterm mouse. +mouse_pterm ; Compiled with support for qnx pterm mouse. +mouse_sysmouse ; Compiled with support for sysmouse (*BSD console mouse) +mouse_xterm ; Compiled with support for xterm mouse. +mouseshape ; Compiled with support for 'mouseshape'. +multi_byte ; Compiled with support for 'encoding' +multi_byte_encoding ; 'encoding' is set to a multi-byte encoding. +multi_byte_ime ; Compiled with support for IME input method. +multi_lang ; Compiled with support for multiple languages. +mzscheme ; Compiled with MzScheme interface |mzscheme|. +netbeans_enabled ; Compiled with support for |netbeans| and it's used. +netbeans_intg ; Compiled with support for |netbeans|. +ole ; Compiled with OLE automation support for Win32. +os2 ; OS/2 version of Vim. +osfiletype ; Compiled with support for osfiletypes |+osfiletype| +path_extra ; Compiled with up/downwards search in 'path' and 'tags' +perl ; Compiled with Perl interface. +persistent_undo ; Compiled with support for persistent undo history. +postscript ; Compiled with PostScript file printing. +printer ; Compiled with |:hardcopy| support. +profile ; Compiled with |:profile| support. +python ; Compiled with Python interface. +python3 ; Compiled with Python3 interface. +qnx ; QNX version of Vim. +quickfix ; Compiled with |quickfix| support. +reltime ; Compiled with |reltime()| support. +rightleft ; Compiled with 'rightleft' support. +ruby ; Compiled with Ruby interface |ruby|. +scrollbind ; Compiled with 'scrollbind' support. +showcmd ; Compiled with 'showcmd' support. +signs ; Compiled with |:sign| support. +smartindent ; Compiled with 'smartindent' support. +sniff ; Compiled with SNiFF interface support. +spell ; Compiled with spell checking support |spell|. +statusline ; Compiled with |--startuptime| support. +sun_workshop ; Compiled with support for Sun |workshop|. +syntax ; Compiled with syntax highlighting support |syntax|. +syntax_items ; There are active syntax highlighting items for the current buffer. +system ; Compiled to use system() instead of fork()/exec(). +tag_any_white ; Compiled with support for any white characters in tags files |tag-any-white|. +tag_binary ; Compiled with binary searching in tags files |tag-binary-search|. +tag_old_static ; Compiled with support for old static tags |tag-old-static|. +tcl ; Compiled with Tcl interface. +terminfo ; Compiled with terminfo instead of termcap. +termresponse ; Compiled with support for |t_RV| and |v:termresponse|. +textobjects ; Compiled with support for |text-objects|. +tgetent ; Compiled with tgetent support, able to use a termcap or terminfo file. +title ; Compiled with window title support |'title'|. +toolbar ; Compiled with support for |gui-toolbar|. +unix ; Unix version of Vim. +unnamedplus ; Usable '+' register instead of '*' register. +user_commands ; User-defined commands. +vertsplit ; Compiled with vertically split windows |:vsplit|. +vim_starting ; True while initial source'ing takes place. +viminfo ; Compiled with viminfo support. +virtualedit ; Compiled with 'virtualedit' option. +visual ; Compiled with Visual mode. +visualextra ; Compiled with extra Visual mode commands. +vms ; VMS version of Vim. +vreplace ; Compiled with |gR| and |gr| commands. +wildignore ; Compiled with 'wildignore' option. +wildmenu ; Compiled with 'wildmenu' option. +win16 ; Win16 version of Vim (MS-Windows 3.1). +win32 ; Win32 version of Vim (MS-Windows 95/98/ME/NT/2000/XP). +win32unix ; Win32 version of Vim, using Unix files (Cygwin) +win64 ; Win64 version of Vim (MS-Windows 64 bit). +win95 ; Win32 version for MS-Windows 95/98/ME. +winaltkeys ; Compiled with 'winaltkeys' option. +windows ; Compiled with support for more than one window. +writebackup ; Compiled with 'writebackup' default on. +x11 ; Compiled with X11 support. +xfontset ; Compiled with X fontset support |xfontset|. +xim ; Compiled with X input method support |xim|. +xpm_w32 ; Compiled with pixmap support for Win32. +xsmp ; Compiled with X session management support. +xsmp_interact ; Compiled with interactive X session management support. +xterm_clipboard ; Compiled with support for xterm clipboard. +xterm_save ; Compiled with support for saving and restoring the xterm screen. diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/functions.dict b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/functions.dict new file mode 100644 index 0000000..3a3d798 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/functions.dict @@ -0,0 +1,252 @@ +abs({expr}) +acos({expr}) +add({list}, {item}) +append({lnum}, {list}) +append({lnum}, {string}) +argc() +argidx() +argv() +argv({nr}) +asin({expr}) +atan({expr}) +atan2({expr1}, {expr2}) +browse({save}, {title}, {initdir}, {default}) +browsedir({title}, {initdir}) +bufexists({expr}) +buflisted({expr}) +bufloaded({expr}) +bufname({expr}) +bufnr({expr}) +bufwinnr({expr}) +byte2line({byte}) +byteidx({expr}, {nr}) +call({func}, {arglist} [, {dict}]) +ceil({expr}) +changenr() +char2nr({expr}) +cindent({lnum}) +clearmatches() +col({expr}) +complete({startcol}, {matches}) +complete_add({expr}) +complete_check() +confirm({msg} [, {choices} [, {default} [, {type}]]]) +copy({expr}) +cos({expr}) +cosh({expr}) +count({list}, {expr} [, {start} [, {ic}]]) +cscope_connection([{num} , {dbpath} [, {prepend}]]) +cursor({list}) +cursor({lnum}, {col} [, {coladd}]) +deepcopy({expr}) +delete({fname}) +did_filetype() +diff_filler({lnum}) +diff_hlID({lnum}, {col}) +empty({expr}) +escape({string}, {chars}) +eval({string}) +eventhandler() +executable({expr}) +exists({expr}) +exp({expr}) +expand({expr} [, {flag}]) +extend({expr1}, {expr2} [, {expr3}]) +feedkeys({string} [, {mode}]) +filereadable({file}) +filewritable({file}) +filter({expr}, {string}) +finddir({name}[, {path}[, {count}]]) +findfile({name}[, {path}[, {count}]]) +float2nr({expr}) +floor({expr}) +fmod({expr1}, {expr2}) +fnameescape({fname}) +fnamemodify({fname}, {mods}) +foldclosed({lnum}) +foldclosedend({lnum}) +foldlevel({lnum}) +foldtext() +foldtextresult({lnum}) +foreground() +function({name}) +garbagecollect([at_exit]) +get({dict}, {key} [, {def}]) +get({list}, {idx} [, {def}]) +getbufline({expr}, {lnum} [, {end}]) +getbufvar({expr}, {varname}) +getchar([expr]) +getcharmod() +getcmdline() +getcmdpos() +getcmdtype() +getcwd() +getfontname([{name}]) +getfperm({fname}) +getfsize({fname}) +getftime({fname}) +getftype({fname}) +getline({lnum}) +getline({lnum}, {end}) +getloclist({nr}) +getmatches() +getpid() +getpos({expr}) +getqflist() +getreg([{regname} [, 1]]) +getregtype([{regname}]) +gettabvar({tabnr}, {varname}) +gettabwinvar({tabnr}, {winnr}, {name}) +getwinposx() +getwinposy() +getwinvar({nr}, {varname}) +glob({expr} [, {flag}]) +globpath({path}, {expr} [, {flag}]) +has({feature}) +has_key({dict}, {key}) +haslocaldir() +hasmapto({what} [, {mode} [, {abbr}]]) +histadd({history},{item}) +histdel({history} [, {item}]) +histget({history} [, {index}]) +histnr({history}) +hlID({name}) +hlexists({name}) +hostname() +iconv({expr}, {from}, {to}) +indent({lnum}) +index({list}, {expr} [, {start} [, {ic}]]) +input({prompt} [, {text} [, {completion}]]) +inputdialog({p} [, {t} [, {c}]]) +inputlist({textlist}) +inputrestore() +inputsave() +inputsecret({prompt} [, {text}]) +insert({list}, {item} [, {idx}]) +isdirectory({directory}) +islocked({expr}) +items({dict}) +join({list} [, {sep}]) +keys({dict}) +len({expr}) +libcall({lib}, {func}, {arg}) +libcallnr({lib}, {func}, {arg}) +line({expr}) +line2byte({lnum}) +lispindent({lnum}) +localtime() +log({expr}) +log10({expr}) +map({expr}, {string}) +maparg({name}[, {mode} [, {abbr}]]) +mapcheck({name}[, {mode} [, {abbr}]]) +match({expr}, {pat}[, {start}[, {count}]]) +matchadd({group}, {pattern}[, {priority}[, {id}]]) +matcharg({nr}) +matchdelete({id}) +matchend({expr}, {pat}[, {start}[, {count}]]) +matchlist({expr}, {pat}[, {start}[, {count}]]) +matchstr({expr}, {pat}[, {start}[, {count}]]) +max({list}) +min({list}) +mkdir({name} [, {path} [, {prot}]]) +mode([expr]) +nextnonblank({lnum}) +nr2char({expr}) +pathshorten({expr}) +pow({x}, {y}) +prevnonblank({lnum}) +printf({fmt}, {expr1}...) +pumvisible() +range({expr} [, {max} [, {stride}]]) +readfile({fname} [, {binary} [, {max}]]) +reltime([{start} [, {end}]]) +reltimestr({time}) +remote_expr({server}, {string} [, {idvar}]) +remote_foreground({server}) +remote_peek({serverid} [, {retvar}]) +remote_read({serverid}) +remote_send({server}, {string} [, {idvar}]) +remove({dict}, {key}) +remove({list}, {idx} [, {end}]) +rename({from}, {to}) +repeat({expr}, {count}) +resolve({filename}) +reverse({list}) +round({expr}) +search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) +searchdecl({name} [, {global} [, {thisblock}]]) +searchpair({start}, {middle}, {end} [, {flags} [, {skip} [...]]]) +searchpairpos({start}, {middle}, {end} [, {flags} [, {skip} [...]]]) +searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]]) +server2client({clientid}, {string}) +serverlist() +setbufvar({expr}, {varname}, {val}) +setcmdpos({pos}) +setline({lnum}, {line}) +setloclist({nr}, {list}[, {action}]) +setmatches({list}) +setpos({expr}, {list}) +setqflist({list}[, {action}]) +setreg({n}, {v}[, {opt}]) +settabvar({tabnr}, {varname}, {val}) +settabwinvar({tabnr}, {winnr}, {varname}, {val}) +setwinvar({nr}, {varname}, {val}) +shellescape({string} [, {special}]) +simplify({filename}) +sin({expr}) +sinh({expr}) +sort({list} [, {func}]) +soundfold({word}) +spellbadword() +spellsuggest({word} [, {max} [, {capital}]]) +split({expr} [, {pat} [, {keepempty}]]) +sqrt({expr}) +str2float({expr}) +str2nr({expr} [, {base}]) +strchars({expr}) +strdisplaywidth({expr}[, {col}]) +strftime({format}[, {time}]) +stridx({haystack}, {needle}[, {start}]) +string({expr}) +strlen({expr}) +strpart({src}, {start}[, {len}]) +strridx({haystack}, {needle} [, {start}]) +strtrans({expr}) +strwidth({expr}) +submatch({nr}) +substitute({expr}, {pat}, {sub}, {flags}) +synID({lnum}, {col}, {trans}) +synIDattr({synID}, {what} [, {mode}]) +synIDtrans({synID}) +synconcealed({lnum}, {col}) +synstack({lnum}, {col}) +system({expr} [, {input}]) +tabpagebuflist([{arg}]) +tabpagenr([{arg}]) +tabpagewinnr({tabarg}[, {arg}]) +tagfiles() +taglist({expr}) +tan({expr}) +tanh({expr}) +tempname() +tolower({expr}) +toupper({expr}) +tr({src}, {fromstr}, {tostr}) +trunc({expr} +type({name}) +undofile({name}) +undotree() +values({dict}) +virtcol({expr}) +visualmode([expr]) +winbufnr({nr}) +wincol() +winheight({nr}) +winline() +winnr([{expr}]) +winrestcmd() +winrestview({dict}) +winsaveview() +winwidth({nr}) +writefile({list}, {fname} [, {binary}]) diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/helper.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/helper.vim new file mode 100644 index 0000000..9cd4cb3 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/autoload/neocomplcache/sources/vim_complete/helper.vim @@ -0,0 +1,964 @@ +"============================================================================= +" FILE: helper.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 24 Apr 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +if !exists('s:internal_candidates_list') + let s:internal_candidates_list = {} + let s:global_candidates_list = { 'dictionary_variables' : {} } + let s:script_candidates_list = {} + let s:local_candidates_list = {} +endif + +function! neocomplcache#sources#vim_complete#helper#on_filetype() "{{{ + " Caching script candidates. + let bufnumber = 1 + + " Check buffer. + while bufnumber <= bufnr('$') + if getbufvar(bufnumber, '&filetype') == 'vim' && bufloaded(bufnumber) + \&& !has_key(s:script_candidates_list, bufnumber) + let s:script_candidates_list[bufnumber] = s:get_script_candidates(bufnumber) + endif + + let bufnumber += 1 + endwhile + + if neocomplcache#exists_echodoc() + call echodoc#register('vim_complete', s:doc_dict) + endif +endfunction"}}} + +function! neocomplcache#sources#vim_complete#helper#recaching(bufname) "{{{ + " Caching script candidates. + let bufnumber = a:bufname != '' ? bufnr(a:bufname) : bufnr('%') + + if getbufvar(bufnumber, '&filetype') == 'vim' && bufloaded(bufnumber) + let s:script_candidates_list[bufnumber] = s:get_script_candidates(bufnumber) + endif + let s:global_candidates_list = { 'dictionary_variables' : {} } +endfunction"}}} + +" For echodoc. "{{{ +let s:doc_dict = { + \ 'name' : 'vim_complete', + \ 'rank' : 10, + \ 'filetypes' : { 'vim' : 1 }, + \ } +function! s:doc_dict.search(cur_text) "{{{ + let cur_text = a:cur_text + + " Echo prototype. + let script_candidates_list = s:get_cached_script_candidates() + + let prototype_name = matchstr(cur_text, + \'\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\s*(\ze\%([^(]\|(.\{-})\)*$') + let ret = [] + if prototype_name != '' + if !has_key(s:internal_candidates_list, 'function_prototypes') + " No cache. + return [] + endif + + " Search function name. + call add(ret, { 'text' : prototype_name, 'highlight' : 'Identifier' }) + if has_key(s:internal_candidates_list.function_prototypes, prototype_name) + call add(ret, { 'text' : s:internal_candidates_list.function_prototypes[prototype_name] }) + elseif has_key(s:global_candidates_list.function_prototypes, prototype_name) + call add(ret, { 'text' : s:global_candidates_list.function_prototypes[prototype_name] }) + elseif has_key(script_candidates_list.function_prototypes, prototype_name) + call add(ret, { 'text' : script_candidates_list.function_prototypes[prototype_name] }) + else + " No prototypes. + return [] + endif + else + if !has_key(s:internal_candidates_list, 'command_prototypes') + " No cache. + return [] + endif + + " Search command name. + " Skip head digits. + let prototype_name = neocomplcache#sources#vim_complete#get_command(cur_text) + call add(ret, { 'text' : prototype_name, 'highlight' : 'Statement' }) + if has_key(s:internal_candidates_list.command_prototypes, prototype_name) + call add(ret, { 'text' : s:internal_candidates_list.command_prototypes[prototype_name] }) + elseif has_key(s:global_candidates_list.command_prototypes, prototype_name) + call add(ret, { 'text' : s:global_candidates_list.command_prototypes[prototype_name] }) + else + " No prototypes. + return [] + endif + endif + + return ret +endfunction"}}} +"}}} + +function! neocomplcache#sources#vim_complete#helper#get_command_completion(command_name, cur_text, complete_str) "{{{ + let completion_name = + \ neocomplcache#sources#vim_complete#helper#get_completion_name(a:command_name) + if completion_name == '' + " Not found. + return [] + endif + + let args = (completion_name ==# 'custom' || completion_name ==# 'customlist')? + \ [a:command_name, a:cur_text, a:complete_str] : [a:cur_text, a:complete_str] + return call('neocomplcache#sources#vim_complete#helper#'.completion_name, args) +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#get_completion_name(command_name) "{{{ + if !has_key(s:internal_candidates_list, 'command_completions') + let s:internal_candidates_list.command_completions = + \ s:caching_completion_from_dict('command_completions') + endif + if !has_key(s:global_candidates_list, 'command_completions') + let s:global_candidates_list.commands = + \ neocomplcache#pack_dictionary(s:get_cmdlist()) + endif + + if has_key(s:internal_candidates_list.command_completions, a:command_name) + \&& exists('*neocomplcache#sources#vim_complete#helper#' + \ .s:internal_candidates_list.command_completions[a:command_name]) + return s:internal_candidates_list.command_completions[a:command_name] + elseif has_key(s:global_candidates_list.command_completions, a:command_name) + \&& exists('*neocomplcache#sources#vim_complete#helper#' + \ .s:global_candidates_list.command_completions[a:command_name]) + return s:global_candidates_list.command_completions[a:command_name] + else + return '' + endif +endfunction"}}} + +function! neocomplcache#sources#vim_complete#helper#autocmd_args(cur_text, complete_str) "{{{ + let args = s:split_args(a:cur_text, a:complete_str) + if len(args) < 2 + return [] + endif + + " Caching. + if !has_key(s:global_candidates_list, 'augroups') + let s:global_candidates_list.augroups = s:get_augrouplist() + endif + if !has_key(s:internal_candidates_list, 'autocmds') + let s:internal_candidates_list.autocmds = s:caching_from_dict('autocmds', '') + endif + + let list = [] + if len(args) == 2 + let list += s:global_candidates_list.augroups + s:internal_candidates_list.autocmds + elseif len(args) == 3 + if args[1] ==# 'FileType' + " Filetype completion. + let list += neocomplcache#sources#vim_complete#helper#filetype(a:cur_text, a:complete_str) + endif + + let list += s:internal_candidates_list.autocmds + elseif len(args) == 4 + if args[2] ==# 'FileType' + " Filetype completion. + let list += neocomplcache#sources#vim_complete#helper#filetype( + \ a:cur_text, a:complete_str) + endif + + let list += neocomplcache#sources#vim_complete#helper#command( + \ args[3], a:complete_str) + let list += s:make_completion_list(['nested'], '') + else + let command = args[3] =~ '^*' ? + \ join(args[4:]) : join(args[3:]) + let list += neocomplcache#sources#vim_complete#helper#command( + \ command, a:complete_str) + let list += s:make_completion_list(['nested'], '') + endif + + return list +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#augroup(cur_text, complete_str) "{{{ + " Caching. + if !has_key(s:global_candidates_list, 'augroups') + let s:global_candidates_list.augroups = s:get_augrouplist() + endif + + return s:global_candidates_list.augroups +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#buffer(cur_text, complete_str) "{{{ + return [] +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#colorscheme_args(cur_text, complete_str) "{{{ + return s:make_completion_list(filter(map(split( + \ globpath(&runtimepath, 'colors/*.vim'), '\n'), + \ 'fnamemodify(v:val, ":t:r")'), + \ 'stridx(v:val, a:complete_str) == 0'), '') +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#command(cur_text, complete_str) "{{{ + if a:cur_text == '' || + \ a:cur_text =~ '^[[:digit:],[:space:][:tab:]$''<>]*\h\w*$' + " Commands. + + " Caching. + if !has_key(s:global_candidates_list, 'commands') + let s:global_candidates_list.commands = + \ neocomplcache#pack_dictionary(s:get_cmdlist()) + endif + if !has_key(s:internal_candidates_list, 'commands') + let s:internal_candidates_list.command_prototypes = + \ s:caching_prototype_from_dict('command_prototypes') + let commands = s:caching_from_dict('commands', 'c') + for command in commands + if has_key(s:internal_candidates_list.command_prototypes, command.word) + let command.description = command.word . + \ s:internal_candidates_list.command_prototypes[command.word] + endif + endfor + + let s:internal_candidates_list.commands = + \ neocomplcache#pack_dictionary(commands) + endif + + " echomsg string(s:internal_candidates_list.commands)[: 1000] + " echomsg string(s:global_candidates_list.commands)[: 1000] + let list = neocomplcache#dictionary_filter( + \ s:internal_candidates_list.commands, a:complete_str) + \ + neocomplcache#dictionary_filter( + \ s:global_candidates_list.commands, a:complete_str) + else + " Commands args. + let command = neocomplcache#sources#vim_complete#get_command(a:cur_text) + let completion_name = + \ neocomplcache#sources#vim_complete#helper#get_completion_name(command) + + " Prevent infinite loop. + let cur_text = completion_name ==# 'command' ? + \ a:cur_text[len(command):] : a:cur_text + + let list = neocomplcache#sources#vim_complete#helper#get_command_completion( + \ command, cur_text, a:complete_str) + + if a:cur_text =~ + \'[[(,{]\|`=[^`]*$' + " Expression. + let list += neocomplcache#sources#vim_complete#helper#expression( + \ a:cur_text, a:complete_str) + endif + endif + + return list +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#command_args(cur_text, complete_str) "{{{ + " Caching. + if !has_key(s:internal_candidates_list, 'command_args') + let s:internal_candidates_list.command_args = + \ s:caching_from_dict('command_args', '') + let s:internal_candidates_list.command_replaces = + \ s:caching_from_dict('command_replaces', '') + endif + + return s:internal_candidates_list.command_args + + \ s:internal_candidates_list.command_replaces +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#custom(command_name, cur_text, complete_str) "{{{ + if !has_key(g:neocomplcache_vim_completefuncs, a:command_name) + return [] + endif + + return s:make_completion_list(split( + \ call(g:neocomplcache_vim_completefuncs[a:command_name], + \ [a:complete_str, getline('.'), len(a:cur_text)]), '\n'), '') +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#customlist(command_name, cur_text, complete_str) "{{{ + if !has_key(g:neocomplcache_vim_completefuncs, a:command_name) + return [] + endif + + return s:make_completion_list( + \ call(g:neocomplcache_vim_completefuncs[a:command_name], + \ [a:complete_str, getline('.'), len(a:cur_text)]), '') +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#dir(cur_text, complete_str) "{{{ + return filter(neocomplcache#sources#filename_complete#get_complete_words( + \ a:complete_str, '.'), 'isdirectory(v:val.word)') +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#environment(cur_text, complete_str) "{{{ + " Caching. + if !has_key(s:global_candidates_list, 'environments') + let s:global_candidates_list.environments = s:get_envlist() + endif + + return s:global_candidates_list.environments +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#event(cur_text, complete_str) "{{{ + return [] +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#execute(cur_text, complete_str) "{{{ + if a:cur_text =~ '["''][^"'']*$' + let command = matchstr(a:cur_text, '["'']\zs[^"'']*$') + return neocomplcache#sources#vim_complete#helper#command(command, a:complete_str) + else + return neocomplcache#sources#vim_complete#helper#expression(a:cur_text, a:complete_str) + endif +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#expression(cur_text, complete_str) "{{{ + return neocomplcache#sources#vim_complete#helper#function(a:cur_text, a:complete_str) + \+ neocomplcache#sources#vim_complete#helper#var(a:cur_text, a:complete_str) +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#feature(cur_text, complete_str) "{{{ + if !has_key(s:internal_candidates_list, 'features') + let s:internal_candidates_list.features = s:caching_from_dict('features', '') + endif + return s:internal_candidates_list.features +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#file(cur_text, complete_str) "{{{ + return neocomplcache#sources#filename_complete#get_complete_words( + \ a:complete_str, '.') +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#filetype(cur_text, complete_str) "{{{ + if !has_key(s:internal_candidates_list, 'filetypes') + let s:internal_candidates_list.filetypes = + \ neocomplcache#pack_dictionary(s:make_completion_list(map( + \ split(globpath(&runtimepath, 'syntax/*.vim'), '\n') + + \ split(globpath(&runtimepath, 'indent/*.vim'), '\n') + + \ split(globpath(&runtimepath, 'ftplugin/*.vim'), '\n') + \ , "matchstr(fnamemodify(v:val, ':t:r'), '^[[:alnum:]-]*')"), '')) + endif + + return neocomplcache#dictionary_filter( + \ s:internal_candidates_list.filetypes, a:complete_str) +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#function(cur_text, complete_str) "{{{ + " Caching. + if !has_key(s:global_candidates_list, 'functions') + let s:global_candidates_list.functions = + \ neocomplcache#pack_dictionary(s:get_functionlist()) + endif + if !has_key(s:internal_candidates_list, 'functions') + let s:internal_candidates_list.function_prototypes = + \ s:caching_prototype_from_dict('functions') + + let functions = s:caching_from_dict('functions', 'f') + for function in functions + if has_key(s:internal_candidates_list.function_prototypes, function.word) + let function.description = function.word + \ . s:internal_candidates_list.function_prototypes[function.word] + endif + endfor + + let s:internal_candidates_list.functions = + \ neocomplcache#pack_dictionary(functions) + endif + + let script_candidates_list = s:get_cached_script_candidates() + if a:complete_str =~ '^s:' + let list = values(script_candidates_list.functions) + elseif a:complete_str =~ '^\a:' + let functions = deepcopy(values(script_candidates_list.functions)) + for keyword in functions + let keyword.word = '' . keyword.word[2:] + let keyword.abbr = '' . keyword.abbr[2:] + endfor + let list = functions + else + let list = neocomplcache#dictionary_filter( + \ s:internal_candidates_list.functions, a:complete_str) + \ + neocomplcache#dictionary_filter( + \ s:global_candidates_list.functions, a:complete_str) + endif + + return list +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#help(cur_text, complete_str) "{{{ + return [] +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#highlight(cur_text, complete_str) "{{{ + return [] +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#let(cur_text, complete_str) "{{{ + if a:cur_text !~ '=' + return neocomplcache#sources#vim_complete#helper#var(a:cur_text, a:complete_str) + elseif a:cur_text =~# '\' + let list += neocomplcache#sources#vim_complete#helper#expression(a:cur_text, a:complete_str) + elseif a:cur_text =~ ':\?' + let command = matchstr(a:cur_text, ':\?\zs.*$') + let list += neocomplcache#sources#vim_complete#helper#command(command, a:complete_str) + endif + + return list +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#menu(cur_text, complete_str) "{{{ + return [] +endfunction"}}} +function! neocomplcache#sources#vim_complete#helper#option(cur_text, complete_str) "{{{ + " Caching. + if !has_key(s:internal_candidates_list, 'options') + let s:internal_candidates_list.options = s:caching_from_dict('options', 'o') + + for keyword in deepcopy(s:internal_candidates_list.options) + let keyword.word = 'no' . keyword.word + let keyword.abbr = 'no' . keyword.abbr + call add(s:internal_candidates_list.options, keyword) + endfor + endif + + if a:cur_text =~ '\', '', '', '', + \ '', '', '', ''], '') +endfunction"}}} + +function! s:get_local_variables() "{{{ + " Get local variable list. + + let keyword_dict = {} + " Search function. + let line_num = line('.') - 1 + let end_line = (line('.') > 100) ? line('.') - 100 : 1 + while line_num >= end_line + let line = getline(line_num) + if line =~ '\' + break + elseif line =~ '\ 700 ? + \ s:script_candidates_list[bufnr('%')] : { + \ 'functions' : {}, 'variables' : {}, 'function_prototypes' : {}, 'dictionary_variables' : {} } +endfunction"}}} +function! s:get_script_candidates(bufnumber) "{{{ + " Get script candidate list. + + let function_dict = {} + let variable_dict = {} + let dictionary_variable_dict = {} + let function_prototypes = {} + let var_pattern = '\a:[[:alnum:]_:]*\.\h\w*\%(()\?\)\?' + + for line in getbufline(a:bufnumber, 1, '$') + if line =~ '\\?\|\h[[:alnum:]_:#\[]*\%([!\]]\+\|()\?\)\?\)' + let keyword_list = [] + for line in readfile(dict_files[0]) + call add(keyword_list, { + \ 'word' : substitute(matchstr( + \ line, keyword_pattern), '[\[\]]', '', 'g'), + \ 'kind' : a:kind, 'abbr' : line + \}) + endfor + + return keyword_list +endfunction"}}} +function! s:caching_completion_from_dict(dict_name) "{{{ + let dict_files = split(globpath(&runtimepath, + \ 'autoload/neocomplcache/sources/vim_complete/'.a:dict_name.'.dict'), '\n') + if empty(dict_files) + return {} + endif + + let keyword_dict = {} + for line in readfile(dict_files[0]) + let word = matchstr(line, '^[[:alnum:]_\[\]]\+') + let completion = matchstr(line[len(word):], '\h\w*') + if completion != '' + if word =~ '\[' + let [word_head, word_tail] = split(word, '\[') + let word_tail = ' ' . substitute(word_tail, '\]', '', '') + else + let word_head = word + let word_tail = ' ' + endif + + for i in range(len(word_tail)) + let keyword_dict[word_head . word_tail[1:i]] = completion + endfor + endif + endfor + + return keyword_dict +endfunction"}}} +function! s:caching_prototype_from_dict(dict_name) "{{{ + let dict_files = split(globpath(&runtimepath, + \ 'autoload/neocomplcache/sources/vim_complete/'.a:dict_name.'.dict'), '\n') + if empty(dict_files) + return {} + endif + if a:dict_name == 'functions' + let pattern = '^[[:alnum:]_]\+(' + else + let pattern = '^[[:alnum:]_\[\](]\+' + endif + + let keyword_dict = {} + for line in readfile(dict_files[0]) + let word = matchstr(line, pattern) + let rest = line[len(word):] + if word =~ '\[' + let [word_head, word_tail] = split(word, '\[') + let word_tail = ' ' . substitute(word_tail, '\]', '', '') + else + let word_head = word + let word_tail = ' ' + endif + + for i in range(len(word_tail)) + let keyword_dict[word_head . word_tail[1:i]] = rest + endfor + endfor + + return keyword_dict +endfunction"}}} + +function! s:get_cmdlist() "{{{ + " Get command list. + redir => redir + silent! command + redir END + + let keyword_list = [] + let completions = [ 'augroup', 'buffer', 'behave', + \ 'color', 'command', 'compiler', 'cscope', + \ 'dir', 'environment', 'event', 'expression', + \ 'file', 'file_in_path', 'filetype', 'function', + \ 'help', 'highlight', 'history', 'locale', + \ 'mapping', 'menu', 'option', 'shellcmd', 'sign', + \ 'syntax', 'tag', 'tag_listfiles', + \ 'var', 'custom', 'customlist' ] + let command_prototypes = {} + let command_completions = {} + for line in split(redir, '\n')[1:] + let word = matchstr(line, '\a\w*') + + " Analyze prototype. + let end = matchend(line, '\a\w*') + let args = matchstr(line, '[[:digit:]?+*]', end) + if args != '0' + let prototype = matchstr(line, '\a\w*', end) + let found = 0 + for comp in completions + if comp == prototype + let command_completions[word] = prototype + let found = 1 + + break + endif + endfor + + if !found + let prototype = 'arg' + endif + + if args == '*' + let prototype = '[' . prototype . '] ...' + elseif args == '?' + let prototype = '[' . prototype . ']' + elseif args == '+' + let prototype = prototype . ' ...' + endif + + let command_prototypes[word] = ' ' . repeat(' ', 16 - len(word)) . prototype + else + let command_prototypes[word] = '' + endif + let prototype = command_prototypes[word] + + call add(keyword_list, { + \ 'word' : word, 'abbr' : word . prototype, + \ 'description' : word . prototype, 'kind' : 'c' + \}) + endfor + let s:global_candidates_list.command_prototypes = command_prototypes + let s:global_candidates_list.command_completions = command_completions + + return keyword_list +endfunction"}}} +function! s:get_variablelist(dict, prefix) "{{{ + let kind_dict = ['0', '""', '()', '[]', '{}', '.'] + return values(map(copy(a:dict), "{ + \ 'word' : a:prefix.v:key, + \ 'kind' : kind_dict[type(v:val)], + \}")) +endfunction"}}} +function! s:get_functionlist() "{{{ + " Get function list. + redir => redir + silent! function + redir END + + let keyword_dict = {} + let function_prototypes = {} + for line in split(redir, '\n') + let line = line[9:] + if line =~ '^' + continue + endif + let orig_line = line + + let word = matchstr(line, '\h[[:alnum:]_:#.]*()\?') + if word != '' + let keyword_dict[word] = { + \ 'word' : word, 'abbr' : line, + \ 'description' : line, + \} + + let function_prototypes[word] = orig_line[len(word):] + endif + endfor + + let s:global_candidates_list.function_prototypes = function_prototypes + + return values(keyword_dict) +endfunction"}}} +function! s:get_augrouplist() "{{{ + " Get augroup list. + redir => redir + silent! augroup + redir END + + let keyword_list = [] + for group in split(redir . ' END', '\s\|\n') + call add(keyword_list, { 'word' : group }) + endfor + return keyword_list +endfunction"}}} +function! s:get_mappinglist() "{{{ + " Get mapping list. + redir => redir + silent! map + redir END + + let keyword_list = [] + for line in split(redir, '\n') + let map = matchstr(line, '^\a*\s*\zs\S\+') + if map !~ '^<' || map =~ '^' + continue + endif + call add(keyword_list, { 'word' : map }) + endfor + return keyword_list +endfunction"}}} +function! s:get_envlist() "{{{ + " Get environment variable list. + + let keyword_list = [] + for line in split(system('set'), '\n') + let word = '$' . toupper(matchstr(line, '^\h\w*')) + call add(keyword_list, { 'word' : word, 'kind' : 'e' }) + endfor + return keyword_list +endfunction"}}} +function! s:make_completion_list(list, kind) "{{{ + let list = [] + for item in a:list + call add(list, { 'word' : item, 'kind' : a:kind }) + endfor + + return list +endfunction"}}} +function! s:analyze_function_line(line, keyword_dict, prototype) "{{{ + " Get script function. + let line = substitute(matchstr(a:line, '\ ; the mapping will be effective in the current buffer only + ; the argument is an expression evaluated to obtain the {rhs} that is used + ; define a mapping which uses the "mapleader" variable + ; just like , except that it uses "maplocalleader" instead of "mapleader" + ; used for an internal mapping, which is not to be matched with any key sequence + +< + At the line 1 and 3, neocomplcache#get_context_filetype() is + "html" and at the line 2 it's "javascript", whilst at any + lines &filetype is "html". + + *neocomplcache#disable_default_dictionary()* +neocomplcache#disable_default_dictionary({variable-name}) + Disable default {variable-name} dictionary initialization. + Note: It must be called in .vimrc. +> + call neocomplcache#disable_default_dictionary( + \ 'g:neocomplcache_same_filetype_lists') +< +------------------------------------------------------------------------------ +KEY MAPPINGS *neocomplcache-key-mappings* + + *neocomplcache#start_manual_complete()* +neocomplcache#start_manual_complete([{sources}]) + Use this function on inoremap . The keymapping call the + completion of neocomplcache. When you rearrange the completion + of the Vim standard, you use it. + If you give {sources} argument, neocomplcache call {sources}. + {sources} is name of source or list of sources name. +> + inoremap neocomplcache#start_manual_complete() +< + *neocomplcache#manual_filename_complete()* + *neocomplcache#manual_omni_complete()* + Note: These functions are obsolete. + + *neocomplcache#close_popup()* +neocomplcache#close_popup() + Inset candidate and close popup menu for neocomplcache. +> + inoremap neocomplcache#close_popup() +< + *neocomplcache#cancel_popup()* +neocomplcache#cancel_popup() + cancel completion menu for neocomplcache. +> + inoremap neocomplcache#cancel_popup() +< + *neocomplcache#smart_close_popup()* +neocomplcache#smart_close_popup() + Inset candidate and close popup menu for neocomplcache. + Unlike|neocomplcache#close_popup()|, this function changes + behavior by|g:neocomplcache_enable_auto_select|smart. + Note: This mapping is conflicted with |SuperTab| or |endwise| + plugins. + + *neocomplcache#undo_completion()* +neocomplcache#undo_completion() + Use this function on inoremap . Undo inputted + candidate. Because there is not mechanism to cancel + candidate in Vim, it will be convenient when it inflects. +> + inoremap neocomplcache#undo_completion() +< + *neocomplcache#complete_common_string()* +neocomplcache#complete_common_string() + Use this function on inoremap . Complete common + string in candidates. It will be convenient when candidates + have long common string. +> + inoremap neocomplcache#complete_common_string() +< + *(neocomplcache_start_unite_complete)* +(neocomplcache_start_unite_complete) + Start completion with |unite|. + Note: Required unite.vim Latest ver.3.0 or above. + Note: In unite interface, uses partial match instead of head + match. + + *(neocomplcache_start_quick_match)* +(neocomplcache_start_unite_quick_match) + Start completion with |unite| and start quick match mode. + Note: Required unite.vim Latest ver.3.0 or above. + +============================================================================== +EXAMPLES *neocomplcache-examples* +> + "Note: This option must set it in .vimrc(_vimrc). NOT IN .gvimrc(_gvimrc)! + " Disable AutoComplPop. + let g:acp_enableAtStartup = 0 + " Use neocomplcache. + let g:neocomplcache_enable_at_startup = 1 + " Use smartcase. + let g:neocomplcache_enable_smart_case = 1 + " Set minimum syntax keyword length. + let g:neocomplcache_min_syntax_length = 3 + let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*' + + " Enable heavy features. + " Use camel case completion. + "let g:neocomplcache_enable_camel_case_completion = 1 + " Use underbar completion. + "let g:neocomplcache_enable_underbar_completion = 1 + + " Define dictionary. + let g:neocomplcache_dictionary_filetype_lists = { + \ 'default' : '', + \ 'vimshell' : $HOME.'/.vimshell_hist', + \ 'scheme' : $HOME.'/.gosh_completions' + \ } + + " Define keyword. + if !exists('g:neocomplcache_keyword_patterns') + let g:neocomplcache_keyword_patterns = {} + endif + let g:neocomplcache_keyword_patterns['default'] = '\h\w*' + + " Plugin key-mappings. + inoremap neocomplcache#undo_completion() + inoremap neocomplcache#complete_common_string() + + " Recommended key-mappings. + " : close popup and save indent. + inoremap =my_cr_function() + function! s:my_cr_function() + return neocomplcache#smart_close_popup() . "\" + " For no inserting key. + "return pumvisible() ? neocomplcache#close_popup() : "\" + endfunction + " : completion. + inoremap pumvisible() ? "\" : "\" + " , : close popup and delete backword char. + inoremap neocomplcache#smart_close_popup()."\" + inoremap neocomplcache#smart_close_popup()."\" + inoremap neocomplcache#close_popup() + inoremap neocomplcache#cancel_popup() + " Close popup by . + "inoremap pumvisible() ? neocomplcache#close_popup() : "\" + + " For cursor moving in insert mode(Not recommended) + "inoremap neocomplcache#close_popup() . "\" + "inoremap neocomplcache#close_popup() . "\" + "inoremap neocomplcache#close_popup() . "\" + "inoremap neocomplcache#close_popup() . "\" + " Or set this. + "let g:neocomplcache_enable_cursor_hold_i = 1 + " Or set this. + "let g:neocomplcache_enable_insert_char_pre = 1 + + " AutoComplPop like behavior. + "let g:neocomplcache_enable_auto_select = 1 + + " Shell like behavior(not recommended). + "set completeopt+=longest + "let g:neocomplcache_enable_auto_select = 1 + "let g:neocomplcache_disable_auto_complete = 1 + "inoremap pumvisible() ? "\" : "\\" + + " Enable omni completion. + autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS + autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags + autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS + autocmd FileType python setlocal omnifunc=pythoncomplete#Complete + autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags + + " Enable heavy omni completion. + if !exists('g:neocomplcache_omni_patterns') + let g:neocomplcache_omni_patterns = {} + endif + if !exists('g:neocomplcache_force_omni_patterns') + let g:neocomplcache_force_omni_patterns = {} + endif + let g:neocomplcache_omni_patterns.php = + \ '[^. \t]->\%(\h\w*\)\?\|\h\w*::\%(\h\w*\)\?' + let g:neocomplcache_omni_patterns.c = + \ '[^.[:digit:] *\t]\%(\.\|->\)\%(\h\w*\)\?' + let g:neocomplcache_omni_patterns.cpp = + \ '[^.[:digit:] *\t]\%(\.\|->\)\%(\h\w*\)\?\|\h\w*::\%(\h\w*\)\?' + + " For perlomni.vim setting. + " https://github.com/c9s/perlomni.vim + let g:neocomplcache_omni_patterns.perl = + \ '[^. \t]->\%(\h\w*\)\?\|\h\w*::\%(\h\w*\)\?' +< +============================================================================== +SOURCES *neocomplcache-sources* + +Neocomplcache reads automatically sources saved in an +autoload/neocomplcache/sources directory. + +buffer_complete.vim *buffer_complete* + This source collects keywords from buffer. + +member_complete.vim *member_complete* + This source collects use of member variables from buffer. + +tags_complete.vim *tags_complete* + This source analyzes a tag file from tagfiles() for completion. + When a huge tag file (above + |g:neocomplcache_tags_caching_limit_file_size|) is set, + neocomplcache does not make cache if you do not execute + |:NeoComplCacheCachingTags|command. Because tags_complete is + too slow if tags_complete read a big tags file. You should use + more convenient include completion now. + +syntax_complete.vim *syntax_complete* + This source analyzes a syntax file like + autoload/syntaxcomplete.vim offered by default, and to + add to candidate completion. The plugin can recognize + candidates a lot more than autoload/syntaxcomplete.vim. + +include_complete.vim *include_complete* + This source will add the file which an opening buffer + refers to to candidate. It is convenient, because you do + not need to prepare a tags file and a dictionary file. + But it is necessary for 'path' and 'include', + 'includeexpr' to be set adequately. + + Note: If you have vimproc installed, neocomplcache will cache + automatically. Otherwise it won't; please execute + |:NeoComplCacheCachingInclude| manually. + +vim_complete.vim *vim_complete* + This source analyzes context and start Omni completion of + Vim script. This plugin does not work other than editing + time of Vim script. I created it because neocomplcache + cannot call |i_CTRL-X_CTRL-V|. Local variable and a + script variable, a function and the analysis of the + command are implemented now. + +dictionary_complete.vim *dictionary_complete* + This source adds candidates from 'dictionary' or + |g:neocomplcache_dictionary_filetype_lists|. + +filename_complete.vim *filename_complete* + This source collects filename candidates. + +filename_include.vim *filename_include* + This source collects filename candidates. It is useful + when you input header file name. It recognizes include + pattern and include path like include_complete. + +omni_complete.vim *omni_complete* + This source calls 'omnifunc' automatically when cursor + text is matched with |g:neocomplcache_omni_patterns|. If + |g:neocomplcache_omni_function_list|is defined, + neocomplcache will give priority it. + Note: This source is not supported wildcard. + + +suffix of complete candidates in popup menu declaration. +(This will be good for user to know where candidate from and what it is.) + + filename_complete -> [F] {filename} + filename_include -> [FI] {filename} + dictionary_complete -> [D] {words} + member_complete -> [M] member + buffer_complete -> [B] {buffername} + syntax_complete -> [S] {syntax-keyword} + include_complete -> [I] + neosnippet -> [neosnip] + vim_complete -> [vim] type + omni_complete -> [O] + tags_complete -> [T] + other plugin sources -> [plugin-name-prefix] + other completefunc sources -> [plugin-name-prefix] + other ftplugin sources -> [plugin-name-prefix] + +------------------------------------------------------------------------------ +USER SOURCES *neocomplcache-user-sources* + +This section, introduce non default neocomplcache sources. + +neosnippet *neocomplcache-sources-neosnippet* + This source is for snippets completion. + Note: This source is not in default sources after + neocomplcache ver.7.0. + https://github.com/Shougo/neosnippet + +neco-ghc *neocomplcache-sources-neco-ghc* + https://github.com/ujihisa/neco-ghc + eagletmt originally implemented and now ujihisa is maintaining + this source. It completes a source file written in Haskell. + It requires ghc-mod . + +============================================================================== +FILTERS *neocomplcache-filters* + +To custom candidates, neocomplcache uses the filters. There are three kinds of +filters are available. "matcher" is to use filter candidates. "sorter" is to +use sort candidates. "converter" is to use candidates conversion. + +Note: "matcher" is not implemented. It will implemented in ver.8.1. + +Default sources are below. But you can create original filters(cf: +|neocomplcache-create-filter|) and set them by +|neocomplcache#custom_source()|. +> + call unite#custom_source('buffer_complete', 'converters', []) + + " Change default sorter. + call unite#custom_source('_', 'sorters', + \ ['sorter_length']) +< + *neocomplcache-filter-sorter_default* +Default sorters: ['sorter_rank']. + + *neocomplcache-filter-converter_default* +Default converters: ['converter_remove_next_keyword', + \ 'converter_delimiter', 'converter_case', 'converter_abbr']. + + *neocomplcache-filter-sorter_nothing* +sorter_nothing Nothing sorter. + + *neocomplcache-filter-sorter_rank* +sorter_rank Matched rank order sorter. The higher the matched word is + already selected or in current buffer + + *neocomplcache-filter-sorter_length* +sorter_length Candidates length order sorter. + + *neocomplcache-filter-converter_nothing* +converter_nothing + This converter is dummy. + + *neocomplcache-filter-converter_abbr* +converter_abbr + The converter which abbreviates a candidate's abbr. + + *neocomplcache-filter-converter_case* +converter_case + The converter which converts a candidate's word in text mode. + (cf: |g:neocomplcache_text_mode_filetypes|) + + *neocomplcache-filter-converter_delimiter* +converter_delimiter + The converter which abbreviates a candidate's delimiter. + (cf: |g:neocomplcache_delimiter_patterns|) + + *neocomplcache-filter-converter_remove_next_keyword* +converter_remove_next_keyword + The converter which removes matched next keyword part in a + candidate's word. + (cf: |g:neocomplcache_next_keyword_patterns|) + +============================================================================== +CREATE SOURCE *neocomplcache-create-source* + +In this clause, I comment on a method to make source of neocomplcache. The +ability of neocomplcache will spread by creating source by yourself. + +The files in autoload/neocomplcache/sources are automatically loaded and it +calls neocomplcache#sources#{source_name}#define() whose return value is the +source. Each return value can be a list so you can return an empty list to +avoid adding undesirable sources. To add your own sources dynamically, you +can use |neocomplcache#define_source()|. + +------------------------------------------------------------------------------ +SOURCE ATTRIBUTES *neocomplcache-source-attributes* + + *neocomplcache-source-attribute-name* +name String (Required) + The name of a source. It must consist of the + following characters: + - a-z + - 0-9 + - _ + - / + - - (Not head) + + *neocomplcache-source-attribute-kind* +kind String (Optional) + Source kind. + Following values are available. + "manual" : This source decides complete position + manually. + Note: "complfunc" or "ftplugin" are old + values. + "keyword" : This source decides complete position by + |g:neocomplcache_keyword_patterns|. + Note: "plugin" is old value. + + *neocomplcache-source-attribute-filetypes* +filetypes Dictionary (Optional) + Available filetype dictionary. + + For example: +> + let source = { + \ 'name' : 'test', + \ 'kind' : 'manual', + \ 'filetypes' : { 'vim' : 1, 'html' : 1 }, + \} +< + The source is available in vim and html filetypes. + + If you omit it, this source available in all + filetypes. + + + *neocomplcache-source-attribute-rank* +rank Number (Optional) + Source priority. + Note: You can set source priority by + |g:neocomplcache_source_rank|, but it is obsolete way. + + If you omit it, it is set below value. + If kind attribute is "keyword" : 5 + If filetype attribute is empty : 10 + Else : 100 + + *neocomplcache-source-attribute-min_pattern_length* +min_pattern_length + Number (Optional) + Required pattern length for completion. + + If you omit it, it is set below value. + If kind attribute is "keyword" : + |g:neocomplcache_auto_completion_start_length| + Else : 0 + + *neocomplcache-source-attribute-max_candidates* +max_candidates + Number (Optional) + The maximum number of candidates. + + This attribute is optional; if it is not given, + 0 is used as the default value. This means + maximum number is infinity. + + *neocomplcache-source-attribute-hooks* +hooks Dictionary (Optional) + You may put hook functions in this dictionary in which + the key is the position to hook and the value is the + reference to the function to be called. The following + hook functions are defined: + + *neocomplcache-source-attribute-hooks-on_init* + on_init + Called when initializing the source. + This function takes {context} as its parameters. + *neocomplcache-source-attribute-initialize* + Note initialize() attribute is obsolete interface for + initialization. + + *neocomplcache-source-attribute-hooks-on_final* + on_final + Called after executing |:NeoComplCacheDisable|. + This function takes {context} as its parameters. + *neocomplcache-source-attribute-finalize* + Note finalize() attribute is obsolete interface for + finalization. + + *neocomplcache-source-attribute-hooks-on_post_filter* + on_post_filter + Called after the filters to narrow down the + candidates. This is used to set attributes. This + filters is to avoid adversely affecting the + performance. + This function takes {context} as its parameters. + + *neocomplcache-source-attribute-get_complete_position* +get_complete_position Function (Optional) + This function takes {context} as its + parameter and returns complete position in current + line. + Here, {context} is the context information when the + source is called(|neocomplcache-notation-{context}|). + If you omit it, neocomplcache will use the position + using |g:neocomplcache_keyword_patterns|. + Note get_keyword_pos() is obsolete interface for + get complete position. + + *neocomplcache-source-attribute-gather_candidates* +gather_candidates Function (Required) + This function is called in gathering candidates. If + you enabled fuzzy completion by + |g:neocomplcache_enable_fuzzy_completion| , this + function is called whenever the input string is + changed. This function takes {context} as its + parameter and returns a list of {candidate}. + Here, {context} is the context information when the + source is called(|neocomplcache-notation-{context}|). + Note: get_complete_words() and get_keyword_list() are + obsolete interface for gather candidates. + Note: |neocomplcache-filters| feature is disabled for + compatibility in neocomplcache ver.8.0. You should use + new interface in neocomplcache ver.8.1. + +{context} *neocomplcache-notation-{context}* + A dictionary to give context information. + The followings are the primary information. + The global context information can be acquired + by |neocomplcache#get_context()|. + + input (String) + The input string of current line. + + complete_pos (Number) + The complete position of current source. + + complete_str (String) + The complete string of current source. + + source__{name} (Unknown) (Optional) + Additional source information. + Note: Recommend sources save + variables instead of s: variables. + +------------------------------------------------------------------------------ +CANDIDATE ATTRIBUTES *neocomplcache-candidate-attributes* + + *neocomplcache-candidate-attribute-name* +word String (Required) + The completion word of a candidate. It is used for + matching inputs. + + *neocomplcache-candidate-attribute-abbr* +abbr String (Optional) + The abbreviation of a candidate. It is displayed in + popup window. It is omitted by + |g:neocomplcache_max_keyword_width|. + + *neocomplcache-candidate-attribute-kind* +kind String (Optional) + The kind of a candidate. It is displayed in popup + window. + + *neocomplcache-candidate-attribute-menu* +menu String (Optional) + The menu information of a candidate. It is displayed + in popup window. + + *neocomplcache-candidate-attribute-info* +info String (Optional) + The preview information of a candidate. If + 'completeopt' contains "preview", it will be displayed + in |preview-window|. + + *neocomplcache-candidate-attribute-rank* +rank Number (Optional) + The completion priority. + + +CONTEXT *neocomplcache-context* + +============================================================================== +CREATE FILTER *neocomplcache-create-filter* + +The files in autoload/neocomplcache/filters are automatically loaded and it +calls neocomplcache#filters#{filter_name}#define() whose return value is the +filter. Each return value can be a list so you can return an empty list to +avoid adding undesirable filters. To add your own filters dynamically, you +can use |neocomplcache#define_filter()|. + +------------------------------------------------------------------------------ +FILTER ATTRIBUTES *neocomplcache-filter-attributes* + + + *neocomplcache-filter-attribute-name* +name String (Required) + The filter name. + + *neocomplcache-filter-attribute-filter* +filter Function (Required) + The filter function. This function takes {context} as + its parameter and returns a list of {candidate}. + The specification of the parameters and the returned + value is same as + |neocomplcache-source-attribute-gather_candidates|. + + *neocomplcache-filter-attribute-description* +description String (Optional) + The filter description string. + +============================================================================== +UNITE SOURCES *neocomplcache-unite-sources* + + *neocomplcache-unite-source-neocomplcache* +neocomplcache + Nominates neocomplcache completion candidates. The kind is + "completion". This source is used in + |(neocomplcache_start_unite_complete)|. +> + imap (neocomplcache_start_unite_complete) + imap (neocomplcache_start_unite_quick_match) +< +============================================================================== +FAQ *neocomplcache-faq* + +Q: My customization for neocomplcache is invalid. Why? + +A: User customization for neocomplcache must be set before initialization of +neocomplcache. For example: |neocomplcache#custom_source()| + +Q: Is there a way to control the colors used for popup menu using highlight +groups?: + +A: Like this: +> + highlight Pmenu ctermbg=8 guibg=#606060 + highlight PmenuSel ctermbg=1 guifg=#dddd00 guibg=#1f82cd + highlight PmenuSbar ctermbg=0 guibg=#d6d6d6 +< + +Q: Python (or Ruby) interface crashes Vim when I use neocomplcache or not +responding when input ".": + +A: This is not neocomplcache's issue. Please report to the maintainers of the +omnicomplete (rubycomplete or pythoncomplete) and its Vim interface. You +should disable omni_complete in python or ruby. +> + if !exists('g:neocomplcache_omni_patterns') + let g:neocomplcache_omni_patterns = {} + endif + let g:neocomplcache_omni_patterns.python = '' + let g:neocomplcache_omni_patterns.ruby = '' +< + +Q: I like moving cursor by cursor-keys. But neocomplcache popups menus... + +A: Please set this in your .vimrc. Note that this feature requires Vim 7.3.418 +or later. +> + let g:neocomplcache_enable_insert_char_pre = 1 +< + +Q: Where is snippets set for neocomplcache? + +A: https://github.com/Shougo/neosnippet + + +Q: How I can disable python omni complete of neocomplcache?: + +A: +> + if !exists('g:neocomplcache_omni_patterns') + let g:neocomplcache_omni_patterns = {} + endif + let g:neocomplcache_omni_patterns.python = '' +< + +Q: Can I enable quick match? : + +A: Quick match feature had been removed in latest neocomplcache +because quick match turned into hard to implement. +But you can use |unite.vim| instead to use quick match. +> + imap - pumvisible() ? + \ "\(neocomplcache_start_unite_quick_match)" : '-' +< + +Q: How can I change the order of candidates? : + +A: Todo. + +Q: An input problem occurred in using uim-skk or other IMEs: + +A: It may be fixed with setting |g:neocomplcache_enable_prefetch| as 1. + + +Q: include_complete does not work. + +A: include_complete depends on |vimproc|. I recommend you to install it. Also +you can check 'path' option or change |g:neocomplcache_include_paths|. + +http://github.com/Shougo/vimproc + + +Q: An error occurred in "sudo vim": + +A: neocomplcache does not support "sudo vim". Because neocomplcache (and other +plugins) creates temporary files in super user permission by sudo command. You +must use sudo.vim or set "Defaults always_set_home" in "/etc/sudoers", or must +use "sudoedit" command. + +Ubuntu has a command "sudoedit" which can work well with neocomplcache. +I'm not sure if other distros has this command... + +http://www.vim.org/scripts/script.php?script_id=729 + + +Q: Error occurred in ruby omni complete using |g:neocomplcache_omni_patterns|. +https://github.com/vim-ruby/vim-ruby/issues/95 + +A: Please set |g:neocomplcache_force_omni_patterns| instead of +|g:neocomplcache_omni_patterns|. + +Q: Does not work with clang_complete. + +A: Please try below settings. +> + if !exists('g:neocomplcache_force_omni_patterns') + let g:neocomplcache_force_omni_patterns = {} + endif + let g:neocomplcache_force_overwrite_completefunc = 1 + let g:neocomplcache_force_omni_patterns.c = + \ '[^.[:digit:] *\t]\%(\.\|->\)' + let g:neocomplcache_force_omni_patterns.cpp = + \ '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::' + let g:neocomplcache_force_omni_patterns.objc = + \ '[^.[:digit:] *\t]\%(\.\|->\)' + let g:neocomplcache_force_omni_patterns.objcpp = + \ '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::' + let g:clang_complete_auto = 0 + let g:clang_auto_select = 0 + "let g:clang_use_library = 1 +< + +Q: I want to support omni patterns for external plugins. + +A: You can add find some already found omni patterns and functions at here. + +Note: Some patterns are omitted here, (someone should check out those plugin's +source code's complete function, and find out the omni pattern). +> + " JavaScript (plugin: jscomplete-vim) + let g:neocomplcache_omni_functions.javascript = 'jscomplete#CompleteJS' + " Go (plugin: gocode) + let g:neocomplcache_omni_functions.go = 'gocomplete#Complete' + " Clojure (plugin: vim-clojure) + let g:neocomplcache_omni_functions.clojure = 'vimclojure#OmniCompletion' + " SQL + let g:neocomplcache_omni_functions.sql = 'sqlcomplete#Complete' + " R (plugin: vim-R-plugin) + let g:neocomplcache_omni_patterns.r = '[[:alnum:].\\]\+' + let g:neocomplcache_omni_functions.r = 'rcomplete#CompleteR' + " XQuery (plugin: XQuery-indentomnicomplete) + let g:neocomplcache_omni_patterns.xquery = '\k\|:\|\-\|&' + let g:neocomplcache_omni_functions.xquery = 'xquerycomplete#CompleteXQuery' +< + +Q: Does not indent when I input "else" in ruby filetype. + +A: + +You must install "vim-ruby" from github to indent in neocomplcache first. +https://github.com/vim-ruby/vim-ruby + +Neocomplcache pops up a completion window automatically, but if the popup +window is already visible, Vim cannot indent text. So you must choose "close +popup window manually by or mappings" or "close popup window by + user mappings". + +Q: mapping conflicts with |SuperTab| or |endwise| plugins. + +A: Please try below settings. +> + " : close popup and save indent. + inoremap =my_cr_function() + function! s:my_cr_function() + return neocomplcache#smart_close_popup() . "\" + " For no inserting key. + "return pumvisible() ? neocomplcache#close_popup() : "\" + endfunction +> +Q: No completion offered from "vim" buffers in "non-vim" buffers. + +A: It is feature. neocomplcache completes from same filetype buffers in +default. But you can completes from other filetype buffers using +|g:neocomplcache_same_filetype_lists|. + +Q: I want to complete from all buffers. + +A: |g:neocomplcache_same_filetype_lists| +> + let g:neocomplcache_same_filetype_lists = {} + let g:neocomplcache_same_filetype_lists._ = '_' +< + +Q: Suggestions are case insensitive in "gitcommit" buffers, but not +"javascript". + +A: This is g:neocomplcache_text_mode_filetypes feature. +You can disable it by following code. +> + if !exists('g:neocomplcache_text_mode_filetypes') + let g:neocomplcache_tags_filter_patterns = {} + endif + let g:neocomplcache_text_mode_filetypes.gitcommit = 0 +< +Q: Conflicts completefunc with other plugins in neocomplcache. + +A: You can disable the error by |g:neocomplcache_force_overwrite_completefunc| +variable to 1. + +Q: I want to use Ruby omni_complete. + +A: Please set |g:neocomplcache_force_omni_patterns|. But this completion is +heavy, so disabled by default. +Note: But you should use |neocomplcache-rsense| instead of rubycomplete. +https://github.com/Shougo/neocomplcache-rsense +> + autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete + if !exists('g:neocomplcache_force_omni_patterns') + let g:neocomplcache_force_omni_patterns = {} + endif + let g:neocomplcache_force_omni_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::' +< +Q: I want to use jedi omni_complete. +https://github.com/davidhalter/jedi-vim + +A: Please set |g:neocomplcache_force_omni_patterns| as below. +> + autocmd FileType python setlocal omnifunc=jedi#complete + let g:jedi#auto_vim_configuration = 0 + let g:neocomplcache_force_omni_patterns.python = '[^. \t]\.\w*' +< +Q: Candidates are not found in heavy completion(neco-look, etc). + +A: It may be caused by skip completion. + + +Q: I want to disable skip completion. + +A: +> + let g:neocomplcache_skip_auto_completion_time = '' +< +Q: I want to initialize neocomplcache in .vimrc. + +A: Please call neocomplcache#initialize() in .vimrc. But this function slows +your Vim initialization. +> + call neocomplcache#initialize() +< +Q: neocomplcache conflicts when multibyte input in GVim. + +A: Because Vim multibyte IME integration is incomplete. +If you set |g:neocomplcache_lock_iminsert| is non-zero, it may be fixed. + +Q: Freeze for a while and close opened folding when I begin to insert. +https://github.com/Shougo/neocomplcache/issues/368 + +A: I think you use 'foldmethod' is "expr" or "syntax". It is too heavy to use +neocomplcache(or other auto completion). You should change 'foldmethod' +option. +Note: In current version, neocomplcache does not restore 'foldmethod'. Because +it is too heavy. + +Q: I want to use Pydiction with neocomplcache. + +A: You should set |g:neocomplcache_dictionary_filetype_lists|. +neocomplcache can load Pydiction dictionary file. + +Q: Why does neocomplcache use if_lua besides if_python? Many people may not be +able to use it because they do not have the root privilege to recompile vim. + +A: +Because of the following reasons. + 1. Python interface is not available on every Vim environment. For example, + Android, iOS, non configured Vim, or etc. + 2. Incompatibility between Python2 and Python3. I must rewrite for it. + 3. Loading Python interface is slow (10~20ms), but loading Lua interface is + absolutely fast (270ns). + 4. Python2 and Python3 are not loaded at the same time on Unix environment. + 5. Python itself is too large. + 6. Python interface is slower than Lua interface (almost twice.) + 7. Lua interface is stable (no crashes on latest Vim.) + 8. Using C module (like vimproc, YouCompleteMe) is hard to compile on Windows + environment. + 9. Using both Python and C, like YouCompleteMe, is too unstable. Your Vim may + crashes or causes mysterious errors. + 10. To build if_lua is easy. + 11. I think if_lua is the second level language in Vim (The first is Vim + script.) + +Q: I want to disable preview window. + +A: +> + set completeopt-=preview +< + +Q: I want to use "vim-lua-ftplugin". +https://github.com/xolox/vim-lua-ftplugin + +A: Please set |g:neocomplcache_omni_patterns| as below. +Note: You can not use "vim-lua-ftplugin" on 7.3.885 or below, +because if_lua has double-free problem. +> + let g:lua_check_syntax = 0 + let g:lua_complete_omni = 1 + let g:lua_complete_dynamic = 0 + + let g:neocomplcache_omni_functions.lua = + \ 'xolox#lua#omnifunc' + let g:neocomplcache_omni_patterns.lua = + \ '\w\+[.:]\|require\s*(\?["'']\w*' + " let g:neocomplcache_force_omni_patterns.lua = + " \ '\w\+[.:]\|require\s*(\?["'']\w*' +< + +Q: I want to use vim-nodejs-complete in neocomplcache. +A: +Note: This settings works but may heavy. +> + let g:neocomplcache_omni_functions.javascript = 'nodejscomplete#CompleteJS' + " Use jscomplete.vim + let g:nodejs_complete_config = { + \ 'js_compl_fn': 'jscomplete#CompleteJS', + \ 'max_node_compl_len': 15 + \} + let g:neocomplcache_omni_patterns.javascript = '\h\w*\|[^. \t]\.\w*' +< + +Q: neocomplcache closes DiffGitCached window from vim-fugitive +https://github.com/Shougo/neocomplcache.vim/issues/424 +A: +> + let g:neocomplcache_enable_auto_close_preview = 0 +< + +============================================================================== +TODO *neocomplcache-todo* + +============================================================================== +vim:tw=78:ts=8:ft=help:norl:noet:fen:noet: diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache.vim new file mode 100644 index 0000000..6181e84 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache.vim @@ -0,0 +1,204 @@ +"============================================================================= +" FILE: neocomplcache.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 11 Jul 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +" GetLatestVimScripts: 2620 1 :AutoInstall: neocomplcache +"============================================================================= + +if exists('g:loaded_neocomplcache') + finish +endif +let g:loaded_neocomplcache = 1 + +let s:save_cpo = &cpo +set cpo&vim + +if v:version < 702 + echohl Error + echomsg 'neocomplcache does not work this version of Vim (' . v:version . ').' + echohl None + finish +elseif $SUDO_USER != '' && $USER !=# $SUDO_USER + \ && $HOME !=# expand('~'.$USER) + \ && $HOME ==# expand('~'.$SUDO_USER) + echohl Error + echomsg 'neocomplcache disabled: "sudo vim" is detected and $HOME is set to ' + \.'your user''s home. ' + \.'You may want to use the sudo.vim plugin, the "-H" option ' + \.'with "sudo" or set always_set_home in /etc/sudoers instead.' + echohl None + finish +endif + +command! -nargs=0 -bar NeoComplCacheEnable + \ call neocomplcache#init#enable() +command! -nargs=0 -bar NeoComplCacheDisable + \ call neocomplcache#init#disable() +command! -nargs=0 -bar NeoComplCacheLock + \ call neocomplcache#commands#_lock() +command! -nargs=0 -bar NeoComplCacheUnlock + \ call neocomplcache#commands#_unlock() +command! -nargs=0 -bar NeoComplCacheToggle + \ call neocomplcache#commands#_toggle_lock() +command! -nargs=1 -bar NeoComplCacheLockSource + \ call neocomplcache#commands#_lock_source() +command! -nargs=1 -bar NeoComplCacheUnlockSource + \ call neocomplcache#commands#_unlock_source() +if v:version >= 703 + command! -nargs=1 -bar -complete=filetype NeoComplCacheSetFileType + \ call neocomplcache#commands#_set_file_type() +else + command! -nargs=1 -bar NeoComplCacheSetFileType + \ call neocomplcache#commands#_set_file_type() +endif +command! -nargs=0 -bar NeoComplCacheClean + \ call neocomplcache#commands#_clean() + +" Warning if using obsolute mappings. "{{{ +silent! inoremap (neocomplcache_snippets_expand) + \ :echoerr print_snippets_complete_error() +silent! snoremap (neocomplcache_snippets_expand) + \ ::echoerr print_snippets_complete_error() +silent! inoremap (neocomplcache_snippets_jump) + \ :echoerr print_snippets_complete_error() +silent! snoremap (neocomplcache_snippets_jump) + \ ::echoerr print_snippets_complete_error() +silent! inoremap (neocomplcache_snippets_force_expand) + \ :echoerr print_snippets_complete_error() +silent! snoremap (neocomplcache_snippets_force_expand) + \ ::echoerr print_snippets_complete_error() +silent! inoremap (neocomplcache_snippets_force_jump) + \ :echoerr print_snippets_complete_error() +silent! snoremap (neocomplcache_snippets_force_jump) + \ ::echoerr print_snippets_complete_error() +function! s:print_snippets_complete_error() + return 'Warning: neocomplcache snippets source was splitted!' + \ .' You should install neosnippet from' + \ .' "https://github.com/Shougo/neosnippet.vim"' +endfunction"}}} + +" Global options definition. "{{{ +let g:neocomplcache_max_list = + \ get(g:, 'neocomplcache_max_list', 100) +let g:neocomplcache_max_keyword_width = + \ get(g:, 'neocomplcache_max_keyword_width', 80) +let g:neocomplcache_max_menu_width = + \ get(g:, 'neocomplcache_max_menu_width', 15) +let g:neocomplcache_auto_completion_start_length = + \ get(g:, 'neocomplcache_auto_completion_start_length', 2) +let g:neocomplcache_manual_completion_start_length = + \ get(g:, 'neocomplcache_manual_completion_start_length', 0) +let g:neocomplcache_min_keyword_length = + \ get(g:, 'neocomplcache_min_keyword_length', 4) +let g:neocomplcache_enable_ignore_case = + \ get(g:, 'neocomplcache_enable_ignore_case', &ignorecase) +let g:neocomplcache_enable_smart_case = + \ get(g:, 'neocomplcache_enable_smart_case', &infercase) +let g:neocomplcache_disable_auto_complete = + \ get(g:, 'neocomplcache_disable_auto_complete', 0) +let g:neocomplcache_enable_wildcard = + \ get(g:, 'neocomplcache_enable_wildcard', 1) +let g:neocomplcache_enable_camel_case_completion = + \ get(g:, 'neocomplcache_enable_camel_case_completion', 0) +let g:neocomplcache_enable_underbar_completion = + \ get(g:, 'neocomplcache_enable_underbar_completion', 0) +let g:neocomplcache_enable_fuzzy_completion = + \ get(g:, 'neocomplcache_enable_fuzzy_completion', 0) +let g:neocomplcache_fuzzy_completion_start_length = + \ get(g:, 'neocomplcache_fuzzy_completion_start_length', 3) +let g:neocomplcache_enable_caching_message = + \ get(g:, 'neocomplcache_enable_caching_message', 1) +let g:neocomplcache_enable_insert_char_pre = + \ get(g:, 'neocomplcache_enable_insert_char_pre', 0) +let g:neocomplcache_enable_cursor_hold_i = + \ get(g:, 'neocomplcache_enable_cursor_hold_i', 0) +let g:neocomplcache_cursor_hold_i_time = + \ get(g:, 'neocomplcache_cursor_hold_i_time', 300) +let g:neocomplcache_enable_auto_select = + \ get(g:, 'neocomplcache_enable_auto_select', 0) +let g:neocomplcache_enable_auto_delimiter = + \ get(g:, 'neocomplcache_enable_auto_delimiter', 0) +let g:neocomplcache_caching_limit_file_size = + \ get(g:, 'neocomplcache_caching_limit_file_size', 500000) +let g:neocomplcache_disable_caching_file_path_pattern = + \ get(g:, 'neocomplcache_disable_caching_file_path_pattern', '') +let g:neocomplcache_lock_buffer_name_pattern = + \ get(g:, 'neocomplcache_lock_buffer_name_pattern', '') +let g:neocomplcache_ctags_program = + \ get(g:, 'neocomplcache_ctags_program', 'ctags') +let g:neocomplcache_force_overwrite_completefunc = + \ get(g:, 'neocomplcache_force_overwrite_completefunc', 0) +let g:neocomplcache_enable_prefetch = + \ get(g:, 'neocomplcache_enable_prefetch', + \ !(v:version > 703 || v:version == 703 && has('patch519')) + \ || (has('gui_running') && has('xim')) + \ ) +let g:neocomplcache_lock_iminsert = + \ get(g:, 'neocomplcache_lock_iminsert', 0) +let g:neocomplcache_release_cache_time = + \ get(g:, 'neocomplcache_release_cache_time', 900) +let g:neocomplcache_wildcard_characters = + \ get(g:, 'neocomplcache_wildcard_characters', { + \ '_' : '*' }) +let g:neocomplcache_skip_auto_completion_time = + \ get(g:, 'neocomplcache_skip_auto_completion_time', '0.3') +let g:neocomplcache_enable_auto_close_preview = + \ get(g:, 'neocomplcache_enable_auto_close_preview', 1) + +let g:neocomplcache_sources_list = + \ get(g:, 'neocomplcache_sources_list', {}) +let g:neocomplcache_disabled_sources_list = + \ get(g:, 'neocomplcache_disabled_sources_list', {}) +if exists('g:neocomplcache_source_disable') + let g:neocomplcache_disabled_sources_list._ = + \ keys(filter(copy(g:neocomplcache_source_disable), 'v:val')) +endif + +if exists('g:neocomplcache_plugin_completion_length') + let g:neocomplcache_source_completion_length = + \ g:neocomplcache_plugin_completion_length +endif +let g:neocomplcache_source_completion_length = + \ get(g:, 'neocomplcache_source_completion_length', {}) +if exists('g:neocomplcache_plugin_rank') + let g:neocomplcache_source_rank = g:neocomplcache_plugin_rank +endif +let g:neocomplcache_source_rank = + \ get(g:, 'neocomplcache_source_rank', {}) + +let g:neocomplcache_temporary_dir = + \ get(g:, 'neocomplcache_temporary_dir', expand('~/.neocomplcache')) +let g:neocomplcache_enable_debug = + \ get(g:, 'neocomplcache_enable_debug', 0) +if get(g:, 'neocomplcache_enable_at_startup', 0) + augroup neocomplcache + " Enable startup. + autocmd CursorHold,CursorMovedI + \ * call neocomplcache#init#lazy() + augroup END +endif"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/buffer_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/buffer_complete.vim new file mode 100644 index 0000000..e6df1aa --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/buffer_complete.vim @@ -0,0 +1,37 @@ +"============================================================================= +" FILE: buffer_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 05 Oct 2012. +"============================================================================= + +if exists('g:loaded_neocomplcache_buffer_complete') + finish +endif + +let s:save_cpo = &cpo +set cpo&vim + +" Add commands. "{{{ +command! -nargs=? -complete=file -bar + \ NeoComplCacheCachingBuffer + \ call neocomplcache#sources#buffer_complete#caching_buffer() +command! -nargs=? -complete=buffer -bar + \ NeoComplCachePrintSource + \ call neocomplcache#sources#buffer_complete#print_source() +command! -nargs=? -complete=buffer -bar + \ NeoComplCacheOutputKeyword + \ call neocomplcache#sources#buffer_complete#output_keyword() +command! -nargs=? -complete=buffer -bar + \ NeoComplCacheDisableCaching + \ call neocomplcache#sources#buffer_complete#disable_caching() +command! -nargs=? -complete=buffer -bar + \ NeoComplCacheEnableCaching + \ call neocomplcache#sources#buffer_complete#enable_caching() +"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +let g:loaded_neocomplcache_buffer_complete = 1 + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/dictionary_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/dictionary_complete.vim new file mode 100644 index 0000000..6de4b28 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/dictionary_complete.vim @@ -0,0 +1,25 @@ +"============================================================================= +" FILE: dictionary_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 05 Oct 2012. +"============================================================================= + +if exists('g:loaded_neocomplcache_dictionary_complete') + finish +endif + +let s:save_cpo = &cpo +set cpo&vim + +" Add commands. "{{{ +command! -nargs=? -complete=customlist,neocomplcache#filetype_complete + \ NeoComplCacheCachingDictionary + \ call neocomplcache#sources#dictionary_complete#recaching() +"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +let g:loaded_neocomplcache_dictionary_complete = 1 + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/include_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/include_complete.vim new file mode 100644 index 0000000..6c66818 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/include_complete.vim @@ -0,0 +1,24 @@ +"============================================================================= +" FILE: include_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 05 Oct 2012. +"============================================================================= + +if exists('g:loaded_neocomplcache_include_complete') + finish +endif + +let s:save_cpo = &cpo +set cpo&vim + +" Add commands. "{{{ +command! -nargs=? -complete=buffer NeoComplCacheCachingInclude + \ call neocomplcache#sources#include_complete#caching_include() +"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +let g:loaded_neocomplcache_include_complete = 1 + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/syntax_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/syntax_complete.vim new file mode 100644 index 0000000..d4e64a9 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/syntax_complete.vim @@ -0,0 +1,25 @@ +"============================================================================= +" FILE: syntax_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 05 Oct 2012. +"============================================================================= + +if exists('g:loaded_neocomplcache_syntax_complete') + finish +endif + +let s:save_cpo = &cpo +set cpo&vim + +" Add commands. "{{{ +command! -nargs=? -complete=customlist,neocomplcache#filetype_complete + \ NeoComplCacheCachingSyntax + \ call neocomplcache#sources#syntax_complete#recaching() +"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +let g:loaded_neocomplcache_syntax_complete = 1 + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/tags_complete.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/tags_complete.vim new file mode 100644 index 0000000..e4946d8 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/plugin/neocomplcache/tags_complete.vim @@ -0,0 +1,25 @@ +"============================================================================= +" FILE: tags_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 05 Oct 2012. +"============================================================================= + +if exists('g:loaded_neocomplcache_tags_complete') + finish +endif + +let s:save_cpo = &cpo +set cpo&vim + +" Add commands. "{{{ +command! -nargs=0 -bar + \ NeoComplCacheCachingTags + \ call neocomplcache#sources#tags_complete#caching_tags(1) +"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +let g:loaded_neocomplcache_tags_complete = 1 + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/vest/test-neocomplcache.vim b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/vest/test-neocomplcache.vim new file mode 100644 index 0000000..701555c --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neocomplcache.vim/vest/test-neocomplcache.vim @@ -0,0 +1,24 @@ +scriptencoding utf-8 + +" Saving 'cpoptions' {{{ +let s:save_cpo = &cpo +set cpo&vim +" }}} + +Context types + It tests compare functions. + ShouldEqual sort([{ 'word' : 'z0' }, { 'word' : 'z10' }, + \ { 'word' : 'z2'}, { 'word' : 'z3'} ], + \ 'neocomplcache#compare_human'), + \ [{ 'word' : 'z0' }, { 'word' : 'z2' }, + \ { 'word' : 'z3' }, { 'word' : 'z10' }] + End +End + +Fin + +" Restore 'cpoptions' {{{ +let &cpo = s:save_cpo +" }}} + +" vim:foldmethod=marker:fen: diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/README.md b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/README.md new file mode 100644 index 0000000..820f0b0 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/README.md @@ -0,0 +1,124 @@ +Neosnippet +========== + +The Neosnippet plug-In adds snippet support to Vim. Snippets are +small templates for commonly used code that you can fill in on the +fly. To use snippets can increase your productivity in Vim a lot. +The functionality of this plug-in is quite similar to plug-ins like +snipMate.vim or snippetsEmu.vim. But since you can choose snippets with the +[neocomplcache](https://github.com/Shougo/neocomplcache.vim) / +[neocomplete](https://github.com/Shougo/neocomplete.vim) interface, you might +have less trouble using them, because you do not have to remember each snippet +name. + +Note: neocomplcache/neocomplete is NOT required! But recommended. + +Extra snippets files are available in: +[vim-snippets](https://github.com/honza/vim-snippets) + +Installation +------------ + +To install neosnippet and other Vim plug-ins it is recommended to use one of the +popular package managers for Vim, rather than installing by drag and drop all +required files into your `.vim` folder. + +### Manual (not recommended) + +1. Install the + [neocomplcache](https://github.com/Shougo/neocomplcache.vim)/ + [neocomplete](https://github.com/Shougo/neocomplete.vim) plugin first. +2. Put files in your Vim directory (usually `~/.vim/` or + `%PROGRAMFILES%/Vim/vimfiles` on Windows). + +### Vundle + +1. Setup the [vundle](https://github.com/gmarik/vundle) package manager +2. Set the bundles for [Neocomplcache](https://github.com/Shougo/neocomplcache) + or [neocomplete](https://github.com/Shougo/neocomplete.vim) + And [Neosnippet](https://github.com/Shougo/neosnippet) + + ```vim + Bundle 'Shougo/neocomplcache' + or + Bundle 'Shougo/neocomplete' + + Bundle 'Shougo/neosnippet' + ``` + +3. Open up Vim and start installation with `:BundleInstall` + +### Neobundle + +1. Setup the [neobundle](https://github.com/Shougo/neobundle.vim) package manager +2. Set the bundles for [Neocomplcache](https://github.com/Shougo/neocomplcache) + or [neocomplete](https://github.com/Shougo/neocomplete.vim) + And [Neosnippet](https://github.com/Shougo/neosnippet) + + ```vim + NeoBundle 'Shougo/neocomplcache' + or + NeoBundle 'Shougo/neocomplete' + + NeoBundle 'Shougo/neosnippet' + ``` + +3. Open up Vim and start installation with `:NeoBundleInstall` + +### VAM (vim-addon-manager) + +1. Setup the [vim-addon-manager](https://github.com/MarcWeber/vim-addon-manager) + package manager. +2. Add `neosnippet` to the list of addons in your vimrc: + + ```vim + call vam#ActivateAddons(['neosnippet']) + ``` + + . Installation will start automatically when you open vim next time. + +Configuration +------------- + +This is an example `~/.vimrc` configuration for Neosnippet. It is assumes you +already have Neocomplcache configured. With the settings of the example, you +can use the following keys: + +* `C-k` to select-and-expand a snippet from the Neocomplcache popup (Use `C-n` + and `C-p` to select it). `C-k` can also be used to jump to the next field in + the snippet. +* `Tab` to select the next field to fill in the snippet. + +```vim +" Plugin key-mappings. +imap (neosnippet_expand_or_jump) +smap (neosnippet_expand_or_jump) +xmap (neosnippet_expand_target) + +" SuperTab like snippets behavior. +imap neosnippet#expandable_or_jumpable() ? +\ "\(neosnippet_expand_or_jump)" +\: pumvisible() ? "\" : "\" +smap neosnippet#expandable_or_jumpable() ? +\ "\(neosnippet_expand_or_jump)" +\: "\" + +" For snippet_complete marker. +if has('conceal') + set conceallevel=2 concealcursor=i +endif +``` + +If you want to use a different collection of snippets than the +built-in ones, then you can set a path to the snippets with +the `g:neosnippet#snippets_directory` variable (e.g [Honza's +Snippets](https://github.com/honza/vim-snippets)) + +```vim +" Enable snipMate compatibility feature. +let g:neosnippet#enable_snipmate_compatibility = 1 + +" Tell Neosnippet about the other snippets +let g:neosnippet#snippets_directory='~/.vim/bundle/vim-snippets/snippets' +``` + diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neocomplcache/sources/snippets_complete.vim b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neocomplcache/sources/snippets_complete.vim new file mode 100644 index 0000000..f19f5cf --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neocomplcache/sources/snippets_complete.vim @@ -0,0 +1,105 @@ +"============================================================================= +" FILE: snippets_complete.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 04 Jun 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +let s:source = { + \ 'name' : 'snippets_complete', + \ 'kind' : 'complfunc', + \ 'min_pattern_length' : + \ g:neocomplcache_auto_completion_start_length, + \} + +function! s:source.initialize() "{{{ + " Initialize. + call neocomplcache#set_dictionary_helper( + \ g:neocomplcache_source_rank, 'snippets_complete', 8) + call neocomplcache#set_completion_length('snippets_complete', + \ g:neocomplcache_auto_completion_start_length) + call neosnippet#util#set_default( + \ 'g:neosnippet#enable_preview', 0) +endfunction"}}} + +function! s:source.get_keyword_pos(cur_text) "{{{ + let cur_word = matchstr(a:cur_text, '\w\+$') + let word_candidates = neocomplcache#keyword_filter( + \ filter(values(neosnippet#get_snippets()), + \ 'v:val.options.word'), cur_word) + if !empty(word_candidates) + return match(a:cur_text, '\w\+$') + endif + + return match(a:cur_text, '\S\+$') +endfunction"}}} + +function! s:source.get_complete_words(cur_keyword_pos, cur_keyword_str) "{{{ + let list = s:keyword_filter(neosnippet#get_snippets(), a:cur_keyword_str) + + for snippet in list + let snippet.dup = 1 + + let snippet.menu = neosnippet#util#strwidthpart( + \ snippet.menu_template, winwidth(0)/3) + if g:neosnippet#enable_preview + let snippet.info = snippet.snip + endif + endfor + + return list +endfunction"}}} + +function! s:keyword_filter(snippets, cur_keyword_str) "{{{ + " Uniq by real_name. + let dict = {} + + " Use default filter. + let list = neocomplcache#keyword_filter( + \ values(a:snippets), a:cur_keyword_str) + + " Add cur_keyword_str snippet. + if has_key(a:snippets, a:cur_keyword_str) + call add(list, a:snippets[a:cur_keyword_str]) + endif + + for snippet in neocomplcache#dup_filter(list) + if !has_key(dict, snippet.real_name) || + \ len(dict[snippet.real_name].word) > len(snippet.word) + let dict[snippet.real_name] = snippet + endif + endfor + + return values(dict) +endfunction"}}} + +function! neocomplcache#sources#snippets_complete#define() "{{{ + return s:source +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neocomplete/sources/neosnippet.vim b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neocomplete/sources/neosnippet.vim new file mode 100644 index 0000000..bd302cb --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neocomplete/sources/neosnippet.vim @@ -0,0 +1,67 @@ +"============================================================================= +" FILE: neosnippet.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 05 Jun 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +let s:source = { + \ 'name' : 'neosnippet', + \ 'kind' : 'keyword', + \ 'rank' : 8, + \ 'hooks' : {}, + \} + +function! s:source.hooks.on_init(context) "{{{ + " Initialize. + call neosnippet#util#set_default( + \ 'g:neosnippet#enable_preview', 0) +endfunction"}}} + +function! s:source.gather_candidates(context) "{{{ + return values(neosnippet#get_snippets()) +endfunction"}}} + +function! s:source.hooks.on_post_filter(context) "{{{ + for snippet in a:context.candidates + let snippet.dup = 1 + let snippet.menu = neosnippet#util#strwidthpart( + \ snippet.menu_template, winwidth(0)/3) + if g:neosnippet#enable_preview + let snippet.info = snippet.snip + endif + endfor + + return a:context.candidates +endfunction"}}} + +function! neocomplete#sources#neosnippet#define() "{{{ + return s:source +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet.vim b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet.vim new file mode 100644 index 0000000..81219c1 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet.vim @@ -0,0 +1,1412 @@ +"============================================================================= +" FILE: neosnippet.vim +" AUTHOR: Shougo Matsushita +" Last Modified: 12 Jul 2013. +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +" Global options definition. "{{{ +call neosnippet#util#set_default( + \ 'g:neosnippet#disable_runtime_snippets', {}) +call neosnippet#util#set_default( + \ 'g:neosnippet#snippets_directory', '') +call neosnippet#util#set_default( + \ 'g:neosnippet#disable_select_mode_mappings', 1) +call neosnippet#util#set_default( + \ 'g:neosnippet#enable_snipmate_compatibility', 0) +"}}} + +" Variables "{{{ +let s:neosnippet_options = [ + \ '-runtime', + \ '-vertical', '-horizontal', '-direction=', '-split', + \] +"}}} + +function! neosnippet#initialize() "{{{ + call s:initialize_script_variables() + call s:initialize_others() + call s:initialize_cache() +endfunction"}}} + +function! s:check_initialize() "{{{ + if !exists('s:is_initialized') + let s:is_initialized = 1 + + call neosnippet#initialize() + endif +endfunction"}}} + +" For echodoc. "{{{ +let s:doc_dict = { + \ 'name' : 'neosnippet', + \ 'rank' : 100, + \ 'filetypes' : {}, + \ } +function! s:doc_dict.search(cur_text) "{{{ + if mode() !=# 'i' + return [] + endif + + let snippets = neosnippet#get_snippets() + + let cur_word = s:get_cursor_snippet(snippets, a:cur_text) + if cur_word == '' + return [] + endif + + let snip = snippets[cur_word] + let ret = [] + call add(ret, { 'text' : snip.word, 'highlight' : 'String' }) + call add(ret, { 'text' : ' ' }) + call add(ret, { 'text' : snip.menu_abbr, 'highlight' : 'Special' }) + + return ret +endfunction"}}} +"}}} + +function! neosnippet#expandable_or_jumpable() "{{{ + return neosnippet#expandable() || neosnippet#jumpable() +endfunction"}}} +function! neosnippet#expandable() "{{{ + " Check snippet trigger. + return s:get_cursor_snippet( + \ neosnippet#get_snippets(), neosnippet#util#get_cur_text()) != '' +endfunction"}}} +function! neosnippet#jumpable() "{{{ + " Found snippet placeholder. + return search(s:get_placeholder_marker_pattern(). '\|' + \ .s:get_sync_placeholder_marker_pattern(), 'nw') > 0 +endfunction"}}} + +function! neosnippet#caching() "{{{ + call neosnippet#make_cache(&filetype) +endfunction"}}} + +function! neosnippet#recaching() "{{{ + let s:snippets = {} +endfunction"}}} + +function! s:set_snippet_dict(snippet_dict, snippets, dup_check, snippets_file) "{{{ + if empty(a:snippet_dict) + return + endif + + let action_pattern = '^snippet\s\+' . a:snippet_dict.name . '$' + let snippet = s:initialize_snippet( + \ a:snippet_dict, a:snippets_file, + \ a:snippet_dict.linenr, action_pattern, + \ a:snippet_dict.name) + let a:snippets[a:snippet_dict.name] = snippet + let a:dup_check[a:snippet_dict.name] = snippet + + for alias in get(a:snippet_dict, 'alias', []) + let alias_snippet = copy(snippet) + let alias_snippet.word = alias + + let a:snippets[alias] = alias_snippet + let a:dup_check[alias] = alias_snippet + endfor +endfunction"}}} +function! s:initialize_snippet(dict, path, line, pattern, name) "{{{ + let a:dict.word = substitute(a:dict.word, '\n\+$', '', '') + if a:dict.word !~ + \ s:get_placeholder_marker_substitute_pattern() + " Add placeholder. + let a:dict.word .= '${0}' + endif + + let menu_prefix = '[nsnip] ' + + if !has_key(a:dict, 'abbr') || a:dict.abbr == '' + " Set default abbr. + let abbr = substitute(a:dict.word, + \ s:get_placeholder_marker_pattern(). '\|'. + \ s:get_mirror_placeholder_marker_pattern(). + \ '\|\s\+\|\n\|TARGET', ' ', 'g') + let a:dict.abbr = a:dict.name + else + let abbr = a:dict.abbr + endif + + let snippet = { + \ 'word' : a:dict.name, 'snip' : a:dict.word, + \ 'description' : a:dict.word, + \ 'menu_template' : menu_prefix . abbr, + \ 'menu_abbr' : abbr, + \ 'options' : a:dict.options, + \ 'action__path' : a:path, 'action__line' : a:line, + \ 'action__pattern' : a:pattern, 'real_name' : a:name, + \} + + if has_key(a:dict, 'regexp') + let snippet.regexp = a:dict.regexp + endif + + return snippet +endfunction"}}} +function! s:initialize_snippet_options() "{{{ + return { 'head' : 0, 'word' : 0, 'indent' : 0 } +endfunction"}}} + +function! neosnippet#edit_snippets(args) "{{{ + call s:check_initialize() + + let [args, options] = neosnippet#util#parse_options( + \ a:args, s:neosnippet_options) + + let filetype = get(args, 0, '') + if filetype == '' + let filetype = neosnippet#get_filetype() + endif + + let options = s:initialize_options(options) + let snippet_dir = (options.runtime ? + \ get(neosnippet#get_runtime_snippets_directory(), 0, '') : + \ get(neosnippet#get_user_snippets_directory(), -1, '')) + + if snippet_dir == '' + call neosnippet#util#print_error('Snippet directory is not found.') + return + endif + + " Edit snippet file. + let filename = snippet_dir .'/'.filetype + + if isdirectory(filename) + " Edit in snippet directory. + let filename .= '/'.filetype + endif + + if filename !~ '\.snip*$' + let filename .= '.snip' + endif + + if options.split + " Split window. + execute options.direction + \ (options.vertical ? 'vsplit' : 'split') + endif + + try + edit `=filename` + catch /^Vim\%((\a\+)\)\=:E749/ + endtry +endfunction"}}} + +function! s:initialize_options(options) "{{{ + let default_options = { + \ 'runtime' : 0, + \ 'vertical' : 0, + \ 'direction' : 'below', + \ 'split' : 0, + \ } + + let options = extend(default_options, a:options) + + " Complex initializer. + if has_key(options, 'horizontal') + " Disable vertically. + let options.vertical = 0 + endif + + return options +endfunction"}}} + +function! neosnippet#make_cache(filetype) "{{{ + call s:check_initialize() + + let filetype = a:filetype == '' ? + \ &filetype : a:filetype + if filetype ==# '' + let filetype = 'nothing' + endif + + if has_key(s:snippets, filetype) + return + endif + + let snippets_dir = neosnippet#get_snippets_directory() + let snippet = {} + let snippets_files = + \ split(globpath(join(snippets_dir, ','), + \ filetype . '.snip*'), '\n') + \ + split(globpath(join(snippets_dir, ','), + \ filetype . '_*.snip*'), '\n') + \ + split(globpath(join(snippets_dir, ','), + \ filetype . '/**/*.snip*'), '\n') + for snippets_file in reverse(snippets_files) + call s:parse_snippets_file(snippet, snippets_file) + endfor + + let s:snippets[filetype] = snippet +endfunction"}}} + +function! neosnippet#source_file(filename) "{{{ + call s:check_initialize() + + let neosnippet = neosnippet#get_current_neosnippet() + call s:parse_snippets_file(neosnippet.snippets, a:filename) +endfunction"}}} + +function! s:parse_snippets_file(snippets, snippets_file) "{{{ + let dup_check = {} + let snippet_dict = {} + + let linenr = 1 + + if !filereadable(a:snippets_file) + call neosnippet#util#print_error( + \ printf('snippet file "%s" is not found.', a:snippets_file)) + return a:snippets + endif + + for line in readfile(a:snippets_file) + if line =~ '^\h\w*.*\s$' + " Delete spaces. + let line = substitute(line, '\s\+$', '', '') + endif + + if line =~ '^#' + " Ignore. + elseif line =~ '^include' + " Include snippets. + let filename = matchstr(line, '^include\s\+\zs.*$') + + for snippets_file in split(globpath(join( + \ neosnippet#get_snippets_directory(), ','), + \ filename), '\n') + call s:parse_snippets_file(a:snippets, snippets_file) + endfor + elseif line =~ '^delete\s' + let name = matchstr(line, '^delete\s\+\zs.*$') + if name != '' && has_key(a:snippets, name) + call filter(a:snippets, 'v:val.real_name !=# name') + endif + elseif line =~ '^snippet\s' + if !empty(snippet_dict) + " Set previous snippet. + call s:set_snippet_dict(snippet_dict, + \ a:snippets, dup_check, a:snippets_file) + endif + + let snippet_dict = s:parse_snippet_name( + \ a:snippets_file, line, linenr, dup_check) + elseif !empty(snippet_dict) + if line =~ '^\s' || line == '' + if snippet_dict.word == '' + " Substitute head tab character. + let line = substitute(line, '^\t', '', '') + endif + + let snippet_dict.word .= + \ substitute(line, '^ *', '', '') . "\n" + else + call s:add_snippet_attribute( + \ a:snippets_file, line, linenr, snippet_dict) + endif + endif + + let linenr += 1 + endfor + + if !empty(snippet_dict) + " Set previous snippet. + call s:set_snippet_dict(snippet_dict, + \ a:snippets, dup_check, a:snippets_file) + endif + + return a:snippets +endfunction"}}} + +function! s:parse_snippet_name(snippets_file, line, linenr, dup_check) "{{{ + " Initialize snippet dict. + let snippet_dict = { 'word' : '', 'linenr' : a:linenr, + \ 'options' : s:initialize_snippet_options() } + + " Try using the name without the description (abbr). + let snippet_dict.name = matchstr(a:line, '^snippet\s\+\zs\S\+') + + " Fall back to using the name and description (abbr) combined. + " SnipMate snippets may have duplicate names, but different + " descriptions (abbrs). + let description = matchstr(a:line, '^snippet\s\+\S\+\s\+\zs.*$') + if description != '' && description !=# snippet_dict.name + " Convert description. + let snippet_dict.name .= '_' . + \ substitute(substitute( + \ description, '\W\+', '_', 'g'), '_\+$', '', '') + endif + + " Collect the description (abbr) of the snippet, if set on snippet line. + " This is for compatibility with SnipMate-style snippets. + let snippet_dict.abbr = matchstr(a:line, + \ '^snippet\s\+\S\+\s\+\zs.*$') + + " Check for duplicated names. + if has_key(a:dup_check, snippet_dict.name) + let dup = a:dup_check[snippet_dict.name] + call neosnippet#util#print_error(printf( + \ 'Warning: %s:%d is overriding `%s` from %s:%d', + \ a:snippets_file, a:linenr, snippet_dict.name, + \ dup.action__path, dup.action__line)) + call neosnippet#util#print_error(printf( + \ 'Please rename the snippet name or use `delete %s`.', + \ snippet_dict.name)) + endif + + return snippet_dict +endfunction"}}} +function! s:add_snippet_attribute(snippets_file, line, linenr, snippet_dict) "{{{ + " Allow overriding/setting of the description (abbr) of the snippet. + " This will override what was set via the snippet line. + if a:line =~ '^abbr\s' + let a:snippet_dict.abbr = matchstr(a:line, '^abbr\s\+\zs.*$') + elseif a:line =~ '^alias\s' + let a:snippet_dict.alias = split(matchstr(a:line, + \ '^alias\s\+\zs.*$'), '[,[:space:]]\+') + elseif a:line =~ '^prev_word\s' + let prev_word = matchstr(a:line, + \ '^prev_word\s\+[''"]\zs.*\ze[''"]$') + if prev_word == '^' + " For backward compatibility. + let a:snippet_dict.options.head = 1 + else + call neosnippet#util#print_error( + \ 'prev_word must be "^" character.') + endif + elseif a:line =~ '^regexp\s' + let a:snippet_dict.regexp = matchstr(a:line, + \ '^regexp\s\+[''"]\zs.*\ze[''"]$') + elseif a:line =~ '^options\s\+' + for option in split(matchstr(a:line, + \ '^options\s\+\zs.*$'), '[,[:space:]]\+') + if !has_key(a:snippet_dict.options, option) + call neosnippet#util#print_error( + \ printf('[neosnippet] %s:%d', a:snippets_file, a:linenr)) + call neosnippet#util#print_error( + \ printf('[neosnippet] Invalid option name : "%s"', option)) + else + let a:snippet_dict.options[option] = 1 + endif + endfor + else + call neosnippet#util#print_error( + \ printf('[neosnippet] %s:%d', a:snippets_file, a:linenr)) + call neosnippet#util#print_error( + \ printf('[neosnippet] Invalid syntax : "%s"', a:line)) + endif +endfunction"}}} + +function! s:is_beginning_of_line(cur_text) "{{{ + let keyword_pattern = '\S\+' + let cur_keyword_str = matchstr(a:cur_text, keyword_pattern.'$') + let line_part = a:cur_text[: -1-len(cur_keyword_str)] + let prev_word_end = matchend(line_part, keyword_pattern) + + return prev_word_end <= 0 +endfunction"}}} +function! s:get_cursor_snippet(snippets, cur_text) "{{{ + let cur_word = matchstr(a:cur_text, '\S\+$') + if cur_word != '' && has_key(a:snippets, cur_word) + return cur_word + endif + + while cur_word != '' + if has_key(a:snippets, cur_word) && + \ a:snippets[cur_word].options.word + return cur_word + endif + + let cur_word = substitute(cur_word, '^\%(\w\+\|\W\)', '', '') + endwhile + + return cur_word +endfunction"}}} + +function! s:snippets_expand(cur_text, col) "{{{ + let cur_word = s:get_cursor_snippet( + \ neosnippet#get_snippets(), + \ a:cur_text) + + call neosnippet#expand( + \ a:cur_text, a:col, cur_word) +endfunction"}}} +function! neosnippet#jump(cur_text, col) "{{{ + call s:skip_next_auto_completion() + + " Get patterns and count. + if empty(s:snippets_expand_stack) + return s:search_outof_range(a:col) + endif + + let expand_info = s:snippets_expand_stack[-1] + " Search patterns. + let [begin, end] = s:get_snippet_range( + \ expand_info.begin_line, + \ expand_info.begin_patterns, + \ expand_info.end_line, + \ expand_info.end_patterns) + if s:search_snippet_range(begin, end, expand_info.holder_cnt) + " Next count. + let expand_info.holder_cnt += 1 + return 1 + endif + + " Search placeholder 0. + if s:search_snippet_range(begin, end, 0) + return 1 + endif + + " Not found. + let s:snippets_expand_stack = s:snippets_expand_stack[: -2] + + return s:search_outof_range(a:col) +endfunction"}}} +function! s:snippets_expand_or_jump(cur_text, col) "{{{ + let cur_word = s:get_cursor_snippet( + \ neosnippet#get_snippets(), a:cur_text) + + if cur_word != '' + " Found snippet trigger. + call neosnippet#expand( + \ a:cur_text, a:col, cur_word) + else + call neosnippet#jump(a:cur_text, a:col) + endif +endfunction"}}} +function! s:snippets_jump_or_expand(cur_text, col) "{{{ + let cur_word = s:get_cursor_snippet( + \ neosnippet#get_snippets(), a:cur_text) + if search(s:get_placeholder_marker_pattern(). '\|' + \ .s:get_sync_placeholder_marker_pattern(), 'nw') > 0 + " Found snippet placeholder. + call neosnippet#jump(a:cur_text, a:col) + else + call neosnippet#expand( + \ a:cur_text, a:col, cur_word) + endif +endfunction"}}} + +function! neosnippet#expand(cur_text, col, trigger_name) "{{{ + call s:skip_next_auto_completion() + + let snippets = neosnippet#get_snippets() + + if a:trigger_name == '' || !has_key(snippets, a:trigger_name) + let pos = getpos('.') + let pos[2] = len(a:cur_text)+1 + call setpos('.', pos) + + if pos[2] < col('$') + startinsert + else + startinsert! + endif + + return + endif + + let snippet = snippets[a:trigger_name] + let cur_text = a:cur_text[: -1-len(a:trigger_name)] + + let snip_word = snippet.snip + if snip_word =~ '\\\@', 'g') + let snip_word = substitute(snip_word, + \ '\\\@', 'g') + let snip_word = substitute(snip_word, + \ '\\'.s:get_mirror_placeholder_marker_substitute_pattern().'\|'. + \ '\\'.s:get_placeholder_marker_substitute_pattern(), + \ '\=submatch(0)[1:]', 'g') + + " Insert snippets. + let next_line = getline('.')[a:col-1 :] + let snippet_lines = split(snip_word, '\n', 1) + if empty(snippet_lines) + return + endif + + let begin_line = line('.') + let end_line = line('.') + len(snippet_lines) - 1 + + let snippet_lines[0] = cur_text . snippet_lines[0] + let next_col = len(snippet_lines[-1]) + 1 + let snippet_lines[-1] = snippet_lines[-1] . next_line + + if has('folding') + " Note: Change foldmethod to "manual". Because, if you use foldmethod is + " expr, whole snippet is visually selected. + let foldmethod_save = &l:foldmethod + let &l:foldmethod = 'manual' + endif + + try + call setline('.', snippet_lines[0]) + if len(snippet_lines) > 1 + call append('.', snippet_lines[1:]) + endif + + if begin_line != end_line || snippet.options.indent + call s:indent_snippet(begin_line, end_line) + endif + + let begin_patterns = (begin_line > 1) ? + \ [getline(begin_line - 1)] : [] + let end_patterns = (end_line < line('$')) ? + \ [getline(end_line + 1)] : [] + call add(s:snippets_expand_stack, { + \ 'begin_line' : begin_line, + \ 'begin_patterns' : begin_patterns, + \ 'end_line' : end_line, + \ 'end_patterns' : end_patterns, + \ 'holder_cnt' : 1, + \ }) + + if snip_word =~ s:get_placeholder_marker_pattern() + call neosnippet#jump(a:cur_text, a:col) + endif + finally + if has('folding') + if foldmethod_save !=# &l:foldmethod + let &l:foldmethod = foldmethod_save + endif + + silent! execute begin_line . ',' . end_line . 'foldopen!' + endif + endtry + + let &l:iminsert = 0 + let &l:imsearch = 0 +endfunction"}}} +function! neosnippet#expand_target() "{{{ + let trigger = input('Please input snippet trigger: ', + \ '', 'customlist,neosnippet#complete_target_snippets') + let neosnippet = neosnippet#get_current_neosnippet() + if !has_key(neosnippet#get_snippets(), trigger) || + \ neosnippet#get_snippets()[trigger].snip !~# + \ neosnippet#get_placeholder_target_marker_pattern() + if trigger != '' + echo 'The trigger is invalid.' + endif + + let neosnippet.target = '' + return + endif + + call neosnippet#expand_target_trigger(trigger) +endfunction"}}} +function! neosnippet#expand_target_trigger(trigger) "{{{ + let neosnippet = neosnippet#get_current_neosnippet() + let neosnippet.target = substitute( + \ neosnippet#get_selected_text(visualmode(), 1), '\n$', '', '') + + let line = getpos("'<")[1] + let col = getpos("'<")[2] + + call neosnippet#delete_selected_text(visualmode()) + + call cursor(line, col) + + call neosnippet#expand(neosnippet#util#get_cur_text(), col, a:trigger) +endfunction"}}} +function! s:indent_snippet(begin, end) "{{{ + if a:begin > a:end + return + endif + + let pos = getpos('.') + + let neosnippet = neosnippet#get_current_neosnippet() + + let equalprg = &l:equalprg + try + setlocal equalprg= + + " Indent begin line? + let begin = (neosnippet.target == '') ? a:begin : a:begin + 1 + + let base_indent = matchstr(getline(a:begin), '^\s\+') + for line_nr in range(begin, a:end) + call cursor(line_nr, 0) + + if getline('.') =~ '^\t\+' + " Delete head tab character. + let current_line = substitute(getline('.'), '^\t', '', '') + + if &l:expandtab && current_line =~ '^\t\+' + " Expand tab. + cal setline('.', substitute(current_line, + \ '^\t\+', base_indent . repeat(' ', &shiftwidth * + \ len(matchstr(current_line, '^\t\+'))), '')) + elseif line_nr != a:begin + call setline('.', base_indent . current_line) + endif + else + silent normal! == + endif + endfor + finally + let &l:equalprg = equalprg + call setpos('.', pos) + endtry +endfunction"}}} + +function! neosnippet#register_oneshot_snippet() "{{{ + let trigger = input('Please input snippet trigger: ', 'oneshot') + if trigger == '' + return + endif + + let selected_text = substitute( + \ neosnippet#get_selected_text(visualmode(), 1), '\n$', '', '') + call neosnippet#delete_selected_text(visualmode(), 1) + + let base_indent = matchstr(selected_text, '^\s*') + + " Delete base_indent. + let selected_text = substitute(selected_text, + \'^' . base_indent, '', 'g') + + let neosnippet = neosnippet#get_current_neosnippet() + let options = s:initialize_snippet_options() + let options.word = 1 + + let neosnippet.snippets[trigger] = s:initialize_snippet( + \ { 'name' : trigger, 'word' : selected_text, 'options' : options }, + \ '', 0, '', trigger) + + echo 'Registered trigger : ' . trigger +endfunction"}}} + +function! s:get_snippet_range(begin_line, begin_patterns, end_line, end_patterns) "{{{ + let pos = getpos('.') + + call cursor(a:begin_line, 0) + if empty(a:begin_patterns) + let begin = line('.') - 50 + else + let [begin, _] = searchpos('^' . neosnippet#util#escape_pattern( + \ a:begin_patterns[0]) . '$', 'bnW') + if begin <= 0 + let begin = line('.') - 50 + endif + endif + if begin <= 0 + let begin = 1 + endif + + call cursor(a:end_line, 0) + if empty(a:end_patterns) + let end = line('.') + 50 + else + let [end, _] = searchpos('^' . neosnippet#util#escape_pattern( + \ a:end_patterns[0]) . '$', 'nW') + if end <= 0 + let end = line('.') + 50 + endif + endif + if end > line('$') + let end = line('$') + endif + + call setpos('.', pos) + return [begin, end] +endfunction"}}} +function! s:search_snippet_range(start, end, cnt, ...) "{{{ + let is_select = get(a:000, 0, 1) + call s:substitute_placeholder_marker(a:start, a:end, a:cnt) + + " Search marker pattern. + let pattern = substitute(s:get_placeholder_marker_pattern(), + \ '\\d\\+', a:cnt, '') + + for line in filter(range(a:start, a:end), + \ 'getline(v:val) =~ pattern') + call s:expand_placeholder(a:start, a:end, a:cnt, line, is_select) + return 1 + endfor + + return 0 +endfunction"}}} +function! s:search_outof_range(col) "{{{ + call s:substitute_placeholder_marker(1, 0, 0) + + let pattern = s:get_placeholder_marker_pattern() + if search(pattern, 'w') > 0 + call s:expand_placeholder(line('.'), 0, '\\d\\+', line('.')) + return 1 + endif + + let pos = getpos('.') + if a:col == 1 + let pos[2] = 1 + call setpos('.', pos) + startinsert + elseif a:col >= col('$') + startinsert! + else + let pos[2] = a:col+1 + call setpos('.', pos) + startinsert + endif + + " Not found. + return 0 +endfunction"}}} +function! s:expand_placeholder(start, end, holder_cnt, line, ...) "{{{ + let is_select = get(a:000, 0, 1) + + let pattern = substitute(s:get_placeholder_marker_pattern(), + \ '\\d\\+', a:holder_cnt, '') + let current_line = getline(a:line) + let match = match(current_line, pattern) + let neosnippet = neosnippet#get_current_neosnippet() + + let default_pattern = substitute( + \ s:get_placeholder_marker_default_pattern(), + \ '\\d\\+', a:holder_cnt, '') + let default = substitute( + \ matchstr(current_line, default_pattern), + \ '\\\ze[^\\]', '', 'g') + + if default =~ '^TARGET\>' && neosnippet.target != '' + let default = '' + let is_target = 1 + else + let is_target = 0 + endif + + let default = substitute(default, '^TARGET:\?', '', '') + + let neosnippet.selected_text = default + + " Substitute marker. + let default = substitute(default, + \ s:get_placeholder_marker_substitute_pattern(), + \ '<`\1`>', 'g') + let default = substitute(default, + \ s:get_mirror_placeholder_marker_substitute_pattern(), + \ '<|\1|>', 'g') + + let default_len = len(default) + + let pos = getpos('.') + let pos[1] = a:line + let pos[2] = match+1 + + let cnt = s:search_sync_placeholder(a:start, a:end, a:holder_cnt) + if cnt >= 0 + let pattern = substitute(s:get_placeholder_marker_pattern(), + \ '\\d\\+', cnt, '') + call setline(a:line, substitute(current_line, pattern, + \ '<{'.cnt.':'.escape(default, '\').'}>', '')) + let pos[2] += len('<{'.cnt.':') + else + " Substitute holder. + call setline(a:line, + \ substitute(current_line, pattern, escape(default, '\'), '')) + endif + + call setpos('.', pos) + + if is_target + " Expand target + return s:expand_target_placeholder(a:line, match+1) + endif + + if default_len > 0 && is_select + " Select default value. + let len = default_len-1 + if &l:selection == 'exclusive' + let len += 1 + endif + + stopinsert + execute 'normal! v'. repeat('l', len) . "\" + elseif pos[2] < col('$') + startinsert + else + startinsert! + endif +endfunction"}}} +function! s:expand_target_placeholder(line, col) "{{{ + " Expand target + let neosnippet = neosnippet#get_current_neosnippet() + let next_line = getline(a:line)[a:col-1 :] + let target_lines = split(neosnippet.target, '\n', 1) + + let cur_text = getline(a:line)[: a:col-2] + let target_lines[0] = cur_text . target_lines[0] + let next_col = len(target_lines[-1]) + 1 + let target_lines[-1] = target_lines[-1] . next_line + + let begin_line = a:line + let end_line = a:line + len(target_lines) - 1 + + let col = col('.') + try + let base_indent = matchstr(cur_text, '^\s\+') + call setline(a:line, target_lines[0]) + if len(target_lines) > 1 + call append(a:line, map(target_lines[1:], + \ 'base_indent . v:val')) + endif + + call cursor(end_line, 0) + + if next_line != '' + startinsert + let col = col('.') + else + startinsert! + let col = col('$') + endif + finally + if has('folding') + silent! execute begin_line . ',' . end_line . 'foldopen!' + endif + endtry + + let neosnippet.target = '' + + call neosnippet#jump(neosnippet#util#get_cur_text(), col) +endfunction"}}} +function! s:search_sync_placeholder(start, end, number) "{{{ + if a:end == 0 + " Search in current buffer. + let cnt = matchstr(getline('.'), + \ substitute(s:get_placeholder_marker_pattern(), + \ '\\d\\+', '\\zs\\d\\+\\ze', '')) + return search(substitute( + \ s:get_mirror_placeholder_marker_pattern(), + \ '\\d\\+', cnt, ''), 'nw') > 0 ? cnt : -1 + endif + + let pattern = substitute( + \ s:get_mirror_placeholder_marker_pattern(), + \ '\\d\\+', a:number, '') + for line in filter(range(a:start, a:end), + \ 'getline(v:val) =~ pattern') + return a:number + endfor + + return -1 +endfunction"}}} +function! s:substitute_placeholder_marker(start, end, snippet_holder_cnt) "{{{ + if a:snippet_holder_cnt > 0 + let cnt = a:snippet_holder_cnt-1 + let sync_marker = substitute(s:get_sync_placeholder_marker_pattern(), + \ '\\d\\+', cnt, '') + let mirror_marker = substitute( + \ s:get_mirror_placeholder_marker_pattern(), + \ '\\d\\+', cnt, '') + let line = a:start + + for line in range(a:start, a:end) + if getline(line) =~ sync_marker + let sub = escape(matchstr(getline(line), + \ substitute(s:get_sync_placeholder_marker_default_pattern(), + \ '\\d\\+', cnt, '')), '/\') + silent execute printf('%d,%ds/\m' . mirror_marker . '/%s/' + \ . (&gdefault ? '' : 'g'), a:start, a:end, sub) + call setline(line, substitute(getline(line), sync_marker, sub, '')) + endif + endfor + elseif search(s:get_sync_placeholder_marker_pattern(), 'wb') > 0 + let sub = escape(matchstr(getline('.'), + \ s:get_sync_placeholder_marker_default_pattern()), '/\') + let cnt = matchstr(getline('.'), + \ substitute(s:get_sync_placeholder_marker_pattern(), + \ '\\d\\+', '\\zs\\d\\+\\ze', '')) + let mirror_marker = substitute( + \ s:get_mirror_placeholder_marker_pattern(), + \ '\\d\\+', cnt, '') + silent execute printf('%%s/\m' . mirror_marker . '/%s/' + \ . (&gdefault ? 'g' : ''), sub) + let sync_marker = substitute(s:get_sync_placeholder_marker_pattern(), + \ '\\d\\+', cnt, '') + call setline('.', substitute(getline('.'), sync_marker, sub, '')) + endif +endfunction"}}} +function! s:eval_snippet(snippet_text) "{{{ + let snip_word = '' + let prev_match = 0 + let match = match(a:snippet_text, '\\\@= 0 + if match - prev_match > 0 + let snip_word .= a:snippet_text[prev_match : match - 1] + endif + let prev_match = matchend(a:snippet_text, + \ '\\\@= 0 + let snip_word .= a:snippet_text[prev_match :] + endif + + return snip_word +endfunction"}}} +function! neosnippet#get_current_neosnippet() "{{{ + if !exists('b:neosnippet') + let b:neosnippet = { + \ 'snippets' : {}, + \ 'selected_text' : '', + \ 'target' : '', + \ 'trigger' : 0, + \} + endif + + return b:neosnippet +endfunction"}}} +function! neosnippet#get_snippets() "{{{ + call s:check_initialize() + + let neosnippet = neosnippet#get_current_neosnippet() + let snippets = copy(neosnippet.snippets) + for filetype in s:get_sources_filetypes(neosnippet#get_filetype()) + call neosnippet#make_cache(filetype) + call extend(snippets, s:snippets[filetype], 'keep') + endfor + + if mode() ==# 'i' + " Special filters. + let cur_text = neosnippet#util#get_cur_text() + if !s:is_beginning_of_line(cur_text) + call filter(snippets, '!v:val.options.head') + endif + + call filter(snippets, "cur_text =~ get(v:val, 'regexp', '')") + endif + + return snippets +endfunction"}}} +function! neosnippet#get_snippets_directory() "{{{ + call s:check_initialize() + + let snippets_dir = copy(s:snippets_dir) + if !get(g:neosnippet#disable_runtime_snippets, + \ neosnippet#get_filetype(), + \ get(g:neosnippet#disable_runtime_snippets, '_', 0)) + let snippets_dir += s:runtime_dir + endif + + return snippets_dir +endfunction"}}} +function! neosnippet#get_user_snippets_directory() "{{{ + call s:check_initialize() + + return copy(s:snippets_dir) +endfunction"}}} +function! neosnippet#get_runtime_snippets_directory() "{{{ + call s:check_initialize() + + return copy(s:runtime_dir) +endfunction"}}} +function! neosnippet#get_filetype() "{{{ + if !exists('s:exists_context_filetype') + " context_filetype.vim installation check. + try + call context_filetype#version() + let s:exists_context_filetype = 1 + catch + let s:exists_context_filetype = 0 + endtry + endif + + let context_filetype = + \ s:exists_context_filetype ? + \ context_filetype#get_filetype() : &filetype + if context_filetype == '' + let context_filetype = 'nothing' + endif + + return context_filetype +endfunction"}}} +function! s:get_sources_filetypes(filetype) "{{{ + let filetypes = + \ exists('*neocomplete#get_source_filetypes') ? + \ neocomplete#get_source_filetypes(a:filetype) : + \ exists('*neocomplcache#get_source_filetypes') ? + \ neocomplcache#get_source_filetypes(a:filetype) : + \ [(a:filetype == '') ? 'nothing' : a:filetype] + return filetypes + ['_'] +endfunction"}}} + +function! neosnippet#edit_complete(arglead, cmdline, cursorpos) "{{{ + return filter(s:neosnippet_options + neosnippet#filetype_complete( + \ a:arglead, a:cmdline, a:cursorpos), 'stridx(v:val, a:arglead) == 0') +endfunction"}}} +" Complete filetype helper. +function! neosnippet#filetype_complete(arglead, cmdline, cursorpos) "{{{ + " Dup check. + let ret = {} + for item in map( + \ split(globpath(&runtimepath, 'syntax/*.vim'), '\n') + + \ split(globpath(&runtimepath, 'indent/*.vim'), '\n') + + \ split(globpath(&runtimepath, 'ftplugin/*.vim'), '\n') + \ , 'fnamemodify(v:val, ":t:r")') + if !has_key(ret, item) && item =~ '^'.a:arglead + let ret[item] = 1 + endif + endfor + + return sort(keys(ret)) +endfunction"}}} +function! neosnippet#complete_target_snippets(arglead, cmdline, cursorpos) "{{{ + return map(filter(values(neosnippet#get_snippets()), + \ "stridx(v:val.word, a:arglead) == 0 + \ && v:val.snip =~# neosnippet#get_placeholder_target_marker_pattern()"), 'v:val.word') +endfunction"}}} + +function! neosnippet#get_placeholder_target_marker_pattern() "{{{ + return '\${\d\+:TARGET\%(:.\{-}\)\?\\\@' +endfunction"}}} +function! s:get_placeholder_marker_substitute_pattern() "{{{ + return '\${\(\d\+\%(:.\{-}\)\?\\\@' +endfunction"}}} +function! s:get_sync_placeholder_marker_pattern() "{{{ + return '<{\d\+\%(:.\{-}\)\?\\\@' +endfunction"}}} +function! s:get_sync_placeholder_marker_default_pattern() "{{{ + return '<{\d\+:\zs.\{-}\ze\\\@' +endfunction"}}} +function! s:get_mirror_placeholder_marker_pattern() "{{{ + return '<|\d\+|>' +endfunction"}}} +function! s:get_mirror_placeholder_marker_substitute_pattern() "{{{ + return '\$\(\d\+\)' +endfunction"}}} + +function! s:SID_PREFIX() "{{{ + return matchstr(expand(''), '\d\+_') +endfunction"}}} + +function! s:trigger(function) "{{{ + call s:check_initialize() + + let cur_text = neosnippet#util#get_cur_text() + + let col = col('.') + let expr = '' + if mode() !=# 'i' + " Fix column. + let col += 2 + endif + + " Get selected text. + let neosnippet = neosnippet#get_current_neosnippet() + let neosnippet.trigger = 1 + if mode() ==# 's' && neosnippet.selected_text =~ '^#:' + let expr .= "a\" + endif + + let expr .= printf("\:call %s(%s,%d)\", + \ a:function, string(cur_text), col) + + return expr +endfunction"}}} + +function! neosnippet#get_selected_text(type, ...) "{{{ + let sel_save = &selection + let &selection = 'inclusive' + let reg_save = @@ + let pos = getpos('.') + + try + " Invoked from Visual mode, use '< and '> marks. + if a:0 + silent exe "normal! `<" . a:type . "`>y" + elseif a:type == 'line' + silent exe "normal! '[V']y" + elseif a:type == 'block' + silent exe "normal! `[\`]y" + else + silent exe "normal! `[v`]y" + endif + + return @@ + finally + let &selection = sel_save + let @@ = reg_save + call setpos('.', pos) + endtry +endfunction"}}} +function! neosnippet#delete_selected_text(type, ...) "{{{ + let sel_save = &selection + let &selection = 'inclusive' + let reg_save = @@ + let pos = getpos('.') + + try + " Invoked from Visual mode, use '< and '> marks. + if a:0 + silent exe "normal! `<" . a:type . "`>d" + elseif a:type ==# 'V' + silent exe "normal! `[V`]s" + elseif a:type ==# "\" + silent exe "normal! `[\`]d" + else + silent exe "normal! `[v`]d" + endif + finally + let &selection = sel_save + let @@ = reg_save + call setpos('.', pos) + endtry +endfunction"}}} +function! neosnippet#substitute_selected_text(type, text) "{{{ + let sel_save = &selection + let &selection = 'inclusive' + let reg_save = @@ + let pos = getpos('.') + + try + " Invoked from Visual mode, use '< and '> marks. + if a:0 + silent exe "normal! `<" . a:type . "`>s" . a:text + elseif a:type ==# 'V' + silent exe "normal! '[V']hs" . a:text + elseif a:type ==# "\" + silent exe "normal! `[\`]s" . a:text + else + silent exe "normal! `[v`]s" . a:text + endif + finally + let &selection = sel_save + let @@ = reg_save + call setpos('.', pos) + endtry +endfunction"}}} + +function! neosnippet#clear_select_mode_mappings() "{{{ + if !g:neosnippet#disable_select_mode_mappings + return + endif + + redir => mappings + silent! smap + redir END + + for line in map(filter(split(mappings, '\n'), + \ "v:val !~# '^s'"), + \ "substitute(v:val, '', '', 'g')") + let map = matchstr(line, '^\a*\s*\zs\S\+') + let map = substitute(map, '', '', 'g') + + silent! execute 'sunmap' map + silent! execute 'sunmap ' map + endfor + + " Define default select mode mappings. + snoremap a + snoremap a + snoremap a + snoremap a + snoremap a + snoremap bi +endfunction"}}} + +function! s:skip_next_auto_completion() "{{{ + " Skip next auto completion. + if exists('*neocomplcache#skip_next_complete') + call neocomplcache#skip_next_complete() + endif + if exists('*neocomplete#skip_next_complete') + call neocomplete#skip_next_complete() + endif + + let neosnippet = neosnippet#get_current_neosnippet() + let neosnippet.trigger = 0 +endfunction"}}} + +function! s:on_insert_leave() "{{{ + " Get patterns and count. + if empty(s:snippets_expand_stack) + \ || neosnippet#get_current_neosnippet().trigger + return + endif + + let expand_info = s:snippets_expand_stack[-1] + + if expand_info.begin_line != expand_info.end_line + return + endif + + " Search patterns. + let [begin, end] = s:get_snippet_range( + \ expand_info.begin_line, + \ expand_info.begin_patterns, + \ expand_info.end_line, + \ expand_info.end_patterns) + + let pos = getpos('.') + + " Found snippet. + let found = 0 + try + while s:search_snippet_range(begin, end, expand_info.holder_cnt, 0) + " Next count. + let expand_info.holder_cnt += 1 + let found = 1 + endwhile + + " Search placeholder 0. + if s:search_snippet_range(begin, end, 0) + let found = 1 + endif + finally + if found + stopinsert + endif + + call setpos('.', pos) + endtry +endfunction"}}} + +if g:neosnippet#enable_snipmate_compatibility + " For snipMate function. + function! Filename(...) + let filename = expand('%:t:r') + if filename == '' + return a:0 == 2 ? a:2 : '' + elseif a:0 == 0 || a:1 == '' + return filename + else + return substitute(a:1, '$1', filename, 'g') + endif + endfunction +endif + +" Plugin key-mappings. +function! neosnippet#expand_or_jump_impl() + return s:trigger(s:SID_PREFIX().'snippets_expand_or_jump') +endfunction +function! neosnippet#jump_or_expand_impl() + return s:trigger(s:SID_PREFIX().'snippets_jump_or_expand') +endfunction +function! neosnippet#expand_impl() + return s:trigger(s:SID_PREFIX().'snippets_expand') +endfunction +function! neosnippet#jump_impl() + return s:trigger('neosnippet#jump') +endfunction + +function! s:initialize_script_variables() "{{{ + " Initialize. + let s:snippets_expand_stack = [] + let s:snippets = {} + + " Set runtime dir. + let s:runtime_dir = split(globpath(&runtimepath, + \ 'autoload/neosnippet/snippets'), '\n') + let s:runtime_dir += (exists('g:snippets_dir') ? + \ split(g:snippets_dir, '\s*,\s*') + \ : split(globpath(&runtimepath, 'snippets'), '\n')) + call map(s:runtime_dir, 'substitute(v:val, "[\\\\/]$", "", "")') + + " Set snippets_dir. + let s:snippets_dir = [] + for dir in split(g:neosnippet#snippets_directory, '\s*,\s*') + let dir = neosnippet#util#expand(dir) + if !isdirectory(dir) + call mkdir(dir, 'p') + endif + call add(s:snippets_dir, dir) + endfor + call map(s:snippets_dir, 'substitute(v:val, "[\\\\/]$", "", "")') +endfunction"}}} +function! s:initialize_cache() "{{{ + " Caching _ snippets. + call neosnippet#make_cache('_') + + " Initialize check. + call neosnippet#caching() +endfunction"}}} +function! s:initialize_others() "{{{ + augroup neosnippet "{{{ + autocmd! + " Set caching event. + autocmd FileType * call neosnippet#caching() + " Recaching events + autocmd BufWritePost *.snip,*.snippets + \ call neosnippet#recaching() + autocmd BufEnter * + \ call neosnippet#clear_select_mode_mappings() + autocmd InsertLeave * call s:on_insert_leave() + augroup END"}}} + + augroup neosnippet + autocmd BufNewFile,BufRead,Syntax * + \ execute 'syntax match neosnippetExpandSnippets' + \ "'".s:get_placeholder_marker_pattern(). '\|' + \ .s:get_sync_placeholder_marker_pattern().'\|' + \ .s:get_mirror_placeholder_marker_pattern()."'" + \ 'containedin=ALL oneline' + if has('conceal') + autocmd BufNewFile,BufRead,Syntax * + \ syntax region neosnippetConcealExpandSnippets + \ matchgroup=neosnippetExpandSnippets + \ start='<`\d\+:\=\|<{\d\+:\=\|<|' + \ end='`>\|}>\||>' + \ containedin=ALL + \ concealends oneline + endif + augroup END + doautocmd neosnippet BufRead + + hi def link neosnippetExpandSnippets Special + + if get(g:, 'loaded_echodoc', 0) + call echodoc#register('snippets_complete', s:doc_dict) + endif + + call neosnippet#clear_select_mode_mappings() +endfunction"}}} + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/Gemfile.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/Gemfile.snip new file mode 100644 index 0000000..b27d1b1 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/Gemfile.snip @@ -0,0 +1,7 @@ +snippet source-rubygems +options head + source :rubygems + +snippet gem +options head + gem '${1}', '${2} >= 1.0' diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/_.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/_.snip new file mode 100644 index 0000000..338ecf9 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/_.snip @@ -0,0 +1,25 @@ +# Global snippets + +snippet date +options word + `strftime("%d %b %Y")` + +snippet date_full +alias df +options word + `strftime("%Y-%m-%dT%H:%M:%S")` + +snippet date_day +alias dd +options word + `strftime("%Y-%m-%d")` + +snippet date_time +alias dt +options word + `strftime("%H:%M:%S")` + +snippet lastmod +abbr Last modified time +alias lmod + Last Modified: `strftime("%Y-%m-%dT%H:%M:%S")` diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/actionscript.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/actionscript.snip new file mode 100644 index 0000000..cf98e76 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/actionscript.snip @@ -0,0 +1,265 @@ +snippet ec + #endinitclip + + +snippet inc + #include "${1}" + + +snippet br + break; + + +snippet ca + call(${1:#:frame}); + + +snippet case +abbr ce + case ${1:#:expression} : + ${1:TARGET} + + +snippet catch +abbr ch + catch ($1) { + $2 + } + +snippet class + class ${1:#:ClassName} { + var _${2}; + function ${1}(${2}){ + _${2} = ${2};${0} + } + } + +snippet co + continue; + + +snippet dt + default : + ${1:TARGET} + + +snippet de + delete ${1}; + + +snippet do + do { + ${1:TARGET} + } while (${2:#:condition}); + + +snippet dm + duplicateMovieClip(${1:#:target}, ${2:#:newName}, ${3:#:depth}); + + +snippet ei + else if (${1}) { + ${2:TARGET} + } + + +snippet fori +abbr fi + for (var ${1} in ${2}){ + ${3:TARGET} + }; + + +snippet for +abbr fr + for (var ${1} = 0; $1 < ${2}.length; $1++) { + ${0:TARGET} + }; + + +snippet fs + fscommand(${1:#:command}, ${2:#:paramaters}); + + +snippet fn + function ${1}(${2}):${3}{ + ${0:TARGET} + }; + +snippet gu + getURL(${1}); + + +snippet gp + gotoAndPlay(${1}); + + +snippet gs + gotoAndStop(${1}); + +snippet if + if (${1}) { + ${0:TARGET} + } + +snippet il + ifFrameLoaded (${1}) { + ${0:TARGET} + } + +snippet ip + import ${1}; + + +snippet it + interface ${1}{ + ${0:TARGET} + } + + +snippet lm + loadMovie(${1:url}, ${2:target}, ${3:method}); + + +snippet ln + loadMovieNum(${1:url}, ${2:level}, ${3:method}); + + +snippet lv + loadVariables(${1:url}, ${2:target}, ${3:method}); + + +snippet vn + loadVariables(${1:url}, ${2:level}, ${3:method}); + + +snippet mc + MovieClip + + +snippet nf + nextFrame(); + + +snippet ns + nextScene(); + + +snippet on + on (${1}) { + ${2} + }; + + +snippet oc + onClipEvent (${1}) { + ${0:TARGET} + }; + +snippet pl + play(); + + +snippet pf + pravFrame(); + + +snippet ps + prevScene(); + + +snippet pr + print(${1:#:target}, ${2:#:type}); + + +snippet bn + printAsBitmapNum(${1:#:level}, ${2:#:type}); + + +snippet pn + printNum(${1:#:level}, ${2:#:type}); + + +snippet rm + removeMovieClip(${1:#:target}); + + +snippet rt + return ${1}; + + +snippet sp + setProperty(${1:#:target}, ${2:#:property}, ${3:#:value}); + + +snippet sv + set(${1:#:name}, ${2:#:value}); + + +snippet dr + startDrag(${1:#:target}, ${2:#:lockcenter}, ${3:#:l}, ${4:#:t}, ${5:#:r}, ${6:#:b} ); + + +snippet st + stop(); + + +snippet ss + stopAllSounds(); + + +snippet sd + stopDrag(); + + +snippet sw + switch ( ${1:#:condition} ) { + ${0:TARGET} + } + + +snippet tt + tellTarget( ${1:#:target} ) { + ${0:TARGET} + } + +snippet th + throw ${1}; + + +snippet tq + toggleHighQuality(); + + +snippet tr + trace(${1:"$0"}); + + +snippet ty + try { + ${0:TARGET} + }; + +snippet um + unloadMovie(${1:#:target}); + + +snippet un + unloadMovieNum(${1:#:level}); + + +snippet vr + var ${1}:${2}; + + +snippet wh + while (${1:#:condition}) { + ${0:TARGET} + }; + + +snippet wt + with (${1:#:target}); + ${0:TARGET} + }; + diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/apache.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/apache.snip new file mode 100644 index 0000000..df391c6 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/apache.snip @@ -0,0 +1,22 @@ +snippet allow + AllowOverride ${1:#:AuthConfig} ${2:#:FileInfo} ${3:#:Indexes} ${4:#:Limit} ${5:#:Options} + + +snippet opt + Options ${1:#:All} ${2:#:ExecCGI} ${3:#:FollowSymLinks} ${4:#:Includes} ${5:#:IncludesNOEXEC} ${6:#:Indexes} ${7:#:MultiViews} ${8:#:SymLinksIfOwnerMatch} + + +snippet vhost + + ServerAdmin webmaster@${1} + DocumentRoot /www/vhosts/${1} + ServerName ${1} + ErrorLog logs/${1}-error_log + CustomLog logs/${1}-access_log common + + +snippet dir + + ${0} + + diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/applescript.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/applescript.snip new file mode 100644 index 0000000..391d4f3 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/applescript.snip @@ -0,0 +1,185 @@ +snippet script + script ${1:#:new_object} + on run + ${2:TARGET} + end run + end script + + +snippet on + on ${1:#:functionName}(${2:#:arguments}) + ${3:TARGET} + end ${1} + + +snippet tell + tell ${1:#:app} + ${0:TARGET} + end tell + +snippet terms + using terms from ${1:#:app} + ${0:TARGET} + end using terms from + + +snippet if + if ${1:true} then + ${0:TARGET} + end if + + +snippet rept +abbr rep + repeat ${1} times} + ${0:TARGET} + end repeat + + +snippet repwh +abbr rep + repeat while ${1:#:condition} + ${0:TARGET} + end repeat + + +snippet repwi +abbr rep + repeat with ${1} in ${2} + ${0:TARGET} + end repeat + + +snippet try + try + ${0:TARGET} + on error + -- error handling + end try + +snippet timeout + with timeout ${1:#:number} seconds + ${0:TARGET} + end timeout + +snippet con + considering ${1:#:case} + ${0:TARGET} + end considering + + +snippet ign + ignoring ${1:#:application responses} + ${0:TARGET} + end ignoring + +snippet shell + ${1:#:set shell_stdout to }do shell script ${3:"${2:#script}"} + without altering line endings + ${0} + +snippet delim + set oldDelims to AppleScript's text item delimiters + set AppleScript's text item delimiters to {"${1:,}"} + ${0:#:TARGET} + set AppleScript's text item delimiters to oldDelims + + +snippet parent + prop parent : app "${1}" + + +snippet alert + display alert "${1:#:alert text}" + ${2:#:message} "${3:#:message text}" + ${4:#:as warning} + +snippet dialog_OK +abbr dialog + display dialog "${1:#:text}" + ${2:#:with icon} ${3:1} + buttons {"${4:OK}"} default button 1 + + +snippet dialog_OK/Cancel +abbr dialog + display dialog "${1:#:text}" + ${2:#:with icon} + buttons {"${3:Cancel}", "${4:OK}"} + default button "${4}" + set button_pressed to button returned of result + if button_pressed is "${4}" then + ${5:#:TARGET} + else + -- action for cancel button goes here + end if + +snippet dialog_OK/Cancel/Other +abbr dialog + display dialog "${1:#:text}" + ${2:#:with icon} + buttons {"${3:Cancel}", "${4:Other Choice}", "${5:OK}"} + default button "${5}" + set button_pressed to button returned of result + if button_pressed is "${5}" then + ${6:TARGET} + else if button_pressed is "${3}" then + -- action for cancel button goes here + else + -- action for other button goes here + end if + +snippet dialog_TextFierld +abbr dialog + set the_result to display dialog "${1:#:text}" + default answer "${2:#:type here}" + ${3:#:with icon} + buttons {"${4:Cancel}", "${5:OK}"} + default button "${5}" + set button_pressed to button returned of the_result + set text_typed to text returned of the_result + if button_pressed is "${5}" then + ${6:#:TARGET} + else + -- action for cancel button goes here + end if + +snippet choose_Applications +abbr choose + ${1:#:set the_application to }choose application with prompt "${2:#:Choose an application:}"${3:#:with multiple selections allowed} + +snippet choose_Files +abbr choose + ${1:#:set the_file to }choose file with prompt "${2:#:Pick a file:}" + ${3:#:default location path to home folder} + ${4:#:with invisibles} + ${5:#:with multiple selections allowed} + ${6:#:with showing package contents} + + +snippet choose_Folders +abbr choose + ${1:#:set the_folder to }choose folder with prompt "${2:#:Pick a folder:}" + ${3:#:default location path to home folder} + ${4:#:with invisibles} + ${5:#:with multiple selections allowed} + ${6:#:with showing package contents} + ${0} + +snippet choose_NewFile +abbr choose + ${1:#:set the_filename to }choose file name with prompt "${2:#:Name this file:}" + default name "${3:untitled}" default location ${4:#:path to home folder} + +snippet choose_URL +abbr choose + ${1:#:set the_url to }choose URL showing ${2:Web} servers with editable URL + +snippet choose_Color +abbr choose + ${1:#:set the_color to }choose color default color ${2:{65536, 65536, 65536\}} + +snippet choose_ItemFromList +abbr choose + set the_choice to choose from list ${1}"\}} + diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/c.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/c.snip new file mode 100644 index 0000000..151e4b1 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/c.snip @@ -0,0 +1,153 @@ +snippet if +abbr if () {} + if (${1:#:condition}) { + ${0:TARGET} + } + +snippet else + else { + ${0:TARGET} + } + +snippet elseif + else if (${1:#:condition}) { + ${0:TARGET} + } + +snippet ifelse +abbr if () {} else {} + if (${1:#:condition}) { + ${2:TARGET} + } else { + ${3} + } + +snippet for +abbr for () {} + for (${1} = 0; $1 < ${2}; $1++) { + ${0:TARGET} + } + +snippet while +abbr while () {} + while (${1:#:condition}) { + ${0:TARGET} + } + +snippet do_while +alias do + do { + ${0:TARGET:code} + } while (${1:#:condition}); + +snippet switch +abbr switch () {} + switch (${1:#:var}) { + case ${2:#:val}: + ${0:TARGET} + break; + } + +snippet function +alias func +abbr func() {} + ${1:void} ${2:#:func_name}(${3:#:args}) { + ${0:TARGET} + } + +snippet struct +abbr struct {} + struct ${1:#:name} { + ${0:TARGET:data} + }; + +# Typedef struct +snippet struct_typedef + typedef struct ${1:#:name} { + ${0:TARGET:data} + }; + +snippet enum +abbr enum {} + enum ${1:#:name} { + ${0:TARGET} + }; + +# hard-tab is necessary; C indent doesn't support this. +snippet main + int main(int argc, char const* argv[]) + { + ${0:TARGET} + return 0; + } + +# #include <...> +snippet inc +alias #inc, #include + #include <${1:stdio}.h>${0} +# #include "..." +snippet inc2 +alias #inc2, #include2 + #include "${1}.h"${0} + +snippet ifndef +alias #ifndef +abbr #ifndef ... #define ... #endif + #ifndef $1 + #define ${1:#:SYMBOL} + #endif${0} + +snippet def +alias #def, #define + #define + +# Include-Guard +snippet once +abbr include-guard + #ifndef ${1:SYMBOL} + #define $1 + + ${0:TARGET} + #endif /* end of include guard */ + +# Ternary conditional operator +snippet conditional + (${1:#:condition}) ? ${2:#:a} : ${3:#:b} + +snippet typedef + typedef ${1:#:base_type} ${2:#:custom_type}; + +snippet printf +abbr printf("...\n", ...); + printf("${1}\n", ${2}); + +snippet fprintf +abbr fprintf(..., "...\n", ...); + fprintf(${1:stderr}, "${2}\n"${3}); + +snippet comment +alias /* + /* ${1:#:comment} */ + ${0} + +snippet sizeof +alias size + sizeof(${0:TARGET}) + +snippet helloworld + #include + int main(int argc, char const* argv[]) + { + puts("hello, world!"); + return 0; + } + +snippet fopen +abbr fopen("...", "..."); + fopen("${1:PATH}", "${2:MODE}"); + ${0:TARGET} + fclose(${3:FD}); + +snippet fgets +abbr fgets(row, length, file); + fgets(${0:ROW}, ${1:LENGTH}, ${2:FILE}); diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/clojure.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/clojure.snip new file mode 100644 index 0000000..11882f7 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/clojure.snip @@ -0,0 +1,32 @@ +snippet defn-doc +abbr defn function "..." [...] ... +options head + (defn ${1:name} + "${2:doc}" + [${3}] + ${0}) + +snippet try +abbr (try ... (catch ... + (try + ${1} + (catch ${2:Exception} e ${3:nil})) + +snippet ref-set +abbr (dosync (ref-set ... +options head + (dosync + (ref-set ${1:ref} ${2:value})) + +# http://tnoda-clojure.tumblr.com/post/24969285880/clojure-scripting +snippet shebang +options head + #^:shebang '[ + exec java -cp \`locate clojure- | grep -P "clojure-[\\d\\.]+\\.jar$" | tail -1\` clojure.main "\$0" + ] + + +snippet warn +options head + (binding [*out* *err*] + (println ${0:TARGET})) diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/coffee.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/coffee.snip new file mode 100644 index 0000000..55db9e1 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/coffee.snip @@ -0,0 +1,72 @@ +snippet req + ${1:#:object} = require('$1') + +snippet log + console.log ${0} + +snippet unl + ${1:#:action} unless ${2:#:condition} + +snippet try + try + ${1:TARGET} + catch ${2:#:error} + ${3} + +snippet if + if ${1:#:condition} + ${0:TARGET} + +snippet elif + else if ${1:#:condition} + ${0:TARGET} + +snippet ifte + if ${1:#:condition} then ${2:#:value} else ${3:#:other} + +snippet ife + if ${1:#:condition} + ${2:TARGET} + else + ${3:#:body...} + +snippet swi + switch ${1:#:object} + when ${2:#:value} + ${0:TARGET} + +snippet ^j + \`${1:javascript}\` + +snippet forr + for ${1:#:name} in [${2:#:start}..${3:#:finish}]${4: by ${5:#:step\}} + ${0:TARGET} + +snippet forrex + for ${1:#:name} in [${2:#:start}...${3:#:finish}]${4: by ${5:#:step\}} + ${0:TARGET} + +snippet foro + for ${1:#:key}, ${2:#:value} of ${3:#:object} + ${0:TARGET} + +snippet fora + for ${1:#:name} in ${2:#:array} + ${0:TARGET} + +snippet fun + ${1:#:name} = (${2:#:args}) -> + ${0:TARGET} + +snippet bfun + (${1:#:args}) => + ${0:TARGET} + +snippet cla +abbr cla +options head + class ${1:#:ClassName}${2: extends ${3:#:Ancestor\}} + + constructor: (${4:#:args}) -> + ${5:TARGET} + diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/cpp.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/cpp.snip new file mode 100644 index 0000000..2b0f84d --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/cpp.snip @@ -0,0 +1,76 @@ +include c.snip + +snippet template +abbr template + template + +snippet class +abbr class {} + class ${1:#:name} { + ${2} + }; + +snippet try +abbr try catch + try { + ${1:TARGET} + } catch (${2:e:xception}) { + ${3} + } + +# range based for ( C++11 feature ) +snippet for_CPP11 +abbr for (:) {} + for (${1:#:var} : ${2:#:container}) { + ${0:TARGET} + } + +# lambda expression ( C++11 feature ) +snippet lambda +abbr [](){} + [${1}](${2})${3}{ ${4:TARGET} } + +# scoped enumeration ( C++11 feature ) +snippet enum_scoped +abbr enum struct {} + enum struct { ${1:TARGET} } + +# static assert ( C++11 feature ) +snippet static_assert +abbr static_assert(,"") + static_assert( ${1}, "${2}" );${0} + +delete namespace +snippet namespace +abbr namespace {} +options head + namespace ${1:#:name} { + ${0:TARGET} + } // namespace $1 + +snippet static_cast +abbr static_cast<>() + static_cast<${1}>(${2})${0} + +snippet reinterpret_cast +abbr reinterpret_cast<>() + reinterpret_cast<${1}>(${2})${0} + +snippet const_cast +abbr const_cast<>() + const_cast<${1}>(${2})${0} + +snippet dynamic_cast +abbr dynamic_cast<>() + dynamic_cast<${1}>(${2})${0} + +snippet helloworld +abbr #include int main... + #include + int main(int argc, char const* argv[]) + { + using namespace std; + cout << "hello, world!" << endl; + return 0; + } + diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/css.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/css.snip new file mode 100644 index 0000000..0daa163 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/css.snip @@ -0,0 +1,251 @@ +snippet background +alias bg + background:${1};${2} + +snippet backattachment +alias ba + background-attachment:${1};${2} + +snippet backcolor +alias bc + background-color:${1};${2} + +snippet backimage +alias bi + background-image:${1};${2} + +snippet backposition +alias bp + background-position:${1};${2} + +snippet backrepeat +alias br + background-repeat:${1};${2} + +snippet border +alias b + border:${1};${2} + +snippet border-style +alias bs + border-style:${1};${2} + +snippet border-color +alias bc + border-color:${1};${2} + +snippet border-width +alias bw + border-width:${1};${2} + +snippet border-bottom-width +alias bbw + border-bottom-width:${1};${2} + +snippet border-top-width +alias btw + border-top-width:${1};${2} + +snippet border-left-width +alias blw + border-left-width:${1};${2} +snippet border-right-width +alias brw + border-right-width:${1};${2} + + +snippet border-bottom-style +alias bbs + border-bottom-style:${1};${2} + +snippet border-top-style +alias bts + border-top-style:${1};${2} + +snippet border-left-style +alias bls + border-left-style:${1};${2} +snippet border-right-style +alias brs + border-right-style:${1};${2} + + +snippet border-bottom-color +alias bbc + border-bottom-color:${1};${2} + +snippet border-top-color +alias btc + border-top-color:${1};${2} + +snippet border-left-color +alias blc + border-left-color:${1};${2} +snippet border-right-color +alias brc + border-right-color:${1};${2} + +snippet outline +alias ol + outline:${1};${2} + +snippet outline-color +alias oc + outline-color:${1};${2} + +snippet outline-style +alias os + outline-style:${1};${2} + +snippet outline-width +alias ow + outline-width:${1};${2} + +snippet color +alias c + color:${1};${2} + +snippet direction +alias d + direction:${1};${2} + +snippet letter-spacing +alias ls + letter-spacing:${1};${2} + +snippet line-height +alias lh + line-height:${1};${2} + +snippet text-align +alias ta + text-align:${1};${2} + +snippet text-decoration +alias td + text-decoration:${1};${2} + +snippet text-indent +alias ti + text-indent:${1};${2} + +snippet text-transform +alias tt + text-transform:${1};${2} + +snippet unicode-bidi +alias ub + unicode-bidi:${1};${2} + +snippet white-space +alias ws + white-space:${1};${2} + +snippet word-spacing +alias ws + word-spacing:${1};${2} + +snippet font +alias f + font:${1};${2} + +snippet font-family +alias ff + font-family:${1:"Times New Roman",Georgia,Serif};${2} + +snippet font-size +alias fs + font-size:${1};${2} + +snippet font-style +alias fs + font-style:${1};${2} + +snippet font-weight +alias fw + font-weight:${1};${2} + +snippet margin +alias m + margin:${1};${2} + +snippet margin-bottom +alias mb + margin-bottom:${1};${2} + +snippet margin-top +alias mt + margin-top:${1};${2} + +snippet margin-left +alias ml + margin-left:${1};${2} + +snippet margin-right +alias mr + margin-right:${1};${2} + +snippet padding +alias p + padding:${1};${2} + +snippet padding-bottom +alias pb + padding-bottom:${1};${2} + +snippet padding-top +alias pt + padding-top:${1};${2} + +snippet padding-left +alias pl + padding-left:${1};${2} + +snippet padding-right +alias pr + padding-right:${1};${2} + +snippet list-style +alias ls + list-style:${1};${2} + +snippet list-style-image +alias lsi + list-style-image:${1};${2} + +snippet list-style-position +alias lsp + list-style-position:${1};${2} + +snippet list-style-type +alias lst + list-style-type:${1};${2} + +snippet content +alias c + content:${1};${2} + +snippet height +alias h + height:${1};${2} + +snippet max-height +alias mah + max-height:${1};${2} + +snippet max-width +alias maw + max-width:${1};${2} + +snippet min-height +alias mih + min-height:${1};${2} + +snippet min-width +alias miw + min-width:${1};${2} + +snippet width +alias w + width:${1};${2} + diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/d.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/d.snip new file mode 100644 index 0000000..b173a4e --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/d.snip @@ -0,0 +1,40 @@ +include c.snip + +# Delete snippet depended on C. +delete struct +delete struct_typedef +delete enum +delete main +delete inc +delete inc2 +delete Inc +delete Def +delete def +delete once +delete printf +delete fprintf + +snippet foreach +abbr foreach() {} + foreach (${1:#:var}; ${2:#:list}) { + ${3:TARGET} + } + +snippet class +abbr class {} + class ${1:#:name} { + ${2:TARGET} + } + +snippet struct +abbr struct {} + struct ${1:#:name} { + ${2:TARGET} + } + +snippet enum +abbr enum {} + enum ${1:#:name} { + ${2:TARGET} + } + diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/erlang.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/erlang.snip new file mode 100644 index 0000000..fe1203a --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/erlang.snip @@ -0,0 +1,21 @@ +snippet helloworld +options head + + + main(_) -> io:format("Hello, world!\n"). + +snippet -module +options head + -module(${0:module}). + +snippet -export +options head + -export([${0:f/1}]). + +snippet ioformat +options word + io:format("${1:~w~n}"${2:, []}) + +snippet main +options head + main(_) -> ${0}. diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/eruby.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/eruby.snip new file mode 100644 index 0000000..583a9c6 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/eruby.snip @@ -0,0 +1,20 @@ +snippet ruby_print +abbr <%= %> + <%= ${1:TARGET} %>${2} + +snippet ruby_code +abbr <% %> + <% ${1:TARGET} %>${2} + +snippet ruby_print_nonl +abbr <%= -%> + <%= ${1:TARGET} -%>${2} + +snippet ruby_code_nonl +abbr <% -%> + <% ${1:TARGET} -%>${2} + +snippet comment +abbr <%# %> + <%# ${1:TARGET} %>${2} + diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/go.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/go.snip new file mode 100644 index 0000000..fa85f48 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/go.snip @@ -0,0 +1,51 @@ +snippet helloworld +abbr package main\nimport fmt... +options head + package main + + import ( + "fmt" + ) + + func main() { + fmt.Printf("Hello, world\n") + } + +snippet func +abbr func ...() { ... } +options head + func ${1:fname}(${2}) ${3:int }{ + ${0:TARGET:return } + } + +snippet import +options head + import ( + "${1:fmt}" + ) + ${0:TARGET} + +snippet package +options head + package ${1:main} + ${0:TARGET} + +snippet printf +options word + fmt.Printf("${1}\n"${2:}) + +snippet println +options word + fmt.Println(${0:TARGET}) + +snippet struct +options head + type ${1} struct { + ${0:TARGET} + } + +snippet interface +options head + type ${1} interface { + ${0:TARGET} + } diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/groovy.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/groovy.snip new file mode 100644 index 0000000..b741379 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/groovy.snip @@ -0,0 +1,29 @@ +snippet helloworld +options head + package ${1:com.github.ujihisa} + + class ${2:TARGET} { + public static void main(String[] args) { + println("Hello world!") + } + } + +snippet gradle +options head + apply plugin: 'groovy' + apply plugin: 'maven' + + repositories { + mavenCentral() + ${2:mavenLocal()} + } + + dependencies { + compile 'org.codehaus.groovy:groovy-all:2.1.1' + //testCompile group: 'junit', name: 'junit', version: '4.+' + } + + jar { + from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } + } + manifest.mainAttributes("Main-Class": "${1:com.github.`$USER`.}") diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/haskell.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/haskell.snip new file mode 100644 index 0000000..3e2a392 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/haskell.snip @@ -0,0 +1,32 @@ +snippet import +abbr import qualified ... as ... + import qualified ${1} as ${2} + +snippet importOnly +abbr import ... (...) + import ${1} (${2}) + +snippet language +abbr {-# LANGUAGE ... #-} + {-# LANGUAGE ${1} #-} + +# hard-tab is necessary +snippet case +abbr case ... of + case ${1} of + ${2} -> ${0} + +snippet main +abbr main = do + main = do + ${0} + +snippet class +options head + class ${1:Class} ${2:a} where + ${3:function} :: ${4:Type} + +snippet instance +options head + instance ${1:Class} ${2:Type} where + ${3:function} ${4:self} = ${0:TARGET} diff --git a/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/html.snip b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/html.snip new file mode 100644 index 0000000..92b1d66 --- /dev/null +++ b/etc/soft/nvim/+plugins_disabled/neosnippet.vim/autoload/neosnippet/snippets/html.snip @@ -0,0 +1,301 @@ +snippet doctypetransitional + + +snippet doctypeframeset + + +snippet doctypestrict + + +snippet head + + + ${2} + + ${4} + ${5} + +snippet metaauthor + ${2} +snippet keywords + ${2} +snippet metaothers + ${2} +snippet metagenerator + ${2} +snippet metadescription + ${2} + +snippet scriptcharset + ${3} +snippet script + ${2} + +snippet body + + ${1:TARGET} + + +snippet h +options word + ${2}${3} + +snippet p +options word +

      ${1}

      ${2} + +snippet br +options word +
      + +snippet hr +options word +
      + +snippet comment +options word + ${2} + +snippet b +options word + ${1:TARGET}${2} +snippet small +options word + ${1:TARGET}${2} +snippet strong +options word + ${1:TARGET}${2} +snippet sub +options word + ${1:TARGET}${2} +snippet sup +options word + ${1:TARGET}${2} +snippet ins +options word + ${1:TARGET}${2} +snippet del +options word + ${1:TARGET}${2} +snippet em +options word + ${1:TARGET}${2} +snippet bdo +options word + ${2:TARGET}${3} +snippet pre +
      +    ${1:TARGET}
      +    
      ${2} +snippet blockquote +
      + ${1} +
      + ${2} +snippet link +abbr link stylesheet css + ${4} + +snippet alignl + text-align="left" +snippet alignr + text-align="right" +snippet alignc + text-align="center" + +snippet bgcolor + bgcolor="${1}"${2} + +snippet ahref +options word + ${2:TARGET}${3} +snippet ahref_blank +options word + ${2:TARGET}${3} +snippet ahref_parent +options word + ${2:TARGET}${3} +snippet ahref_top +options word + ${2:TARGET}${3} +snippet aname +options word + ${2:TARGET}${3} + +snippet framesetcols + + ${2:TARGET} + ${3} +snippet framesetrows + ${3} + +snippet iframe +options word + ${2} +snippet table + + ${2:TARGET} +
      ${3} + +snippet th +options word + ${1:TARGET}${2} + +snippet ulsquare +options word +
        ${1:TARGET}
      ${2} +snippet ulcircle +options word +
        ${1:TARGET}
      ${2} +snippet uldisc +options word +
        ${1:TARGET}
      ${2} + +snippet ol +options word +
        ${1:TARGET}
      ${2} +snippet olA +options word +
        ${1:TARGET}
      ${2} +snippet ola +options word +
        ${1:TARGET}
      ${2} +snippet olI +options word +
        ${1:TARGET}
      ${2} +snippet oli +options word +
        ${1:TARGET}
      ${2} + +snippet li +options word +
    • ${1:TARGET}
    • ${2} + +snippet dl +options word +
      ${1:TARGET}
      ${2} +snippet dt +options word +
      ${1:TARGET}
      ${2} +snippet dd +options word +
      ${1:TARGET}
      ${2} + +snippet form +
      + ${1:TARGET} +
      ${2} + +snippet inputtext +options word + ${2} +snippet inputpassword +options word + ${2} +snippet inputradio +options word + ${2} +snippet inputcheckbox +options word + ${2} + +snippet textarea + + ${4} + +snippet button +options word + ${2} + +snippet select +options word + ${2} + +snippet optgroup + + ${2:TARGET} + ${3} +snippet option +options word + ${3} + +snippet label +options word +